CSCI 381: Deep Learning

WILLIAMS COLLEGE, SPRING 2024

This course is an introduction to deep neural architectures and their training. Beginning with the fundamentals of regression, optimization, and regularization, the course will then survey a variety of architectures and their associated applications. Students will develop projects that implement deep learning systems to perform various tasks. Prerequisites: Computer Science 136 and the Discrete Math Proficiency Requirement.

BASIC INFO

Professor: Mark Hopkins, mh24@williams.edu

Class Schedule: MWF 11-1150am (Section 1), noon-1250pm (Section 2)

Office Hours: Tu 1-230pm, W 2-330pm, Th 2-330pm (TCL 309)

Syllabus: downloadable here

UPCOMING DEADLINES

 

LECTURE SLIDES

  1. Machine Learning: (pdf)
  2. Gradient Descent: (pdf)
  3. Variants of Gradient Descent: (pdf)
  4. Multidimensional Gradient Descent: (pdf)
  5. Argmin and Monotonicity: (pdf)
  6. Linear Regression: (pdf)
  7. Regularization: (pdf)
  8. Logistic Regression: (pdf)
  9. Function Graphs: (pdf)
  10. Optimizing Logistic Regression: (pdf)
  11. Limitations of Linear Models: (pdf)
  12. Neural Networks: (pdf)
  13. Activation Functions: (pdf)
  14. Backpropagation: (pdf)
  15. Minibatch Gradient Descent: (pdf)
  16. Parameter Initialization: (pdf)
  17. Dropout: (pdf)
  18. Convolutional Neural Networks: (pdf)
  19. Higher Order Kernels: (pdf)
  20. Padding: (pdf)
  21. Pooling: (pdf)
  22. Computing Convolutions: (pdf)
  23. Token Embeddings: (pdf)
  24. Recurrent Neural Networks: (pdf)
  25. Encoder-Decoder Models: (pdf)
  26. Attention: (pdf)
  27. Parallel Sequence Encoding: (pdf)
  28. Transformer Decoders: (pdf)
  29. Batch and Layer Normalization: (pdf)
  30. Residual Connections: (pdf)
  31. Multihead Attention: (pdf)
  32. Foundation Models: (pdf)

 

LECTURE CODE/VIDEOS

  1. Github Classroom Walkthrough: (mp4)
  2. Introduction to Tensors: (repo)
  3. Module Training: (simple.py) (circle.py)
  4. Dropout: (dropout.py)
  5. Digitize!: (repo)
  6. Bitpatterns: (repo)
  7. Image Convolutions: (convolve.py)
  8. Word Embeddings: (analogy.py)
  9. RNNs: (rnndemo.py)
  10. RNN Decoding With Attention: (reverso.py)
  11. Batch Normalization: (batchnorm.py)

 

LAB LINKS

 

SCHEDULE

Feb 2: Introduction

Feb 5: Torch and Tensors

  • Classroom Activity: (repo)

Feb 7: Supervised Learning/Gradient Descent

Feb 9: Multidimensional Gradient Descent

Feb 12: Argmin and Monotonic Functions

Feb 14: Linear Regression

Feb 17: Carnaval d’Hiver

Feb 19: Regularization

Feb 21: Logistic Regression/Function Graphs

Feb 23: Optimizing Logistic Regression

Feb 26: “Logistics” Lab Session

Feb 28: Neural Networks

Mar 1: Activation Functions/Backpropagation

Mar 4: Minibatch Gradient Descent

Mar 6: Autograd/Torch Modules

Mar 8: Autograd/Torch Modules

Mar 11: Parameter Initialization

Mar 13: Dropout

Mar 15: Digitize!

  • Lecture Code: (repo)

Apr 1: Convolutional Neural Networks

Apr 3: Higher Order Kernels

Apr 5: Padding and Pooling

Apr 10: Token Embeddings

Apr 12: Recurrent Neural Networks

Apr 15: Encoder-Decoder Models

Apr 17: Attention

  • Lecture Code (RNN Decoding with Attention): (reverso.py)

Apr 19: Transformers

Apr 22: Batch and Layer Normalization

Apr 24: Residual Connections and Multihead Attention