Deep learning Udacity course Prob 2 assignment 1 notMNIST
ML System Design practice on Codemia
Design recommenders, ranking systems and training pipelines the way ML interviews actually ask for them, with worked solutions.
The Udacity Deep Learning course includes several assignments that build foundational skills and understanding of neural networks. An essential part of this program is the `Prob 2 assignment 1`, which deals with a dataset known as notMNIST. This assignment offers hands-on experience working with deep learning techniques and is designed to familiarize students with data preprocessing, model creation, and learning evaluation. In the following sections, we'll explore the technical aspects of this assignment, providing insights and examples where applicable.
Overview of notMNIST Dataset
notMNIST is a collection of images representing the characters 'A' through 'J' from different fonts. This dataset serves a similar purpose to the widely recognized MNIST database but includes more complex and varied typography:
- Dataset Size: Approximately 500,000 images.
- Data Format: Each image is stored in an 28x28 pixel format, grayscale.
- Challenge: Classifying these images into 10 distinct categories, each corresponding to a letter.
The main challenge is that the typography and font variation make it a more complex task compared to the MNIST dataset, necessitating more robust learning models.
Key Technical Concepts
Data Preprocessing
One crucial step in machine learning projects is data preprocessing. In this assignment, preprocessing involves transforming image data into a format suitable for input into a neural network.
Steps in data preprocessing:
- Normalization: Scale the image pixel values from 0-255 to a 0-1 range. This ensures that every input feature has approximately the same scale:
- Feature Extractor: Flatten the 28x28 pixels into a 784-dimension vector.
- Layer Layout: A fully connected layer with 1024 nodes.
- Activation Function: Use ReLU (Rectified Linear Unit) for introducing non-linearity.
- Loss Function: Cross entropy loss is suitable for classification tasks:
- Optimizer: SGD (Stochastic Gradient Descent) or Adam optimizers are common choices. Adam optimizer generally provides faster and more reliable convergence:
- Performance Metrics: Evaluate the model using accuracy or other suitable metrics on both validation and test datasets.
Related reading
- Deep neural network skip connection implemented as summation vs concatenation?
- deeplearning4j - using an RNN/LSTM for audio signal processing
- Default Adam optimizer doesn't work in tf.keras but string adam does
- Deleting all but a few nodes in TensorFlow graph
- Deep Q Network is not learning
- Denormalization of predicted data in neural networks
- Deploy Semantic Segmentation Network U-Net with TensorRT no upsampling support
- Derivative of activation function and use in backpropagation
.png&w=3840&q=75)
Tackling System Design Interview Problems
A short course that equips you with the skills to approach system design interviews methodically.
Start the free courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
ML System Design practice on Codemia
Design recommenders, ranking systems and training pipelines the way ML interviews actually ask for them, with worked solutions.