diff --git a/02-transfer-learning/README.md b/02-transfer-learning/README.md index 50aa056..e5c225a 100644 --- a/02-transfer-learning/README.md +++ b/02-transfer-learning/README.md @@ -7,6 +7,7 @@ - Diagram and define the layers of a neural network, introducing the concept of a “convolutional layer”. - Distinguish between a “feature vector” (aka logits) and the last layer (aka softmax probabilities) of a classification network. - Understand the process of “transfer learning”. +- Learn about k-nearest neighbors algorithm (_k_-NN). - Learn to save a trained model for re-use later. ## Lecture Notes @@ -17,24 +18,14 @@ - [Teachable Machine 2.0: Making AI easier for everyone](https://youtu.be/T2qQGqZxkD0) from Google. - [Image + Teachable Machine Reference](https://docs.ml5js.org/#/reference/image-classifier-tm) from ml5.js Documentation. - [Teachable Machine Community Repo](https://github.com/googlecreativelab/teachablemachine-community) - - [TensorFlow.js KNN Classifier Source Code](https://github.com/tensorflow/tfjs-models/tree/master/knn-classifier) - [ml5.soundClassifer Reference](https://docs.ml5js.org/#/reference/sound-classifier) - [ml5.soundClassifier Source Code](https://github.com/ml5js/ml5-next-gen/tree/main/src/SoundClassifier) - [TensorFlow.js Speech Command Recognizer Source Code](https://github.com/tensorflow/tfjs-models/tree/master/speech-commands) - -### Related Projects - -- [Webcam Pacman](https://storage.googleapis.com/tfjs-examples/webcam-transfer-learning/dist/index.html) by Google’s TensorFlow.js Team. -- [Pong ML](https://github.com/matamalaortiz/Pong-ML) by Alejandro Matamala Ortiz. -- [Regression Curve](https://github.com/byjoohyunpark/regression-curve) by Joohyun Park. -- [Asemic Writing Teachable Machine](http://blog.jzhong.today/computationaltypo/Asemic-Writing-Teachable-Machine/) by Jillian Zhong. -- [Tiny Sorter](https://experiments.withgoogle.com/tiny-sorter) by Google Creative Lab. -- [Getting Alexa to Respond to Sign Language Using Your Webcam and TensorFlow.js](https://medium.com/tensorflow/getting-alexa-to-respond-to-sign-language-using-your-webcam-and-tensorflow-js-735ccc1e6d3f) by Abhishek Singh. [ [Live Demo](https://shekit.github.io/alexa-sign-language-translator/) ] -- [Objectifier Spatial Programming](https://experiments.withgoogle.com/ai/objectifier-spatial-programming) by Bjørn Karmann. -- [Project Euphonia](https://www.youtube.com/watch?v=OAdegPmkK-o) from Google. -- [Teachable Snake](https://experiments.withgoogle.com/teachable-snake) by Vince MingPu Shao. -- [Teachable Arcade](https://ryancan.build/projects/teachable-arcade) by Ryan Flomerfelt Mather. -- [Eyeo Festival 2019 - Coding Train](https://vimeo.com/354276216) with Daniel Shiffman. [ [GitHub Repo](https://github.com/CodingTrain/Eyeo-Festival-2019) ] +- [ml5.featureExtractor Archived Reference](https://archive-docs.ml5js.org/#/reference/feature-extractor) + - [ml5.featureExtractor Source Code](https://github.com/ml5js/ml5-library/tree/main/src/FeatureExtractor) +- [ml5.KNNClassifier Archived Reference](https://archive-docs.ml5js.org/#/reference/knn-classifier) + - [ml5.KNNClassifier Source Code](https://github.com/ml5js/ml5-library/tree/main/src/KNNClassifier) + - [TensorFlow.js KNN Classifier Source Code](https://github.com/tensorflow/tfjs-models/tree/master/knn-classifier) ### Code Examples @@ -42,7 +33,7 @@ - [Sound Classification with Teachable Machine and ml5.js](https://editor.p5js.org/ml5/sketches/mXeiNXSTU) - [Sound Classification - Speech Commands](https://editor.p5js.org/ml5/sketches/HUm7NYMW3) -### Taking p5.js Sketches Beyond the Web Editor +### Local Development and Hosting #### Running p5.js Sketches Locally @@ -54,6 +45,31 @@ - [GitHub Pages Documentation](https://pages.github.com). - [Webcam Image Classification with Teachable Machine Demo](https://jackbdu.com/Intro-ML-Arts-IMA-Summer24/02-transfer-learning/webcam-image-classification-with-teachable-machine/) hosted on GitHub. [ [Source Code](webcam-image-classification-with-teachable-machine) ] +### Related Projects + +#### Accessibility + +- [Getting Alexa to Respond to Sign Language Using Your Webcam and TensorFlow.js](https://medium.com/tensorflow/getting-alexa-to-respond-to-sign-language-using-your-webcam-and-tensorflow-js-735ccc1e6d3f) by Abhishek Singh. [ [Live Demo](https://shekit.github.io/alexa-sign-language-translator/) ] +- [Project Euphonia](https://www.youtube.com/watch?v=OAdegPmkK-o) from Google. +- [Objectifier Spatial Programming](https://experiments.withgoogle.com/ai/objectifier-spatial-programming) by Bjørn Karmann. + +#### Games + +- [Webcam Pacman](https://storage.googleapis.com/tfjs-examples/webcam-transfer-learning/dist/index.html) by Google’s TensorFlow.js Team. +- [Pong ML](https://github.com/matamalaortiz/Pong-ML) by Alejandro Matamala Ortiz. +- [Teachable Snake](https://experiments.withgoogle.com/teachable-snake) by Vince MingPu Shao. +- [Teachable Arcade](https://ryancan.build/projects/teachable-arcade) by Ryan Flomerfelt Mather. + +#### Playful + +- [Tiny Sorter](https://experiments.withgoogle.com/tiny-sorter) by Google Creative Lab. +- [Eyeo Festival 2019 - Coding Train](https://vimeo.com/354276216) with Daniel Shiffman. [ [GitHub Repo](https://github.com/CodingTrain/Eyeo-Festival-2019) ] + +#### Visuals + +- [Regression Curve](https://github.com/byjoohyunpark/regression-curve) by Joohyun Park. +- [Asemic Writing Teachable Machine](http://blog.jzhong.today/computationaltypo/Asemic-Writing-Teachable-Machine/) by Jillian Zhong. + ## Supplemental Materials - Watch [But what _is_ a Neural Network?](https://youtu.be/aircAruvnKk) by 3Blue1Brown. @@ -63,12 +79,26 @@ _Note: ml5.js tutorials below were taught using an older version of ml5.js, refer to the [ml5.js Resources Wiki page](https://github.com/jackbdu/Intro-ML-Arts-IMA-Summer24/wiki/ml5.js-Resources) for more information._ +#### Teachable Machine + - [Teachable Machine video tutorials](https://www.youtube.com/playlist?list=PLJfHZtseuscuTQfodmFnbZ3rBgCWsRT9t) from Experiments with Google. - [Teachable Machine video tutorials](https://thecodingtrain.com/tracks/teachable-machine) by Daniel Shiffman. + +#### Transfer Learning with ml5.js + - [ml5.js: Transfer Learning with Feature Extractor - video tutorial](https://youtu.be/kRpZ5OqUY6Y?list=PLRqwX-V7Uu6YPSwT06y_AEYTqIwbeam3y) by Daniel Shiffman. - [ml5.js: Feature Extractor Classification - video tutorial](https://youtu.be/eeO-rWYFuG0?list=PLRqwX-V7Uu6YPSwT06y_AEYTqIwbeam3y) by Daniel Shiffman. - [ml5.js: Feature Extractor Regression - video tutorial](https://youtu.be/aKgq0m1YjvQ?list=PLRqwX-V7Uu6YPSwT06y_AEYTqIwbeam3y) by Daniel Shiffman. - [ml5.js: Save/Load Model - video tutorial](https://youtu.be/eU7gIy3xV30?list=PLRqwX-V7Uu6YPSwT06y_AEYTqIwbeam3y) by Daniel Shiffman. + +#### KNN Classification + +- [ml5.js: KNN Classification Part 1](https://www.youtube.com/watch?v=KTNqXwkLuM4) by Daniel Shiffman. +- [ml5.js: KNN Classification Part 2](https://www.youtube.com/watch?v=Mwo5_bUVhlA) by Daniel Shiffman. +- [ml5.js: KNN Classification Part 3](https://www.youtube.com/watch?v=JWsKay58Z2g) by Daniel Shiffman. + +#### GitHub Pages + - [Hosting a p5.js sketch with GitHub Pages - video tutorial](https://www.youtube.com/watch?v=ZneWjyn18e8) by Daniel Shiffman. ## Assignment 2