Hit top 15% in an unranked Kaggle competition with a score of 0.9946
To classify handwritten digits from 0-9 as labels (classes) - [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- Train: A CSV of 784 features - Each feature being a pixel value for a 28*28 image. A target feature containing labels - Test: A CSV of 784 features - Each feature being a pixel value for a 28*28 image - Sample Submission CSV - A sample submission file telling us what the submission file should look likeBuilt a custom CNN model that had the following architecture
- Adding More Layers (Making the Network deeper to decrease training loss)
- Including Batch Norm, Max Pooling, Padding Layers
- Experimenting with different values of Dropout Regularization (to decrease Validation Loss and hence reduce overfitting)
- Experimenting with different batch sizes (64 works best)
- Setting up Callbacks: -
- Learning Rate Scheduler to slow down learning as the model reached convergence
- Saving and Loading from the best model with focus on the least validation loss
- Finally, Ensembling results from various model runs to give the best aggregate results (Mode of prediction labels)
https://www.kaggle.com/code/siddharthmandgi/digit-recognizer-above-0-99-score