Deep Learning

IE 534, Fall 2018

Instructor: Justin Sirignano
Teaching Assistants: Logan Courtney, Raj Kataria, Xiaobo Dong

What is Deep Learning?

Deep learning has revolutionized image recognition, speech recognition, and natural language processing. There's also growing interest in applying deep learning to engineering, robotics, biotechnology, medicine, and finance.

At a high level, deep neural networks are stacks of nonlinear operations, typically with millions of parameters. This produces a highly flexible and powerful model which has proved effective in many applications. The design of network architectures and optimization methods have been the focus of intense research.

Course overview

Topics include convolution neural networks, recurrent neural networks, and deep reinforcement learning. Homeworks on image classification, video recognition, and deep reinforcement learning. Training of deep learning models using TensorFlow and PyTorch. A large amount of GPU resources are provided to the class. See Syllabus for more details.

Mathematical analysis of neural networks, reinforcement learning, and stochastic gradient descent algorithms will also be covered in lectures. (However, there will be no proofs in homeworks and the midterm.)

IE 534 Deep Learning will be cross-listed with CS 547.

This course is part of the Deep Learning sequence:

  • IE 398 Deep Learning (undergraduate version)
  • IE 534 Deep Learning
  • IE 598 Deep Learning II
Computational resources

A large amount of GPU resources are provided to the class. Graphics processing units (GPUs) can massively parallelize the training of deep learning models. The course has a 50,000 GPU hour allocation. This is a unique opportunity for students to develop sophisticated deep learning models at large scales.

Code

Extensive TensorFlow and PyTorch code is provided to students. This code is distributed to UIUC students who are enrolled in the course.

Homeworks

  • HW1: Implement and train a neural network from scratch in Python for the MNIST dataset.
  • HW2: Implement and train a convolution neural network from scratch in Python for the MNIST dataset.
  • HW3: Implement a deep convolution network with TensorFlow for MNIST and CIFAR10.
  • HW4: Generative adversarial networks (GANs). 2017 version of this homework.
  • HW5: Implement a deep residual neural network for CIFAR100. Use data augmentation techniques and dropout.
  • HW6: Video recognition I. 2017 version of this homework.
  • HW7: Video recognition II
  • HW8: Natural language processing
  • HW9: Deep reinforcement learning on Atari games I. 2017 version of this homework.
  • HW10: Deep reinforcement learning on Atari games II. 2017 version of this homework.
  • Final Project: TBA
Examples of what will be implemented in the Homeworks

In HW6, a deep learning model is trained to predict the action occurring in a video solely using the raw pixels in the sequence of frames. The five most likely actions according to the deep learning model are reported (selected from a total of 400 possible actions).

In HW9, a deep learning model learns to play the Atari video game using only the raw pixels in the sequence of frames (as a human would learn).