Overview

Deep Learning is rapidly emerging as one of the most successful and widely applicable sets of techniques across a range of domains (vision, language, speech, reasoning, robotics, medicine, science, and AI in general), leading to significant commercial success, transforming people's lives, and opening up exciting new directions that may previously have seemed out of reach.

This course will introduce students to the basics of Neural Networks (NNs) and expose them to cutting-edge research. It is structured into modules (Background, Convolutional NNs, NN Training, Sequence Modeling, Self-Supervised Learning, Generative Modeling, and Frontiers). These modules will be delivered through instructor-led lectures and TA-led tutorials, reinforced with assignments that cover both theoretical and practical aspects. The course will also include a project that allows students to explore an area of Deep Learning that interests them in more depth.

At the end of the course, guest speakers will be invited to share the latest research developments in academia and industry, offering valuable insights and broadening students' horizons in this dynamic field.

  • Prerequisites:
    • Programming: You should be familiar with algorithms and data structures. Familiarity with python or similar frameworks for numeric programming will be helpful but is not strictly required. Python (Basics).
    • Probability: You should have been exposed to probability distributions, random variables, expectations, etc. Linear Algebra (Essence, Chap 1-4), Multivariate Calculus (Essence, Chap 1, 3-4, 8-9).
    • Machine Learning: Some familiarity with machine learning will be helpful but not required; we will review important concepts that are needed for this course.
  • Lecture:
    Lectures will be Tuesday and Thursday at 245 Beacon St. Room 125A, from 3:00pm to 4:15pm.
  • Textbooks and Materials:
    There is no required textbook for the course. However, the following books (available for free online) can be useful as references on relevant topics: You may also find this tutorial Deep Learning with PyTorch: A 60 Minute Blitz helpful.
  • Grading Policy:
    • No quizzes/exams.
    • 40%: Homework Assigenments (10%*6)
    • 60%: Final Project (Proposal, Presentation, and Report)
    You will complete six programming assignments over the course of the semester. All homework assignments will be in Python, and will use PyTorch on Google Colab.
    Instead of a final exam, at the end of the semester you will complete a project working in groups of at most 4 students.

Staff

Instructor
Teaching Assistant
Teaching Assistant

Guest Speakers

Tentative Schedule (subject to changes)

Date Topic Materials Assignments
Tue, Aug. 26 Lecture 1: Introduction
Course overview,
Course logistics
Thu, Aug. 28 Lecture 2: Linear Regression
Machine learning overview
ML: pipeline, tasks
Linear regression, Polynomial regression
Optimization: gradient-based solution, closed-form solution
Underfit, Overfit, Regularization, Generalization
Assignment 1 out
Tue, Sep. 2 Lecture 3: Linear Classification and Neural Network
Binary Classification / Multi-Class Classification
Sigmoid / Softmax
Cross-Entropy Loss
Perceptron
Thu, Sep. 4 Lecture 4: Multi-Layer Perceptron (MLP)
Linear Problems / Non-Linear Problems
Feature transforms Model: Fully-connected networks
Computational Graph
Optimization: Backpropagation
Assignment 1 due Assignment 2 out
Tue, Sep 9 Lecture 5: Activation Functions
Activation Functions: ReLU, Sigmoid, tanh, Leaky ReLU, ELU
Thu, Sep 11 Lecture 6: Convolutional Neural Networks (CNNs)
Weight initialization, dropout, haperparameters
Universal approximation theorem
Intro to CNNs -- Convolution
Assignment 2 due
Tue, Sep 16 Lecture 7: CNN
Convolution: kernel, receptive field, stride
Padding
Learning convolutional filters
One layer (breadth): multiple kernels
K layers (depth): nonlinearity in between
Pooling
AlexNet
Assignment 3 out
Thu, Sep 18 Lecture 8: CNN Architectures
AlexNet, VGGNet, GoogLeNet, BatchNorm, ResNet
Tue, Sep 23
Thu, Sep 25
Tue, Sep 30
Thu, Oct 2
Tue, Oct 7
Thu, Oct 9
Tue, Oct 14 No Class (Happy Fall Break)
Thu, Oct 16
Tue, Oct 21
Thu, Oct 23
Tue, Oct 28
Thu, Oct 30
Tue, Nov 4
Thu, Nov 6
Tue, Nov 11
Thu, Nov 13
Tue, Nov 18
Thu, Nov 20
Tue, Nov 25
Thu, Nov 27 No Class (Happy Thanksgiving)
Tue, Dec 2 Final Project Presentation (1)
Thu, Dec 4 Final Project Presentation (2)


Office Hours

Name Office hours
Yuan Tu/Th 4:30–5:30PM @ 245 Beacon Rm. 528E
Adam Mon 3:00-5:00PM & Tue 10:00AM-12:00PM @ CS Lab
XanderWed 5:30-7:30PM & Fri 12:00-2:00PM @ CS Lab
  • Office hours will take place in person (or Zoom if needed).


Course Information

This is a challenging course and we are here to help you become a more-AI version of yourself. Please feel free to reach out if you need help in any form.

1. Get help (besides office hours)

  • Dropbox: The lecture pdfs will be uploaded to Dropbox (follow the link) and you can ask questions there by making comments on the slides directly.
  • Discord: For labs/psets/final projects, we will create dedicated channels for you to ask public questions. If you cannot make your post public (e.g., due to revealing problem set solutions), please directly DM TAs or the instructor separately, or come to office hours. Please note, however, that the course staff cannot provide help debugging code, and there is no guarantee that they'll be able to answer last-minute homework questions before the deadline. We also appreciate it when you respond to questions from other students! If you have an important question that you would prefer to discuss over email, you may email the course staff, or you can contact the instructor by email directly.
  • Support: The university counseling services center provides a variety of programs and activities.
  • Accommodations for students with disabilities: If you are a student with a documented disability seeking reasonable accommodations in this course, please contact Kathy Duggan, (617) 552-8093, dugganka@bc.edu, at the Connors Family Learning Center regarding learning disabilities and ADHD, or Rory Stein, (617) 552-3470, steinr@bc.edu, in the Disability Services Office regarding all other types of disabilities, including temporary disabilities. Advance notice and appropriate documentation are required for accommodations.

2. Homework submission

All programming assignments are in Python on Colab, always due at midnight (11:59 pm) on the due date.
  • Install Colab on the browser: Sign in to your Google account, follow the "Link" (to be updated) to the folder of assignments, click on lab0.ipynb, click on "Open with" and "Connect more apps", install "Colaboratory".
  • Submission: You need save a copy of the file in your own Google drive, so that you can save your edits. Afterwards, you can download the ipynb file and submit it to Canvas.
  • Final project: In lieu of a final exam, we'll have a final project. This project will be completed in small groups during the last weeks of the class. The direction for this project is open-ended: you can either choose from a list of project ideas that we distribute, or you can propose a topic of your own. A short project proposal will be due approximately halfway through the course. During the final exam period, you'll turn in a final report and give a short presentation. You may use an ongoing research work for your final project, as long it meets the requirements.

3. Academic policy

  • Late days: You'll have 1 late day for every lab and pset respectively over the course of the semester. Each time you use one, you may submit a homework assignment one day late without penalty. You do not need to notify us when you use a late day; we'll deduct it automatically. If you run out of late days and still submit late, your assignment will be penalized at a rate of 2% per day. If you edit your assignment after the deadline, this will count as a late submission, and we'll use the revision time as the date of submission (after a short grace period of a few minutes). We will not provide additional late time, except under exceptional circumstances, and for these we'll require documentation (e.g., a doctor's note). Please note that the late days are provided to help you deal with minor setbacks, such as routine illness or injury, paper deadlines, interviews, and computer problems; these do not generally qualify for an additional extension.
  • Academic integrity: While you are encouraged to discuss homework assignments with other students, your programming work must be completed individually. You may not search for solutions online, or to use existing implementations of the algorithms in the assignments. Thus it is acceptable to learn from another student the general idea for writing program code to perform a particular task, or the technique for solving a mathematical problem, but unacceptable for two students to prepare their assignments together and submit what are essentially two copies of identical work. If you have any uncertainty about the application of this policy, please check with me. Failure to comply with these guidelines will be considered a violation of the University policies on academic integrity. Please make sure that you are familiar with these policies. We will use moss.pl tool to check each lab and pset for plagriasm detection.
  • AI assistants policy:
    • Our policy for using ChatGPT and other AI assistants is identical to our policy for using human assistants.
    • This is a deep learning class and you should try out all the latest AI assistants (they are pretty much all using deep learning). It's very important to play with them to learn what they can do and what they can't do. That's a part of the content of this course.
    • Just like you can come to office hours and ask a human questions (about the lecture material, clarifications about pset questions, tips for getting started, etc), you are very welcome to do the same with AI assistants.
    • But: just like you are not allowed to ask an expert friend to do your homework for you, you also should not ask an expert AI.
    • If it is ever unclear, just imagine the AI as a human and apply the same norm as you would with a human.

4. Related Classes / Online Resources
Acknowledgements: This course draws heavily from MIT's 6.869: Advances in Computer Vision by Antonio Torralba, William Freeman, and Phillip Isola, and from Stanford's CS231n: Deep Learning for Computer Vision by Fei-Fei Li. It also includes lecture slides from other researchers, including Andrew Owens , Svetlana Lazebnik, Alexei Efros, Fei-fei Li, Carl Vondrick, David Fouhey, Justin Johnson, and Noah Snavely, David Fouhey and Ava Amini. Special thanks to Hao Wang for the insightful and generous advice.