University of California, Berkeley

Semester: Spring 2024 (2 units)

Instructors: Aryan Jain, Rohan Viswanathan, Nathaniel Haynam, Chuyi Shang, Saathvik Selvan

Lecture Time & Location: Mon/Wed 7-8 PM, Moffitt Undergraduate Library, Room 102 (this room can be hard to find; see a floor plan here)

Office Hours Time & Location: TBA

Important Links

<aside> <img src="/icons/info-alternate_blue.svg" alt="/icons/info-alternate_blue.svg" width="40px" /> Edstem Sign Up: https://edstem.org/us/join/5uBhCS

Enrollment Form: Link (due Sunday, January 28)

Enrollment Process: Codes will be sent out after the application due date but before the first lecture

Gradescope Code: 4GRZW4

Spring 2024 Lecture Recordings: link

</aside>


Course Mission

Welcome to Deep Learning for Visual Data, presented by Machine Learning at Berkeley!

This course is designed to introduce students to a subset of computer vision that relies on deep learning, spanning both introductory and recent state-of-the-art methods. Our goal is to give students a breadth of understanding of how different computer vision systems can be applied to a wide variety of tasks, as well as a depth of understanding for a certain subset of such systems. Students will ideally leave with:

  1. Wide exposure to different systems used for solving different computer vision problems and a high-level understanding of how and why they work
  2. An understanding of what these systems like these look like under the hood and how they are translated from high-level ideas to low-level details in practice
  3. Experience in implementing end-to-end deep learning systems from scratch in PyTorch

Immediately after completing this course, it is our hope that students will have the knowledge and practical experience necessary to undertake independent projects in the area of computer vision and continue their education on their own.

Pre-Requisites

The pre-requisite for this course is the general minimum background required for understanding both concepts in and the tools used for deep learning. In particular, here are a few things that you should know before enrolling in the course:

  1. Basic Python
    1. Ideally, at the level of CS 61A or from other experiences working on programming projects in the past
    2. You need to be comfortable with object-oriented programming in Python and writing well-organized modular clean code
  2. Basic linear algebra
    1. Familiarity with vector and matrix operations (ex. vector dot products, matrix-vector products, vector norms, etc.)
    2. An optional 3Blue1Brown playlist is linked here to refresh your memory on this (chapters 1, 2, 3, 4, 5 and 8 might be helpful… but no need to worry about something like eigenvectors — just become comfortable with vector and matrix notation)
  3. Multivariable Calculus
    1. Ideally at the level of Math 53
    2. Familiarity with the concept of a partial derivative, a gradient and the chain rule for derivatives
  4. Probability and Statistics
    1. Ideally at the level of CS 70
    2. Familiarity with basic statistics and probability distributions (ex. bayes rule, random variables, expectation, variance, normal distribution, etc.)

Methods of Instruction

Every week, there will be two 1 hour live lectures, and an associated concept-check quiz due on the following Monday. Lectures will be held in-person, and attendance is mandatory. In addition, there will be four programming-heavy homework assignments spread across the semester, where students will get an opportunity to implement and interact with the concepts learned in class.

All of the materials, including the lecture videos, slides, and assignments, will be updated here during the progression of the course.

Office Hours

We will host weekly in-person office hours / homework party to provide assistance with the quizzes and programming assignments, or to clarify any concepts from class. This will also be a great opportunity for students to work together in groups (if they wish to).

Course Outline

Lectures will aim to strike a balance between surveying a wide breadth of content as well as exploring architectural details and the underlying math. Slide decks and lecture videos will keep getting linked below as the semester progresses.