- 💡 Learn about Sequential Data and Markov Chains
- 💡 Learn about Recurrent Neural Network architectures
- 💡 Become familiar with use cases for RNNs
- 💡 Learn ml5’s RNN functions and underlying pre-trained models
- 🔗 Markov Chains by Victor Powell and Lewis Lehe
- 🔗 ITP Course Generator by Allison Parrish
- 🔗 N-Grams and Markov Chains by Allison Parrish
- 🔗 Markov Chains from A2Z
- 🎥 Markov Chain video tutorial Part 1, Markov Chain video tutorial Part 2
- 📚 The Unreasonable Effectiveness of RNNs and Visualizing and Understanding Recurrent Networks by by Andrei Karpathy
- 📚 Rohan & Lenny #3: Recurrent Neural Networks & LSTMs
- 🍿 Sunspring
- 🎨 Double Agent by Simon Biggs (Drawing)
- 🎨 Four Experiments in Handwriting with a Neural Network (Drawing)
- 📖 10 things artificial intelligence did in 2018 by Janelle Shane (Text)
- 📖 Writing with the Machine
- 🎶 Magenta: Make Music and Art Using Machine Learning
- 🎨 Handwriting Generation with RNN and p5.js
- 🎶 RNN for generating Baroque Music video
- 📖 Let's Read a Story by Itay Niv
- 🎥 Generating Drawings with SketchRNN code video
- 🎥 Interactive Drawings with SketchRNN video
- 🎥 RDP Line Simplification
- 📚 Understanding LSTM Networks by Christopher Olah
- What Can Machine Learning Teach Us About Ourselves?, Interview with Emily Martinez, ml5.js Fellow 2020
- The Subtext of a Black Corpus, In conversation with ITP research fellows Nikita Huggins & Ayodamola Okunseinde by Ashley Lewis
Emily Martinez proposes a set of questions to ask related to working with a corpus of text data. Pick one (or two) of the questions to reflect on as you respond to the above two readings:
- How can we be more intentional about what we build given the current limitations, problems, and constraints of ML algorithms?
- How do we prepare datasets and set up guidelines that protect the bodies of knowledge of our communities, that honors lineage, that upholds ethical frameworks rooted in shared, agreed-upon values?
- How do we work in consensual and respectful ways with texts by marginalized authors that are not as well-represented, and by virtue of that fact alone, much more likely to be misrepresented, misappropriated, or misunderstood if we are not careful?
- How well can we ensure that the essence of these texts doesn’t dissolve into a word-soup that gets misconstrued?
- Given that so many of the existing “big data” language models are trained with Western texts and proprietary datasets, what does it even mean to try to decolonize AI?
- Who do we entrust to do this work?
- How do we deal with credit and attribution of our new creations?
- How do we really do ethics with machine learning?
- How do we get through this whole list of concerns and still build AI that is fun, respectful, tender, pleasurable, kind?
Pick from one of the following options (or invent your own) related to working with sequential data and recurrent neural networks.
-
Text generation
- Generate text with a markov chain.
- Generate text with one of the provided pre-trained charRNN models. Reminder: these examples do not run in the p5 web editor! This workflow series may help! Download the charRNN code examples here.
- Train your own model! Instructions can be found in the training-charRNN repo, however proceed with caution! There are so many errors that can arise due to python versions and other configuration settings required. You are also welcome to email me (Dan) your text file and I will train the model for you.
-
Doodle generation
- Experiment with generating doodles with the sketchRNN model. What kinds of interactions result from drawing with the model?
-
Music generation!
- We did not cover this in class, but recurrent neural networks can also be used the generate musical sequencies (melodies, beats, etc.). You can find examples for musical markov chains and musical recurrent neural networks as part of Luisa Pereira's Code of Music materials.
Complete a blog post with your reading reflection and documentation of your code exercise. Link from the homework wiki.