This class provides an example-based introduction to deep learning using the Keras libary. Monday lectures will focus on a general background of different machine learning techniques including convolutional neural networks, recurrent neural networks, long term short-term memory, as well as applications in image recognition, control and natural language processing. Wednesday lectures will provide an overview over relevant tools for data acquisition and processing, followed by student-driven presentations of selected research papers and homeworks.

Homeworks and research paper reviewed in class must be summarized by an interactive Jupyter notebook, which will be hosted online, that summarizes the paper and lets the reader experience its content by example. The final deliverable for the class is a report on an independent research project consisting of a Jupyter notebook demonstrating a technique learned in class on a real-world data set.

MW 4.30-5.45 in ECES 114




Your final project should show innovation in at least data preprocessing or network architecture. Straightforward applications of standard processing pipelines on standard network architectures are not acceptable. Possible projects include:

  • Train a convolutional neural network on depth data, e.g. from an Intel RealSense, to augment object recognition
  • Combine the output of a YOLO or MASK R-CNN classifier with a word embedding to understand scene context
  • Classify force/torque data from assembly to estimate whether an assembly is successful or failing
  • Build a pipeline for gaze detection that can fit on an embedded computer
  • Participate in a competition on Kaggle or the OpenAI gym
  • Train a detector for holes, pegs and pulleys for assembly

Project Presentations

Project presentations will be made using Jupyter Notebooks and will be allotted 12 minutes for presentation and 6 minutes for questions. Project deliverables should contain text, equations, code and auxiliary figures as well as references at the end. The goal is to create a self-contained document that describes the methods used in sufficient detail for someone who has taken the class. (You can link to relevant material from the classes’ github page.) In addition to text, your presentation will require sufficient graphical material to allow the class to follow the concepts during a presentation. For example, use drawings to illustrate your network architecture, matplotlib panels to illustrate your data, and label axes of all plots.

  • April 22 (Wednesday): Adam, Annelise, Arturo, Ashwin
  • April 27 (Monday): Caleb, Divya, Galen, Joewie
  • April 29 (Wednesday): Mutian, Salil, Soumyajyoti, Telly, Trevor


10% In-class participation
12% Homework 1: Implementing a simple classification/regression problem
12% Homework 2: Classification/regression on time series data
26% Jupyter notebook summary of a selected paper
40% Final project
Extra credit: narrated YouTube video

Late policy

As homework and project are being submitted to a public repository, late submissions will lead to a reduction by one letter grade (A->B, B->C etc.).

Week 1: Perceptron algorithm
Week 2: MLK day – Multi-layer networks and back-propagation
Week 3: Deep convolutional neural networks
Week 4: Very deep convolutional networks
Week 5: Generative Adversarial Networks (GAN)
Week 6: Other applications for GANs (WaveNet)
Week 7: Word embeddings
Week 8: Other NLP applications
Week 9: Recurrent Neural Networks (RNN)
Week 10: Long short term memory (LSTM)
Week 11: Regression networks
Week 12: Autoencoders
Week 13: Reinforcement learning
Week 14: Project
Week 15: Project
Week 16: Project

Please follow this link for additional policies regarding accomodations, class room behavior, preferred student names and pronouns, honor code, sexual misconduct, and religious holidays.


Comments are closed.

Set your Twitter account name in your settings to use the TwitterBar Section.