Neural Networks & Deep Learning
Fall 2022


It is very hard to hand design programs to solve many real world problems, e.g. distinguishing images of cats versus dogs. Machine learning algorithms allow computers to learn from example data, and produce a program that does the job. Neural networks are a class of machine learning algorithm originally inspired by the brain, but which have recently have seen a lot of success at practical applications. They are at the heart of production systems at companies like Google and Facebook for image processing, speech-to-text, and language understanding. This course gives an overview of both the foundational ideas and the recent advances in neural net algorithms.

Roughly the first 2/3 of the course focuses on supervised learning --- training the network to produce a specified behavior when one has lots of labeled examples of that behavior. The last 1/3 focuses on unsupervised learning and reinforcement learning.


Time MW 2:40-3:55
Location TBD
Instructor Richard Zemel
Teaching Assistants
Office Hours
Mondays, 4-5pm, and by appointment.


In order to be successful in this course, you should have a strong knowledge of the following subjects (as from a previous undergraduate course):

  • Machine Learning
  • Multivariable Calculus
  • Linear Algebra
  • Probability & Statistics


Assignments 54%
Midterm 20%
Project 25%
Attendance and participation 1%
Please review the Columbia honor code. While working on assignments in small teams is okay, your homework solutions must be your own.