Fall 2025

CS 198-126: Deep Learning for Visual Data

University of California, Berkeley

Semester: Fall 2025 (2 units) Instructors: Tejas Prabhune, Tim Xie, Rishi Athavale, Saathvik Selvan Lecture Time & Location: Physics 2, 7-8pm, Wednesday & Thursday Office Hours Time & Location: TBD

Ed Link: https://edstem.org/us/join/sUaKqcarrow-up-right Enrollment Form: https://forms.gle/S6rLfenSRVWQDn9XAarrow-up-right (maximum capacity is 100) Enrollment Process: Codes will be sent out after the application due date but before the first lecture Gradescope Code: 3XK78B Spring 2025 Lecture Recordings: Linkarrow-up-right Fall 2024 Lecture Recordings: Linkarrow-up-right


Course Mission

Welcome to CS 198-126: Deep Learning for Visual Data, offered by Machine Learning at Berkeleyarrow-up-right!

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.

Prerequisites

The prerequisite for this course is the general minimum background required for understanding both concepts in and the tools used for deep learning. We will likely not have the staff bandwidth to help with prerequisite content so we strongly recommend having at least the following foundational knowledge before taking this class:

  1. Basic Python

    1. 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 herearrow-up-right 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. 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. 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.

Cluster 1: Intro to Deep Learning

Week 1-2

  1. What is Machine Learning? (slidesarrow-up-right)

  2. Deep Learning 1: Introduction to Neural Networks (slidesarrow-up-right)

  3. Deep Learning 2: Neural Network Optimization (slidesarrow-up-right)

  4. Deep Learning 3: Representation Learning (slidesarrow-up-right)

Cluster 2: Essential Computer Vision

Week 3-5

  1. Images and Convolutions (slidesarrow-up-right)

  2. Convolutional Neural Networks (slidesarrow-up-right)

  3. Advanced CV Architectures

  4. Object Detection

  5. Segmentation

Cluster 3: Transformers

Week 5-8

  1. Sequence Modeling

  2. Attention and Transformers

  3. Vision Transformers

  4. Multimodality and CLIP

  5. Advanced Detection and Segmentation

  6. Self-Supervised Learning

Cluster 4: Generative Modeling

Week 8-11

  1. Variational Autoencoders

  2. Generative Adversarial Networks

  3. Vector Quantization

  4. Diffusion Part 1

  5. Diffusion Part 2

Cluster 5: Special Topics

Week 12

  1. 3D Reconstruction

  2. Office hours for Diffusion HW

Assignments

Assignment
Due Date
Cluster

September 27th, 2025

Cluster 1

October 25th, 2025

Cluster 2

November 21st, 2025

Cluster 2

December 5th, 2025

Cluster 4

December 12th, 2025

Cluster 5

Syllabus

We will have mandatory quizzes and assignments to ensure retention of the course material and to give you practical experience with deep learning. We will try to make sure that the workload is appropriate for a 2 unit course and that every work assigned is meaningful and critical to your learning. Our hope is that all of the assignments combined will take, on average, around 6 hours per week total.

Course Components

Weekly Lecture Quizzes

We will assign weekly concept-check quizzes on Gradescope. While these quizzes are not meant to be intense, they will require you to pay attention during the lectures. Quizzes will be graded on completion but we still expect you to make an honest attempt at them.

We anticipate that there will be a total of 8-10 quizzes throughout the semester.

Programming Assignments

There will be 4 programming assignments this semester, all of them graded on correctness. Each of them will walk you through implementing some end-to-end deep learning pipeline, all the way from model training to evaluation. Since these models can be fairly compute-intensive to train, we will utilize the free GPU services provided by Google Colab and/or Kaggle. You are welcome to set up your own hardware, but course staff may be unable to help you in the event that you run into any issues with it.

We may also have you go over parts of different research papers during some of the assignments in order to give you more practice with reading and extracting relevant information from academic literature.

Extensions

We are adopting an extension policy inspired by CS 161:

  • Extensions of up to 3 days will be automatically approved and will require no additional actions on your part. In particular, each Gradescope assignment will have a due date (the original deadline) and a late due date (the original deadline + 3 days) — requesting an extension of ≤ 3 days is equivalent to submitting between the due date and late due date.

  • Extensions beyond 3 days but up to 7 days will need to be approved by a facilitator — please fill out the Extensions Request Form linked herearrow-up-right.

  • Extensions beyond 7 days will not be considered. While this course is only a DeCal, we don’t want you to fall behind:

    • The free GPU services mentioned above have usage quotas that are automatically applied to your account, that could possibly take a while (from a few hours to a couple of days) to refresh. If multiple programming assignments are attempted in a relatively short period of time, say during the last week of instruction, we cannot guarantee if you will receive enough GPU resources to successfully complete them. This reason may seem far-fetched but there were multiple students in past semesters who were unable to submit the homeworks because they started very late and got blocked by these GPU quotas.

    • Several lectures will build upon previous lectures. In order to ensure that you are keeping up with the content, we cannot delay a concept-check quiz by more than a week.

Passing

This course is graded on a P/NP scale and a 70% is considered a passing grade. Here is the grading breakdown that we will follow this semester. Note that Homework 6 is not listed here, but can be used to replace the grade of any of Homeworks 2-5.

Component
Percentage

Quizzes

20%

Homework 1

10%

Homework 2

15%

Homework 3

15%

Homework 4

15%

Homework 5

15%

Attendance

10%

Resources

Stanford offers a similar course: CS231n: Deep Learning for Computer Visionarrow-up-right.

We recommend checking out 3Blue1Brown’s Youtube series on linear algebraarrow-up-right and multivariable calculusarrow-up-right if you need a quick refresher on those subjects. He also has an amazing seriesarrow-up-right explaining gradient descent and backpropagation for neural networks, something that we will cover in our introductory deep learning lectures as well. We also recommend CS 70 lecture notesarrow-up-right (note 13 and beyond) as a quick reference for probability and statistics concepts.

Communication

We will use Edstem for all announcements, questions and discussion. We will monitor Ed pretty regularly so please make a private post on it if you need to communicate with us directly.

If you can’t access Ed, please email [email protected]envelope. Please do not email anybody else individually.

Acknowledgements

We would like to thank Aryan Jain, Jake Austin, Arvind Rajaraman, Ryan Alameddine, Val Rotan, Verona Teo, Vanessa Teo, Saathvik Selvan, April Zhang, Derek Xu, John So, Arjun Sripathy, Alexander Wan, Sohom Paul and Harshika Jalan for their help in developing the course and/or facilitating its previous iterations!

Last updated