Convolutional Neural Network
[ Slides | Sketches ]
Objectives
- Understand when and why you might train your own model from scratch versus use a pre-trained model or transfer learning.
- Understand how to work with image data for training your own model.
- Learn about different datasets and their formats.
- Learn to feed the input of a graphics canvas into a machine learning model.
- Learn to train an image classifier (with and without convolutional layers) with ml5.js.
- Learn the distinction between different types of layers of a neural network, especially a convolutional layer and a pooling layer.
Lecture Notes
Datasets
Quick Draw! Dataset
Code Examples
Working with Datasets
Convolution Neural Network Layers
Training Image Classifiers
Supplemental Materials
Visualizations and Demos
Video Tutorials
Note: ml5.js tutorials below were taught using an older version of ml5.js, refer to the ml5.js Resources Wiki page for more information.
Working with Quick, Draw! Dataset
Convolution Neural Network
Training Neural Networks
Assignment 6
- Read Exploring and Visualizing an Open Global Dataset by Google Research.
- Choose a neural network we trained in class or one from the code examples above. Experiment with the hyperparameters (
learningRate
, batchSize
, epochs
, etc) and observe how it affects the training performance.
- Document your response to the readings as well as your experiments and observations in a blog post and add a link to the post and your p5.js sketch on the Assignment 6 Wiki page. In your blog post, include visual documentation such as a recorded screen capture / video / GIFs of your sketch.
- Lastly, be prepared to share preliminary ideas on your final project in the next class.