Skip to content
This repository has been archived by the owner on Aug 27, 2020. It is now read-only.

Latest commit

 

History

History

06_cnn

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Convolutional Neural Network (CNN)

Session A: What is CNN?

Objectives:

  • Understand when and why you might train your own model from scratch versus use a pre-trained model or transfer learning.
  • Learn about the Google “Quick, Draw!” dataset.
  • Understand how to work with image data for training your own model.

Quick, Draw! Data

Examples

Creative Quick, Draw! projects

Related Projects:

Session B: Doodle Classification

Objectives

  • Learn to train an image classifier (no convolutional layers) with ml5.js.
  • Learn the distinction between different types of layers of a neural network, specifically “What is a convolutional layer?”
  • Learn to feed the input of a graphics canvas into a machine learning model.

Convolutional Neural Nets

Examples

Assignment 6 Due Monday October 14 at 12pm

Reading

Reflection

  • Spend a few minutes playing Quick, Draw! and reviewing the documentation of the Quick, Draw! dataset. Put yourself in the shoes of the researchers at Google collecting the data and answer the following questions from the Datasheets for Datasets to the best of your ability. If you prefer, find another dataset to analyze (the datasets described in the above readings are good choices as well.)
    • Does the dataset contain data that might be considered confidential?
    • Does the dataset contain data that, if viewed directly, might be offensive, insulting, threatening, or might otherwise cause anxiety?
    • Does the dataset identify any subpopulations of people (e.g., by age, gender)?
    • Were individuals (e.g. players of Quick, Draw!) notified about the data collection?
    • Did these individuals in question consent to the collection and use of their data?
    • If consent was obtained, were the consenting individuals provided with a mechanism to revoke their consent in the future or for certain uses?
    • Are there tasks for which the dataset should not be used?

Coding Exercise

For this week's coding exercise you can build on top of your neural network assignment from last week. Make sure to bring in the latest ml5 build to your code. Here are some ideas (note I am not suggesting you do all of them, this is just a list to consider, invent your own!)

  • If your sketch was not working, try fixing bugs with the new ml5.js version.
  • If "classification" is more appropriate for your sketch, switch your task to 'classification'.
  • Consider adding functionality to save training data or save the model (reloading it later). A working example of saving/loading is now available in the week 5 material.

Instead of building on your previous assignment, you can also choose to create a new sketch inspired by the examples around classifying drawings and convolutional neural networks. For example:

  • Can you train your own image classifier with ml5.neuralNetwork()? You can build upon the doodle classification example. This example assumes the image data is loaded via binary files. How might you work with actual image files?
  • Can you invent a user interaction around classifying drawings building on the ml5 DoodleNet classification example.