Table of Contents

Topics and Course Structure (top)

In the first half of the course, we will delve into the fundamental components that drive modern deep learning systems for computer vision.

During the second half of the course, we will explore practical applications of deep learning in computer vision for solving various problems. Additionally, we will discuss emerging topics that are shaping the future of computer vision. In this part, the course will take on a more seminar-like format, focusing on the core concepts behind the applications rather than diving into exhaustive system details.

Lectures (top)


Course Learning Objectives (top)

Upon successful completion of this course, you will be able to:

  • Understand the major deep learning techniques and computer vision problems.
  • Explain and evaluate both strengths and limitations of various deep learning algorithms.
  • Reproduce the cutting-edge deep learning research.
  • Build practical deep learning tools for real-world tasks.

Prerequisites (top)

The following skills will be useful for success in this course:

  • Programming: You should be comfortable programming in Python. You should be familiar with algorithms and data structures. Familiarity with numpy or similar frameworks for numeric programming will be helpful but is not strictly required.
  • Probability: You should have been exposed to probability distributions, random variables, expectations, etc.
  • Machine Learning: Some familiarity with machine learning and deep learning will be helpful but not required; we will review important concepts that are needed for this course.

Textbooks (top)

There is no required textbook for the course. However, suggested readings include:

  • Deep Learning. Ian Goodfellow, Yoshua Bengio, and Aaron Courville (link)
  • Probabilistic Machine Learning: An Introduction. Kevin P. Murphy (link)
  • The Elements of Statistical Learning. Trevor Hastie, Robert Tibshirani, Jerome Friedman (link)

Homework (top)

You will complete at least five programming assignments over the course of the semester. All homework assignments will be in Python. Submissions will include codes and reports

Grading Policy (top)

You will have the chance to obtain in total 105% of points via:
  • Assignments: 40% (5 assignments, 8% each)
  • Project proposal: 10%
  • Course Project: 40%
  • Paper Review & Presentation: 10%
  • In-class participation: 5% (optional, extra credit)
We will use the following base scheme to convert raw scores in the course into letter grades:
  • A. >= 90
  • B. >= 80 and < 90
  • C. >= 70 and < 80
  • D. >= 60 and < 70
  • F. < 60

Depending on the distribution of raw scores at the end of the semester, we may apply a curve; however the final curve will be no stricter than the base scheme. For example, if you receive a raw score of 80% in the course, you will be guaranteed a letter grade of at least B; however you may receive a higher letter grade depending on the overall distribution of raw scores.

Late Policy (top)

Assignments turned in late will incur a lateness penalty of 20% per day, up to a maximum of 3 days (after which the grade will be 0). Students with legitimate reasons who contact the professor before the deadline may apply for an extension.

Collaboration Policy (top)

You are encouraged to work in groups and discuss course materials and are allowed to discuss general strategies for solving assignment problems with your classmates. However, all assignments you submit must be your own.

The following are examples of unacceptable collaboration:

  • Turning in the same code as another student
  • Looking at another student’s code while writing your own
  • Looking at solutions to similar assignments that you find online