Motivation for this post came from a recent image classification project I did where given a dog image the application would identify its breed. It turned out be more interesting and enjoyable than when I started the work. Even though I ended up spending substantial time learning some new concepts; refreshing linear algebra and calculus; reading other related articles and research papers.
In this project I used AWS Sagemaker, a Machine Learning (ML) platform to build, train and deploy the models. It provides all needed components including prebuilt image suitable for ML projects, Jupyter Notebook environment, infrastructure to deploy with single click from notebook, etc. It uses a ResNet CNN that can be trained from scratch, or trained using transfer learning when a large number of training images are not available.
If you want to jump to notebook code here.
Neural Network (NN)
Neural networks draw inspiration from their counter part in biological neural networks. There are many NN machine learning algorithms based on those including perceptron, Hopfield networks, CNN, RNN, LSTM, etc. Here in the article I will be briefly covering perceptron and CNN.