Introduction to Deep Learning

CMSC498L · Spring 2019 · Unive-remove-rsity of Maryland

Description

This course is an elementary introduction to a machine learning technique called deep learning, as well as its applications to a variety of domains. Along the way, the course also provides an intuitive introduction to machine learning such as simple models, learning paradigms, optimization, overfitting, importance of data, training caveats, etc. The assignments explore key concepts and simple applications, and the final project allows an in-depth exploration of a particular application area. By the end of the course, you will have an overview on the deep learning landscape and its applications. You will also have a working knowledge of several types of neural networks, be able to implement and train them, and have a basic understanding of their inner workings.

Logistics

Where & when

CSI 1121
Tuesday, Thursday 3:30pm - 4:45pm

Instructor

Abhinav Shrivastava
4238 IRB
abhinav@cs.umd.edu
Office hours: Tuesday, 5:00pm - 6:00pm (or by email)

Teaching Assistant

Sweta Agrawal
Office hours: Thursday, 5:00pm - 6:00pm

Quick Links

Piazza
Web Accessibility
(more coming soon..)

Schedule

March 5
Date Topic Slides Notes & Assignments
January 29
January 31
warningClass canceled (see UMD alert). Syllabus will soon be adjusted accordingly.
Course Introduction
Motivation
Goals, Syllabus, Assignments
Policies

slides
Machine Learning Basics - I
February 5
February 7
Introduction to Statistical Learning
Simple models
Paradigms of learning
slides
Neural Networks Basics - I
February 7
February 14
Introduction to Neural Networks
Terminology
Simple Neural Networks
Non-linearities
slides
Machine Learning Basics - II
February 12
Computational Infrastructure (TA Lecture)
Introduction to PyTorch
Quick walk-through: Colaboratory, Google Cloud Platform
slides
February 14
February 19
library_books
Problem setup: labels and losses
Types of problems and labels
Loss functions
slides Assignment 1 out
Submission format
February 19
February 26
Optimization basics
Loss function derivatives, minimas
Gradient descent, Stochastic gradient descent
slides
Neural Network Basics - II
February 21
Implementation: Neural Network Run-through (TA Lecture)
Handling data (images, text)
Structuring a neural network and machine learning codebase
Introduction to class challenges
(or how to Assignment 2 and onwards)
ipynb
February 22
library_books
Assignment 1 due
March 5
March 7
Training Neural Networks
Initialization
Backpropagation
Optimization & hyperparameters
slides(1)
slides(2)
March 7
March 12
Training Caveats (Neural Networks and ML models)
Overfitting
Bias/Variance trade-off
Optimization & hyperparameters
(see above)
March 7
March 12
Improving Performance of Neural Networks
Optimization tips and tricks
Best principles
(see above)
March 14
Mid-term exam
In class
March 15
library_books
Assignment 2 & 3 out
March 19
March 21
Spring Break
Convolutional Neural Networks (ConvNets)
March 26
Introduction to ConvNets
Convolutions
Pooling
slides
March 28
April 2
library_books
ConvNet Architectures
Popular architectures (primarily images, brief overview of videos)
Intuitions and key-insights
Design principles
(see above) Assignment 2 due
March 31
library_books
Assignment 3 due
April 2
Understanding ConvNets via Visualization
Visualizing intermediate features and outputs
Inverting ConvNets
Saliency maps
Visualizing neurons
slides
Applications of ConvNets
April 4
April 9
April 12
Application I: Object Detection slides
April 12
April 16
Application II: Dense Prediction slides
warning The following schedule is tentative and likely to change warning
?? Application III: Generative Models
?? Application III: Generative Models (cont.)
Recurrent Neural Networks (RNNs)
April 16 Introduction to Recurrent Networks
April 18 Application I: Text/Language Applications
Advanced Vision + Language Topics
April 23 Vision + Language (models, tasks, training)
April 25 Embeddings (triplet loss, word embeddings, etc.)
Reinforcement Learning
April 30 Introduction to Deep Reinforcement Learning
May 2 Introduction to Deep Reinforcement Learning (cont.)
Advanced Critical Topics
May 7 Adversarial Examples (attacks and defenses)
May 9 Ethics and Bias
Epilogue
May 14 Buffer Class & Conclusion
TBD Project Presentations (likely to be outside class hours)
Wednesday
May 22
Final Exams
10:30am - 12:30pm

Syllabus

Prerequisites

Minimum grade of C- in CMSC330 and CMSC351; and 1 course with a minimum grade of C- from (MATH240, MATH461); and permission of CMNS-Computer Science department.

We will work extensively with probability, statistics, mathematical functions such as logarithms and differentiation, and linear algebra concepts such as vectors and matrices. You should be comfortable manipulating these concepts.

We will use of the Python programming language. It is assumed that you know or will quickly learn how to program in Python. The programming assignments will be oriented toward Unix-like operating systems. While it is possible to complete the course using other operating systems, you will be solely responsible for troubleshooting any issues you encounter.

If you are unsure that you have the required prerequisites, consult with the instructor.

Grading and collaboration

Here's how you will be graded:

  • Assignments: 35%
  • Project (presentation and report): 35%
  • Exams (1 mid-term, 1 final): 30%
  • Bonus points for top-3 ranks for each challenge assignment

Collaboration: Students are expected to finish the homeworks by himself/herself, but discussion on the assignments is allowed (and encouraged). The people you discussed with on assignments should be clearly detailed: before the solution to each question, list all people that you discussed with on that particular question. In addition, each student should submit his/her own code and mention anyone he/she collaborated with.

Submitting assignments and project reports, format, etc.

Details will be announced soon.

Notes

Syllabus subject to change.

Resources

The course should be self contained, but if you need additional reading material, you can consult the following:

If you need reference/additional readings for statistical learning, you can consult the following:

Useful interactive textbooks/courses available online

Other deep learning courses

Linear algebra material that'll help

Tutorials (libraries and computation resources)

Accommodations and Policies

Late Days

  • You get a total of 7 late days (to be used in 24-hour blocks) which can be used throughout the course.
  • Each late day is bound to only one submission. For example, if one assignment and one report are submitted 3 hours after the deadline, this results in 2 late days being used.
  • Late days cannot be used for the final project presentation, the final project report, the final assignment, and any of the exams.
  • Once these late days are exhausted, any submissions turned in late will be penalized 25% per late day. Therefore, no submission will be accepted more than three days after its due date. Except where the submission is not eligible to utilize late days (see above), in which case the submission will be accepted after the deadline.
  • If you submit a submission multiple times, only the last one will be taken into account. If the last submission was after the deadline, late days will be deducted accordingly.
  • If you are unsure about the late day policy, contact the instructor before utilizing them. See below for exceptions.

Academic Integrity

Note that academic dishonesty includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. In short, all submitted work must be your own. Cases of academic dishonesty will be pursued to the fullest extent possible as stipulated by the Office of Student Conduct. It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. For more information on the Code of Academic Integrity or the Student Honor Council, please visit http://www.shc.umd.edu.

Excused Absences and Academic Accommodations

Any student who needs to be excused for an absence from a single lecture, recitation, or lab due to a medically necessitated absence shall:

  • Make a reasonable attempt to inform the instructor of his/her illness prior to the class.
  • Upon returning to the class, present their instructor with a self-signed note attesting to the date of their illness. Each note must contain an acknowledgment by the student that the information provided is true and correct. Providing false information to University officials is prohibited under Part 9(i) of the Code of Student Conduct (V-1.00(B) University of Maryland Code of Student Conduct) and may result in disciplinary action.
  • This self-documentation may not be used for the Major Scheduled Grading Events as defined below.

Any student who needs to be excused for a Major Scheduled Grading Event, must provide written documentation of the illness from the Health Center or from an outside health care provider. This documentation must verify dates of treatment and indicate the time frame that the student was unable to meet academic responsibilities. No diagnostic information shall be given. The Major Scheduled Grading Events for this course include midterm and final exam. For class presentations, the instructor will help the student swap their presentation slot with other students.

It is also the student's responsibility to inform the instructor of any intended absences from exams and class presentations for religious observances in advance. Notice should be provided as soon as possible, but no later than the Monday prior to the the midterm exam, the class presentation date, and the final exam.

Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide a letter of accommodation from the Office of Disability Support Services within the first three weeks of the semester.

Other Accommodations and Policies

You can find the university’s course policies here.