10-417/617 - Intermediate Deep Learning, Fall 2020


Andrej Risteski

aristesk [at] andrew.cmu.edu

Ruslan Salakhutdinov

rsalakhu [at] andrew.cmu.edu

Course Outline

Building intelligent machines that are capable of extracting meaningful representations from data lies at the core of solving many AI related tasks. In the past decade, researchers across many communities, from applied statistics to engineering, computer science and neuroscience, have developed deep models that are composed of several layers of nonlinear processing. An important property of these models is that they can learn useful representations by re-using and combining intermediate concepts, allowing these models to be successfully applied in a wide variety of domains, including visual object recognition, information retrieval, natural language processing, and speech perception.
The goal of this course is to introduce students to both the foundational ideas and the recent advances in deep learning. The first part of the course will focus on supervised learning, including neural networks, back-propagation algorithm, convolutional models, recurrent neural networks, and their extensions with applications to image recognition, video analysis, and language modelling. The second part of the course will cover unsupervised learning, including variational autoencoders, sparse-coding, Boltzmann machines, and generative adversarial networks.
This course will assume a reasonable degree of mathematical maturity and will require strong programming skills.


Monday, Wednesday 3:20 - 4:40pm, Zoom link on Canvas. The lectures will be also recorded, and available under the Cloud Recordings tab in Canvas.

Contact Information
If you have a question, to get a response from the teaching staff quickly we strongly encourage you to post it to the class Piazza forum. For private matters, please make a private note visible only to the course instructors. For longer discussions, we strongly encourage you to come to office hours.
Teaching Assistants
Jonathon Byrd
George Cazenavette
Devendra Chaplot
Shane Guan
Michelle Ma
Students entering the class are expected to have a pre-existing working knowledge of probability, linear algebra, statistics and algorithms, though the class has been designed to allow students with a strong numerate background to catch up and fully participate.
  • You need to have, before starting this course, significant experience programming in a general programming language. Specifically, you need to have written from scratch programs consisting of several hundred lines of code. For undergraduate students, this will be satisfied for example by having passed 15-122 (Principles of Imperative Computation) with a grade of ‘C’ or higher, or comparable courses or experience elsewhere. Note: For each programming assignment, we will be using Python.
  • You need to have, before starting this course, basic familiarity with probability, linear algebra, statistics and algorithms. Any of these courses must be satisfied to take the course: 10301 or 10315 or 10715 or 10601 or 10701.
  • You need to have, before starting this course, college-level maturity in discrete mathematics, as can be achieved at CMU by having passed 21-127 (Concepts of Mathematics) or 15-151 (Mathematical Foundations of Computer Science), or comparable courses elsewhere.
  • You must strictly adhere to these pre-requisites! Even if CMU’s registration system does not prevent you from registering for this course, it is still your responsibility to make sure you have all of these prerequisites before you register.
Course Materials
Homework assignments will be announced on Piazza when released. Slides will be posted periodically on the course website. The instructor will try to upload slides before class, and additional readings will be posted whenever possible.


Oct 30: 3-page proposal on the class project
Dec 4: Final projects are due, 8-pages
For projects, you may work in teams of 2 people. Project info sheet pdf.
Slightly modified NIPS style file and example paper for latex (sty) (tex) and formatting guide (pdf)
Please note that 8 pages is a hard upper limit on length. Grading on project will be reduced if report is over 8 pages. No exception.
Some project abstracts from last year as references abstract.

Assignments and Grading

There will be three assignments and a final project for the course whose details are mentioned above.
Please write all assignments in LaTeX using the NIPS style file. Slightly modified NIPS style file and example atex (sty) (tex)

Course grades:
  • 60% on 3 assignments, each worth 20%,
  • 40% on Final Project (10% mid-way report, 30% final report) .
Homework Assignments
The assignments are to be done by each student individually. You may discuss the general idea of the questions with anyone you like, but your discussion may not include the specific answers to any of the problems.
Submitting Assignments
Assignments will be submitted through Gradescope. Additionally, you should upload your code to Autolab.
Writeups should be typeset in Latex and should be submitted in pdf form.
All code should be submitted with a README file with instructions on how to execute your code.
You will receive an invite to Gradescope for 10417/10617 Intermediate Deep Learning Fall 2019 by 09/1/2019. Login via the invite, and submit the assignments on time. If you have not received an invite, please post a private message on Piazza.


As a general rule, small matters of marking on assignments (apparent errors, questions about evaluation criteria, etc.) should be taken first to the marker (via email). More significant issues, or unresolved matters on assignments, are appropriate to take to the professor. Matters of marking on tests and exams should be taken to the professor.

General Policies

Grace Day/Late Homework Policy
Homeworks: Each student will have a total of 5 grace days that a student may choose to apply to the homework assignments. No more than 3 grace days can be used on any single assignment. There will be no late days allowed for the projects (either for the proposal or final project.)
Homeworks submitted late when the student has no Grace days remaining or 3 days past the deadline will be given a score of 0.

In general, we do not grant extensions on assignments. There are several exceptions:

For any of the above situations, you may request an extension by emailing the Educational Associate Daniel Bird at dpbird@andrew.cmu.edu – do not email the instructor or TAs. The email should be sent as soon as you are aware of the conflict and at least 5 days prior to the deadline. In the case of an emergency, no notice is needed.

Audit Policy

Official auditing of the course (i.e. taking the course for an “Audit” grade) is not permitted this semester.

Unofficial auditing of the course (i.e. watching the lectures online or attending them in person) is welcome and permitted without prior approval. We give priority to students taking the course for a letter grade, so auditors may only take a seat in the classroom is there is one available 10 minutes after the start of class. Unofficial auditors will not be given access to course materials such as homework assignments and exams.

Pass/Fail Policy

We allow you take the course as Pass/Fail. Instructor permission is not required. What grade is the cutoff for Pass will depend on your program. Be sure to check with your program / department as to whether you can count a Pass/Fail course towards your degree requirements.

Accommodations for Students with Disabilities:

If you have a disability and have an accommodation letter from the Disability Resources office, I encourage you to discuss your accommodations and needs with Daniel Bird (dpbird@andrew.cmu.edu) as early in the semester as possible. We will work with you to ensure that accommodations are provided as appropriate. If you suspect that you may have a disability and would benefit from accommodations but are not yet registered with the Office of Disability Resources, I encourage you to contact them at access@andrew.cmu.edu.

Academic Integrity Policies

Read this carefully!

(Adapted from Roni Rosenfeld’s 10-601 Spring 2016 Course Policies.)

Collaboration among Students
Previously Used Assignments

Some of the homework assignments used in this class may have been used in prior versions of this class, or in classes at other institutions, or elsewhere. Solutions to them may be, or may have been, available online, or from other people or sources. It is explicitly forbidden to use any such sources, or to consult people who have solved these problems before. It is explicitly forbidden to search for these problems or their solutions on the internet. You must solve the homework assignments completely on your own. We will be actively monitoring your compliance. Collaboration with other students who are currently taking the class is allowed, but only under the conditions stated above.

Policy Regarding “Found Code”:

You are encouraged to read books and other instructional materials, both online and offline, to help you understand the concepts and algorithms taught in class. These materials may contain example code or pseudo code, which may help you better understand an algorithm or an implementation detail. However, when you implement your own solution to an assignment, you must put all materials aside, and write your code completely on your own, starting “from scratch”. Specifically, you may not use any code you found or came across. If you find or come across code that implements any part of your assignment, you must disclose this fact in your collaboration statement.

Duty to Protect One’s Work

Students are responsible for pro-actively protecting their work from copying and misuse by other students. If a student’s work is copied by another student, the original author is also considered to be at fault and in gross violation of the course policies. It does not matter whether the author allowed the work to be copied or was merely negligent in preventing it from being copied. When overlapping work is submitted by different students, both students will be punished.

To protect future students, do not post your solutions publicly, neither during the course nor afterwards.

Penalties for Violations of Course Policies

All violations (even first one) of course policies will always be reported to the university authorities (your Department Head, Associate Dean, Dean of Student Affairs, etc.) as an official Academic Integrity Violation and will carry severe penalties.

  1. The penalty for the first violation is a one-and-a-half letter grade reduction. For example, if your final letter grade for the course was to be an A-, it would become a C+.

  2. The penalty for the second violation is failure in the course, and can even lead to dismissal from the university.


Take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress.

All of us benefit from support during times of struggle. You are not alone. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is often helpful.

If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Counseling and Psychological Services (CaPS) is here to help: call 412-268-2922 and visit their website at http://www.cmu.edu/counseling/. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.

If you or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night:

If you have questions about this or your coursework, please let the instructors know.

Contact Information

Email: aristesk [at] andrew [dot] cmu [dot] edu

Email: rsalakhu [at] andrew [dot] cmu [dot] edu