This 3-credit course will focus on modern and practical methods for deep learning. We will begin with an overview of simple classifiers, such as perceptrons and logistic regression, and move on to standard neural networks, convolutional neural networks, recurrent neural networks and transformers, as well as their applications such as object detection, image segmentation, and captioning. The emphasis will be on the fundamentals and practical application, rather than an in-depth theoretical approach. While the majority of the applications discussed will focus on computer vision, we will also cover some natural language processing applications. The programming components will be based on Python and its associated packages, such as Numpy and PyTorch. Students should have a strong background in linear algebra, probability and statistics, and multivariate calculus, as well as the ability to program in Python.
Assignment #1: 15%
Assignment #2: 15%
Assignment #3: 20%
Final Project: 50%
Many thanks to Jiajun Wu, Fei-Fei Li and Andrej Karpathy for graciously letting us use materials from the Stanford CS231n.