STAT 4984

Information

Topic: Deep Learning

Lecture: In-person (MWF:1:25-2:15PM), Location: (WAL 244)

Instructor: Xin (Shayne) Xing, Email: xinxing AT vt.edu Office hour: Monday, 2:30pm-3:30pm, Room 402, Hutcheson Hall

TA: Youhui Ye , Email: yye1997@vt.edu Office hour: Tuesday, 2:00pm-3:30pm Zoom Link


Syllabus

Course description & Prerequisites

This class provides an in-depth introduction to deep learning, including algorithms, theoretical motivations, and how to implement it in practice. As part of the course, we will cover multilayer perceptrons, backpropagation, automatic differentiation, and stochastic gradient descent. We introduce convolutional networks for image processing, starting from the simple LeNet to more recent architectures. In addition, we discuss recent recurrent networks and the attention mechanism. In this course, we emphasize efficient implementation, optimization, and scalability. We use python as our programing language to implement the deep learning framework. The goal of the course is to provide both a good understanding and good ability to build a modern deep learning model and apply it to different types of real applications such as image processing and bioinformatics.


Prerequisites: An undergraduate-level understanding of probability, statistics, multivarate calculus, advanced python programing language, and linear algebra are assumed.


All class materials are distributed online; for example, you may view most class notes and homework assignments on the Schedule. Canvas is used to report scores from quizzes, homework and the final project.


Recommended Text Book

Dive into Deep Learning
Aston Zhang, Zachary C. Liption, Mu Li, and Alexander J. Smola

Deep Learning
Ian Goodfellow and Yoshua Bengio and Aaron Courville


In-class Quiz

The in-class quiz (each 10 points) must be submitted in class. If the quiz is submitted in time, it will be guaranteed to have at least 5 points. If the quiz is not submitted in time, it will receive a zero score.


Homework Assignments

Weekly homework assignments will be posted on Canvas unless otherwise announced in class. Late homework that overdue in 24 hours are penalized to 90% of its total score. Homework that overdue for more than 24 hours would not be accepted, and missed homework receive zero scores. Homework assignments must be submitted at Canvas. Grades will be returned to you on Canvas.

It is expected that students will read the slides and refereed materials listed in the Schedule . Your work must be legible, include name, and be submitted in a single python notebook (ipynb) file. You are expected to put in 6-8 hours of work outside of class. A few of you will do well with less time than this, and a few of you will need more. You must write up your final answers and write your own code: copying homework solutions is not allowed.


Final Project

There will be one final project. The final report will include a well-written pdf document including (introduction, data visualization, Model & methods, Results). You must write up your final report and code by your own input. Please see the following for details.


The final project requires:

  1. Propsal, you’ll pick a project idea to work on early and receive feedback from the Instructor and TAs.
  2. a github repository with project code(in Pytorch) and documentation.
  3. a pdf file for a final report.

Project Topics: (More examples will be added later)

  1. Computer Vision
    Image Classification with CIFAR dataset
    MNIST data with rotated imaging
    MNIST data with reversed background color
    Generate fake handwritten digits using MNIST data
  2. Natural Language Processing
    Amazon review sentiment
    Music genre classification
    Image caption generator
    Simple chatbot using movie scripts
  3. Project proposal:

    1. What is the problem that you will be working on? Why is it interesting?
    2. What are the challenges of this project?
    3. What dataset are you using?
    4. What method or algorithm are you proposing? If there are existing implementations, will you use them and how?
    5. How do you plan to improve or modify such implementations?
    6. How will you evaluate your results?
    7. Any reference relevant to the project?

    Final Report (at least 5 pages without figures):

    1. Explain the motivation for the project and state the problem clearly.
    2. Attach the link of github repo for this project.
    3. A description of the data include plots.
    4. Any hyperparameter and architecture choices that were explored.
    5. Presentation of results.
    6. Analysis of results.
    7. Any insights and discussions relevant to the project.
    8. References.
    9. Format: You are strongly encouraged to use Latex (here’s a link to the overleaf files). If you are not using this format, make sure to include all sections given in the format. If you prefer to use Microsoft Word, you may refer to the CVPR template.

    Grades

    Your grade will consist of in-class quiz (10%), Homework (55%), a Final Project (35%).


    Quiz 10%
    Homework 55%
    Final Project 35%

    The total score is the weighted average of scores in all categories. The total scores in 90-100 are guaranteed at least an A-. The total scores in 80-90 are guaranteed at least an B-. The total scores in 70-80 are guaranteed at least an C-. The total scores in 60 - 69 are guaranteed at least a D-. The lower bound of each interval may be expanded, which depends on the overall performance.


    Academic Integrity

    The Undergraduate Honor Code pledge that each member of the university community agrees to abide by states:

    “As a Hokie, I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor will I accept the actions of those who do.”

    Students enrolled in this course are responsible for abiding by the Honor Code. A student who has doubts about how the Honor Code applies to any assignment is responsible for obtaining specific guidance from the course instructor before submitting the assignment for evaluation. Ignorance of the rules does not exclude any member of the University community from the requirements and expectations of the Honor Code. Academic integrity expectations are the same for online classes as they are for in person classes. All university policies and procedures apply in any Virginia Tech academic environment. For additional information about the Honor Code, please visit: https://www.honorsystem.vt.edu/

    Honor Code Pledge for Assignments: The Virginia Tech honor code pledge for assignments is as follows:

    “I have neither given nor received unauthorized assistance on this assignment.”

    The pledge is to be written out on all graded assignments at the university and signed by the student. The honor pledge represents both an expression of the student’s support of the honor.

    The field of Computational Modeling and Data Analytics requires professionals who act with the highest ethical standards. CMDA teaches skills that empower you to have a tremendous impact upon the world. We teach you these skills with the expectation that you will exercise them responsibly.

    Responsible practice is a habit forged during your undergraduate studies.

Schedule

--> -->
Time Materials
Week 01 (01/16-01/20) Week 1: Intro to deep learning (code)
Readings: Artificial Intelligence-The Revolution Hasn't Happened Yet
An Introduction to Colab
Python Basics
Week 02 (01/24-01/30) Week 2: Multilayer perceptrons (code)
Week 03 (01/31-02/06) Week 3: Optimization (code)
Readings: Dropout
Week 04 (02/07-02/13) Week 4: Convolutional neural networks 1 (code)
Readings: Pytorch Tutorial
Week 05 (02/14-02/20) Week 5: Convolutional neural networks 2 (code)
Week 06 (02/21-02/27) Week 6: Convolutional neural networks 3
Week 07 (02/28-03/06) Week 7: Recurrent Neural Network (code)
(03/04-03/12) Spring Break
Week 08 (02/28-03/06) Week 8: Attention (code)
Attention? Attention
Attention is all you need
Week 09-10 (03/13-04/02) Week 9-10: Generative Model (code)
VAE paper
GAN paper
Week 11 (04/03-04/09) Week 11: Reinforcement Learning 1
Week 12 (04/10-04/16) Week 12: Reinforcement Learning 2 (code)