This project was an introduction for me to multi-layer neural networks. Here, I learned about Convolutional Neural Networks, its model architecture, hyperparamter tuning and regularization techniques.
In this project, I created a convolutional neural network (CNN) for food image classification from scratch. The project follows my thought process during the fine tuning of the model to allow for better model generalisation. I later introduced and fine tuned pre-trained models such as InceptionV3 and MobileNet before choosing the best model for my task.
Model from scratch
- Develop Baseline Model
- Scale till overfitting
- Introduce data augmentation
- Regularization techniques such as L1/L2 regularizer and dropout layers
- Batch Normalization
- Tune hyperparameters such as learning rate, batch size
- Try optimizers such as SGD, reLU and RMSprop
- Additional experimentation (Sparse Categorical cross-entropy and spatial dropout 2D)
Pretrained models
- Import pre-trained model
- Data Augmentation
- Fine-tuning by unfreezing
- Try Global Average Pooling
- Confusion Matrix
- Classification Report