Training a ConvNet from Scratch on a Small Dataset
Having to train an image classification model using only very little data is a common situation in computer vision. As a practical example, we focus on classifying images as “dogs” or “cats”, using 4000 pictures (2000 cats, 2000 dogs). We cover three strategies:- Training from scratch - baseline accuracy of ~71%
- Data augmentation - improves to ~82% accuracy
- Transfer learning - achieves up to 95% accuracy
The Relevance of Deep Learning for Small-Data Problems
Deep learning models are highly repurposable. Pre-trained models (usually trained on ImageNet) can bootstrap powerful vision models from very little data.Building the Network
Data Augmentation
Data augmentation generates more training data from existing samples via random transformations:Model with Dropout
Adding dropout to fight overfitting:References
- Peng, X., Sun, B., Ali, K., Saenko, K. (2014). Learning Deep Object Detectors from 3D Models.
- Ronneberger, O., Fischer, P., Brox, T. (2015). U-Net: Convolutional Networks for Biomedical Image Segmentation.
- Simonyan, K., Zisserman, A. (2014). Very Deep Convolutional Networks for Large-Scale Image Recognition.
- Szegedy, C., Ioffe, S., Vanhoucke, V., Alemi, A. (2016). Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning.
- Zeiler, M., Fergus, R. (2013). Visualizing and Understanding Convolutional Networks.

