valentinsilvera / ai-basics

Repo for submission of SE14: AI Basics

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Artificial Intelligence Basics SS22

Introduction

About

Artificial Intelligence (AI) allows computer systems to think/act rationally/like a human. This includes planning future actions, optimizing results, reasoning, and learning from known or unknown data. This is the documentation of my first dip in the ever-expanding world of AI. I love food (I know, so original), so I decided to make a simple Image Classifier that works well on iOS devices to recognize and properly label different types of food.

Machine Learning

Machine Learning is the field of AI that applies statistical tools to data, to find correlations. One of the most popular (and oldest) ML models is logistic regression. So I started with that one. I also delved into convolutional neural networks. If we think of logistic regression as a line (actually one or more hyperplanes) in an n-dimensional space, CNN curves and distorts this line further to separate the points in this space better (at the risk of overfitting). CNN models are more opaque than LR due to layer(s) of hidden neurons and are more at risk of overfitting.

ML diagram

Projects

To make this project possible, I had to find a way to train a model that's small enough to work on a mobile application. These are the three models I made. From the simplest to most complex (to train). Click on each one to see instructions and some of the key takeaways:

Demo

App Demo App Demo App Demo

Bibliography and Learning Resources

  1. Google Classroom: AI Guild
  2. Google Classroom: SE_14 - AI Basics
  3. Apple's CoreML Documentation
  4. Keras Documentation
  5. CS50: Introduction to Artificial Intelligence with Python
  6. All the images used to train the models are from Google Open Images

Contact

Valentin Silvera

About

Repo for submission of SE14: AI Basics


Languages

Language:Jupyter Notebook 99.8%Language:Swift 0.2%