Course Information

Overview

Deep Networks have revolutionized computer vision, speech recognition, natural language and robotics. They have growing impact in the sciences and medicine, and are starting to touch many other aspects of life. Unlike many other computational tools though, they do not follow a closed set of theoretical principles. In Yann Lecun's words they require "an interplay between intuitive insights, theoretical modeling, practical implementations, empirical studies, and scientific analyses." This course attempts to cover that ground, and has three goals:

* Design principles and best practices: design motifs that work well in particular domains, structure optimization and parameter optimization.

* Visualizing deep networks. Exploring the training and use of deep networks with visualization tools.

* Understanding deep networks. Methods with formal guarantees: generative and adversarial models.

This is the second offering of the class, and it builds its computer vision content on the Stanford course CS231n: Convolutional Neural Networks for Visual Recognition Links to an external site.. by Li, Karpathy and Johnson. This semester, we're adding new content on natural language processing and robotics. The natural language content draws from Stanford's CS224n: Natural Language Processing with Deep Learning Links to an external site., while the robotics section borrows from the Berkeley course: CS294: Deep Reinforcement Learning.

Logistics

  • Course Numbers: CS 194/294-129 Spring 2018, UC Berkeley
  • Class Numbers: 194-129: 41752, 294-129: 41751
  • Instructor: John Canny
  • GSIs:
    • Erin Grant: eringrant@berkeley.edu
    • Carlos Florensa: florensa@berkeley.edu
  • Time: MW 5pm - 6:30pm
  • Location: Northgate 105
  • Discussion: Join Piazza Links to an external site. for announcements and to ask questions about the course

Prerequisites

The prerequisites for this course are:

* Knowledge of calculus and linear algebra, Math 53/54 or equivalent. You'll need this throughout the course.

* Probability and Statistics, CS70 or Stat 134. We'll talk about continuous and discrete probability distributions. CS70 is bare minimum preparation, a stat course is better.

* Machine Learning, CS189. You can probably handle this course without a machine learning course before, but it will be very helpful.

* Programming, CS61B or equivalent. Assignments will mostly use Python. If you need some help, try this tutorial from CS231n Links to an external site.

Texts

We'll frequently use the online book: Deep Learning Links to an external site. by Ian Goodfellow and Yoshua Bengio and Aaron Courville. For reinforcement learning, the new version of Sutton and Barto's classic book is available online Links to an external site..

Grading

  • Class Participation: 10%
  • Midterms: 30%
  • Final Project (in groups): 30%
  • Assignments : 30%

Slip Days

You can use up to 5 slip days for late assignments.