A Kaggle Project By Ryan Bambrough Digit Recognizer A Kaggle Project By Ryan Bambrough
Problem To Solve Given a 28 x 28 pixel image determine what digit is present Data includes 42,000 training samples & 28,000 testing samples Used for a multitude of applications: Recognizing address on letters Digital ink to text
Approaches This is an ‘older’ Neural Network problem with a large dataset (MNIST) Quite a few ways to solve it, each with its own benefits and complexities Can add a lot of optimizations to get a little more accuracy Law of diminishing returns
Chosen Approach I chose to go with a simple Multi-Layer Network Basic Neural Network, no bells or whistles Sigmoidal Activation Function 784 Inputs Notes (28 x 28) 30 – 100 Hidden Nodes 10 Output Nodes (One for each possible output)
Problems Encountered Setting up useful python environment on Windows Had used python before, just not for neural networks Pre-Processing data, while not terrible difficult took time to ensure accuracy
Quality The accuracy of the network depended greatly on its composition: 30 Hidden, 2.75 Eta, 60 Epochs, 20 Smp/Epoch ~94.77 % 100 Hidden, 2.75 Eta, 60 Epochs, 20 Smp/Epoch ~86.99 % 30 Hidden, 5.00 Eta, 60 Epochs, 20 Smp/Epoch ~12.59 % 30 Hidden, 5.00 Eta, 60 Epochs, 50 Smp/Epoch ~94.39 %
Conclusions For this Kaggle competition it is fairly easy to get a decent accuracy with a simple network Even simple networks, if implemented with nicely pre-processed data, can perform extremely well and highly efficient
References Professor Hu’s Lecture Slides Using neural nets to recognize handwritten digits, by Michael Nielsen, http://neuralnetworksanddeeplearning.com/chap1.html