- Learn steps to construct a vanilla neural network and train a classification model with ml5.js.
- Understand Neural Network architecture.
- What is a perceptron?
- What is a multi-layered perceptron?
- What are activation functions?
- Understand the terminology of the training process.
- Training
- Learning rate
- Epochs
- Batch size
- Loss
- Understand the difference between training and inference.
- Revisit and examine the concepts of classification and regression as applied to real-time interaction.
- NeuralNetwork - Color Classifier
- NeuralNetwork - Mouse Gesture
- NeuralNetwork - Train and Save
- NeuralNetwork - Load Model
- Neural Network demos from Yining Shi. (Note: these demos were created with an older version of ml5.js, refer to the ml5.js Resources Wiki page for more information.)
- The 7 steps of machine learning from Google Cloud Tech.
- But what is a Neural Network? by 3Blue1Brown.
- 10. Neural Networks - Nature of Code - video tutorials by Daniel Shiffman.
- Chapter 10: Neural Network, Nature of Code by Daniel Shiffman.
- Machine Learning Crash Course with TensorFlow APIs from Google.
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.
- Neural Networks: Perceptron Part 1 - video tutorial by Daniel Shiffman.
- Neural Networks: Perceptron Part 2 - video tutorial by Daniel Shiffman.
- Neural Networks: Multilayer Perceptron Part 1 - video tutorial by Daniel Shiffman.
- Neural Networks: Multilayer Perceptron Part 2 - video tutorial by Daniel Shiffman.
- Neural Networks: Matrix Math Part 1 - video tutorial by Daniel Shiffman.
- Neural Networks: Matrix Math Part 2 - video tutorial by Daniel Shiffman.
- ml5.js: Train Your Own Neural Network - video tutorial by Daniel Shiffman.
- ml5.js: Save Neural Network Training Data - video tutorial by Daniel Shiffman.
- ml5: Neural Network Regression - video tutorial by Daniel Shiffman.
- ml5.js: Pose Classification with PoseNet and ml5.neuralNetwork() - video tutorial by Daniel Shiffman.
- ml5.js: Pose Regression with PoseNet and ml5.neuralNetwork() - video tutorial by Daniel Shiffman.
- Hand Pose Classifier with ml5.neuralNetwork() - demo video by Yining Shi. [ Data Collection Code | Model Training Code | Classification Code ]
- Watch Machine Learning for Human Creative Practice by Dr. Rebecca Fiebrink at Eyeo 2018. Write a response to the following question posed by Dr. Fiebrink:
- How can machine learning support people's existing creative practices? Expand people's creative capabilities?
- Create your own p5.js sketch that trains a model with real-time interactive data. This can be a prototype of a project idea or a simple exercise where you run this week's code examples with your own data. Here are some exercise suggestions:
- Try to invent more elegant and intuitive interaction for collecting real-time data beyond pressing keys.
- What other real-time inputs might you consider beyond mouse position, image pixels, or face/pose/hand tracking? Could you use real-time sensor data?
- What other real-time outputs might you consider beyond text? Could the output be sound/color modulation? Could there be multiple outputs like R, G, B values? Could the output be a physical computing device?
- Improve the the sketch we built in class:
- Can you add more classification categories?
- Can you create an interface for training and showing the results of model's prediction?
- Can you turn this into a regression model?
- Document your response to the readings as well as your p5.js sketch in a blog post and add a link to the post and your p5.js sketch on the Assignment 5 Wiki page. In your blog post, include visual documentation such as a recorded screen capture / video / GIFs of your sketch.