Machine Learning Engineer Nanodegree
Deep Learning
📑 P5: Build a Digit Recognition Program
Step 0: Load and Create Datasets
Resources
🕸scikit-learn. Machine Learning in Python
🕸Scipy Lecture Notes
Code Library
Experimental Datasets
Dataset #1. Scikit-learn. Digits.
Dataset #2. MNIST
Dataset #3. Synthetic - two digits
Dataset #4. Synthetic - five digits with rotation
Step 1: Design and Test a Model Architecture
In this project, we will design and implement a deep learning model that learns to recognize sequences of digits.
Also, we will train the model using synthetic data generated by concatenating character images from notMNIST or MNIST.
To produce a synthetic sequence of digits for testing, we can, for example, limit ourself to sequences up to five digits, and use five classifiers on top of the deep network.
We would have to incorporate an additional blank character to account for shorter number sequences.
There are various aspects to consider when thinking about this problem:
- The model can be derived from a convolutional network or a multi-layer perceptron classifier.
- We could experiment sharing or not the weights between the softmax classifiers.
- We can also use a recurrent network in your deep neural net to replace the classification layers and directly emit the sequence of digits one-at-a-time.
We can use the module keras or tensorflow or sklearn to implement the model.
Examples of Models
Models N1 and N2 are classic examples, other models were designed for this project.
Model N1. Multi-Layer Perceptron
Model N2. Gradient Descent Usage
Model N3. Multi-Layer Perceptron Classifier (sklearn)
Additional Code Cell