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

Instructor:

Ruslan Salakhutdinov

rsalakhu [at] andrew [dot] cmu [dot] 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.

What is the difference between 10-417 and 10-617?
10-417 is undergraduate level and 10-617 is graduate level. Graduate level students will have slightly more work to do than undergraduate level students. If students in 10-417 would like to switch to 10-617, they may do so, but they must reach out to their advisor and cc Dorothy (dfh@cs.cmu.edu) to get approval. They must do this before the first assignment deadline and do the extra work on each assignment to get credit for 10-617.


Logistics


Time
Monday, Wednesday 3:05 - 4:25pm, GHC 4307. The lectures will be also recorded and are available under the Cloud Recordings tab on Canvas. Alternatively, you can also directly access the Panopto recordings.
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.
Student Engagement
Due to room capacity restrictions, all students will be online one day a week and in-person one day a week.
  • In-person section:
    • Andrew IDs beginning with A-L on Mondays
    • Andrew IDs beginning with M-Z on Wednesdays
  • For your remote day, follow this Zoom link.
  • Lectures and recitations will be recorded and made available to students. There may be a delay in posting these recordings while they are processed.
Education Associate
Brynn Edmunds
Teaching Assistants
Michael Agaby
Tarun Chiruvolu
Athiya Deviyani
Olivier Filion
Sedrick Keh
Anamika Shekhar
Udaikaran Singh
Prerequisites
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.

Projects

Timeline
Oct 31: 3-page proposal on the class project
Dec 7: Final projects are due, 8-pages
Requirements
For projects, you may work in teams of 2-3 people. Project info sheet: [pdf].
Slightly modified NeurIPS 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 previous offerings 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 NeurIPS style file. Slightly modified NeurIPS style file and example LaTeX [sty] [tex]

Course grades:
  • 70% on 3 assignments (20%+20%+30%)
  • 30% on Final Project (5% mid-way report, 25% 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 2022. Login via the invite, and submit the assignments on time. If you have not received an invite, please post a private message on Piazza.

Marking

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 a Gradescope regrade request). 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. These grace days will be applied greedily and automatically; you do not have to email us to apply to use these. NOTE: Homeworks submitted late when the student has no grace days remaining or 3 days past the deadline will be given a score of 0.

Projects: Each team will have a total of 3 grace days on the project (can be split between project proposals and final reports). Unused grace days from homeworks CANNOT be applied to the project or vice versa. These grace days will be applied greedily and automatically; you do not have to email us to apply to use these. NOTE: Projects submitted more than 3 days past the deadline will be given a score of 0.

Extensions

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 Brynn Edmunds at bedmunds@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

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

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 Brynn Edmunds (bedmunds@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.

Support

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: rsalakhu [at] andrew [dot] cmu [dot] edu

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