Digit Recognition
- 0 Collaborators
In this project, I present an Keras Sequential Neural Network to tackle the recognition of handwritten digits. The Neural Network proposed here is experimented on the well-known MNIST data set. Without any pre-processing of the data set, our Neural Network achieves quite low classification error. ...learn more
Project status: Published/In Market
Intel Technologies
Intel Opt ML/DL Framework,
Intel Python
Overview / Usage
In this project, a handwritten digits recognition system was implemented with the famous MNIST data set. This is not a new topic and the after several decades, the MNIST data set is still very popular and important for evaluation and validation of new algorithms. Handwritten digits recognition problem has been studied by researchers since 1998 with almost all the algorithms designed by then and even until now. The test error rate decreased from 12% in 1988 by linear classifier to 0.23% in 2012 by convolutional nets, and these days more and more data scientists and machine learning experts are trying to develop and validate unsupervised learning methods such as auto-encoder and deep learning model
Methodology / Approach
The program I implement will mainly focus on identifying 0-9 from segmented pictures of handwritten digits.For simplicity, input images are pre-treated to
be of certain fixed size, and each input image should contain only one unknown digit in the middle. These requirements are not too harsh because they can be achieved using simple image processing or computer vision techniques. In addition, such pre-treated image data set are easy to obtain. In my implementation,the popular MNIST data set ([1]) is a good choice. Each image in MNIST is already normalized to 28x28 in the above sense and the data set itself is publicly available. The MNIST data set is really a huge one: it contains 60000 training samples and 10000 test samples. And it has become a standard data set for testing various algorithms.The output of my program will be the corresponding 0-9 digit contained in input image. The method I use is Keras Sequential Neural Network using Tensorflow. Unlike lazy learning method such as Nearest Neighbor Classifier that stores the whole training set and classify new input case by case, This will implicitly learn the corresponding rule between image of handwritten digits and the actual 0-9 identities. Preferably, I
want the output units provide the conditional probability (thus the output of each unit is between 0 and 1, and the outputs of all 10 units will sum to 1) of each class to which each input belongs, and the unit that has the maximum output will determine the class label. As a result, softmax activation is the desirable choice for output units.The unit corresponding to the right class label of each input has
value 0.91, while other units have the same value 0.01. I do not set them to be 1s and 0s because extreme value are hard to be achieved by activation functions.
Technologies Used
- Machine Learning
- Deep Learning
- Artificial Intelligence
- Tensorflow
- Keras
- Sequential Neural Network
- Intel Python
- Intel ML/DL Framework