CS1699: Deep Learning, Spring 2020

Location: Public Health G23
Time: Tuesday and Thursday, 3pm-4:15pm
Instructor: Adriana Kovashka (email: kovashka AT cs DOT pitt DOT edu; use "CS1699" at the beginning of the subject line)
Office: Sennott Square 5325
Office hours: Tuesday 12:20pm-1:30pm and 4:20pm-5:30pm; Thursday 10am-10:50am and 4:20pm-5:30pm
TA: Mingda Zhang (email: mzhang AT cs DOT pitt DOT edu; use "CS1699" at the beginning of the subject line)
TA's office hours: Tuesday 9am-10am, Wednesday 10am-11am, Thursday 11:30am-12:30pm
TA's office: Sennott Square 5503

Overview

Course description: This course will cover the basics of modern deep neural networks. The first part of the course will introduce neural network architectures, activation functions, and operations. It will present different loss functions and describe how training is performed via backpropagation. In the second part, the course will describe specific types of neural networks, e.g. convolutional, recurrent, and graph networks, as well as their applications in computer vision and natural language processing. The course will also briefly discuss reinforcement learning and unsupervised learning, in the context of neural networks. In addition to attending lectures and completing bi-weekly homework assignments, students will also carry out and present a project.

Prerequisites: Math 220 (Calculus I), Math 280 or 1180 (Linear Algebra), CS 1501 (Algorithm Implementation)

Piazza: Sign up for it here. Please use Piazza rather than email so everyone can benefit from the discussion-- you can post in such a way that only the instructor sees your name. Please try to answer each others' questions whenever possible. The best time to ask the instructor or TA questions is during office hours.

Programming language/framework: We will use Python, NumPy/SciPy, and PyTorch.

Textbooks: We will have required readings from the following textbook. There will also be additional readings from published papers. The following textbooks are useful as additional reference: [top]

Policies

Grading

Grading will be based on the following components:

Homework Submission Mechanics

Homework is due at 11:59pm on the due date. You will submit your homework using CourseWeb. Navigate to the CourseWeb page for CS1699, then click on "Assignments" (on the left) and the corresponding homework ID. You should submit a single zip file with source and results, as requested. Name the file YourFirstName_YourLastName.zip. Please comment your code! Grades will be posted on CourseWeb.

Note that CourseWeb will also contain an automatically computed running average column ("Overall") that you can use to gauge how you're doing in the class based on grades that are already available. Generally, "Overall" scores over 90% map to some type of A, over 80% to B, and over 70% to C.

Exams

There will be two in-class exams. The second exam is not cumulative and will not cover material from the first exam. There will be no make-up exams unless you or a close relative is seriously ill!

Participation

Students are expected to regularly attend the class lectures, and should actively engage in in-class discussions. Attendance will not be taken, but keep in mind that if you don't attend, you cannot participate. You can actively participate by, for example, responding to the instructor's or others' questions, asking questions or making meaningful remarks and comments about the lecture, answering others' questions on Piazza, or bringing in relevant articles you saw in the news. The grading rubric will be as follows: 1 = you attended infrequently, 2 = you attended frequently but did not speak in class, 3 = you attended frequently and spoke a few times, 4 = you participated frequently, 5 = you participated every other week or more.

Homework Late Policy

You get 3 "free" late days counted in minutes, i.e., you can submit a total of 72 hours late. For example, you can submit one homework 12 hours late, and another 60 hours late. The 72-hour "budget" is total for all assignments, NOT per assignment. Once you've used up your free late days, you will incur a penalty of 25% from the total assignment credit possible for each late day. A late day is anything from 1 minute to 24 hours.

Collaboration Policy and Academic Honesty

You will do your work (exams and homework) individually. The work you turn in must be your own work. You are allowed to discuss the assignments with your classmates, but do not look at code they might have written for the assignments, or at their written answers. You are also not allowed to search for code on the internet, use solutions posted online unless you are explicitly allowed to look at those. When in doubt about what you can or cannot use, ask the instructor! Plagiarism will cause you to fail the class and receive disciplinary penalty. Please consult the University Guidelines on Academic Integrity.

Note on Disabilities

If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and Disability Resources and Services (DRS), 140 William Pitt Union, (412) 648-7890, drsrecep@pitt.edu, (412) 228-5347 for P3 ASL users, as early as possible in the term. DRS will verify your disability and determine reasonable accommodations for this course.

Note on Medical Conditions

If you have a medical condition which will prevent you from doing a certain assignment, you must inform the instructor of this before the deadline. You must then submit documentation of your condition within a week of the assignment deadline.

Statement on Classroom Recording

To ensure the free and open discussion of ideas, students may not record classroom lectures, discussion and/or activities without the advance written permission of the instructor, and any such recording properly approved in advance can be used solely for the student's own private use.

[top]

Project

Please enter your team information and topic here by January 30.

The project is expected to be a new method for an existing problem or an application of techniques we studied in class (or another method) to a new problem that we have not discussed in class. Below are some tips: Rules and logistics: Rubric for project proposal (one point for answering each of the questions below):
  1. What do you propose to do?
  2. What have others attempted in this space, i.e. what is the relevant literature?
  3. Why is what you are proposing interesting?
  4. Why is it challenging?
  5. Why is it important?
  6. What data do you plan to use?
  7. What is your high-level idea of how your method will work?
  8. In what ways is this method novel?
  9. How will you evaluate the method, i.e. what metrics are you going to use, and what baselines are you going to compare to?
  10. Give a (1) conservative and (2) an ambitious schedule of milestones for your project.
Rubric for first presentation (all questions except the last one are scored on a scale of 1 to 5, with 5 being best):
  1. How well did the authors (presenters) explain what problem they are trying to solve?
  2. How well did they explain why this problem is important?
  3. How well did they explain why the problem is challenging?
  4. How thorough was the literature review?
  5. How clearly was prior work described?
  6. How well did the authors explain how their proposed work is different than prior work?
  7. How clearly did the authors describe their proposed approach?
  8. How novel is the proposed approach?
  9. How challenging and ambitious is the proposed approach? (1-10)
Rubric for second presentation (all questions except the first one are scored on a scale of 1 to 5, with 5 being best):
  1. To what extent did the authors develop the method as described in the first presentation? (1-10)
  2. How well did the authors describe their experimental validation?
  3. How informative were the figures used?
  4. Were all/most relevant baselines and competitor methods included in the experimental validation?
  5. Were sufficient experimental settings (e.g. datasets) tested?
  6. To what extent is the performance of the proposed method satisfactory?
  7. How informative were the conclusions the authors drew about their method’s performance relative to other methods?
  8. How sensible was the discussion of limitations?
  9. How interesting was the discussion of future work?
Some potential sources of ideas: [top]

Schedule

tr>
Date Topic Readings Lecture slides Due
1/7 Introduction, administrivia, review, Numpy/SciPy DL Ch 1-5 pptx pdf
1/9
1/14
1/16 Neural network basics (tasks, operations, training) DL Ch 4.2, 4.3, 6,
Bishop Ch 5
pptx pdf examples
1/21
1/23 HW1
1/28
1/30 PyTorch tutorial (guest lecture: Mingda Zhang) tutorial demo proposals
2/4 Training part 2 (alternative notation, optimization, properties, convergence) DL Ch 7, 8, 11 pptx pdf
2/6
2/11 HW2
2/13
2/18 First exam
2/20 Convolutional neural networks (architectures, visualization, applications) DL Ch 9 pptx pdf
2/25
2/27 HW3
3/3 Project first presentations
3/5 slides
3/24 Recurrent neural networks (architectures, training, applications) DL Ch 10, Mikolov pptx pdf
3/26
3/31 HW4
4/2
4/7 Advanced/recent topics: Graph networks, self-supervised and reinforcement learning, generation, bias and ethics; Project second presentations Kipf, Doersch, Karpathy, Mnih, Goodfellow, Bolukbasi pptx pdf
4/9
4/14
4/16 HW5
4/23 Second exam (2-3:50pm)

[top]

Resources

This course was inspired by the following courses: Some computer vision datasets: Some code and frameworks of interest: [top]