Skip to content

Syllabus

Meeting times and location

Wednesday and Friday, 10:15am-12:00pm at 002

Instructor

Pál Zsámboki zsamboki@renyi.hu

Course description

This is an introductory course to Deep Learning. We will cover both the theoretical aspects in the design of neural networks and the practical aspects of their training and evaluation. For the latter, we will use the PyTorch library, which will be introduced as we go. We will warm up by teaching a precursor model, logistic regression, simple image and text classification tasks. Then after a brief introduction to Reinforcement Learning, we shall study Multilayer Perceptrons, the simplest Deep Learning Architecture. Afterwards, we shall introduce the general approach of Geometric Deep Learning and investigate various realizations of it such as Deep Sets, Convolutional Neural Networks and Transformers, the current architecture of choice for most Large Language Models. We will finish with student presentations on additional topics (see Topics).

Prerequisites

Linear algebra, elementary probability, basic calculus, basic familiarity with Python or willingness to pick it up in the first few weeks. If you need a refresher, or some introduction, here are some recommendations:
Python on Exercism
Standford C231n, Python Numpy Tutorial
Jake VanderPlas: A Whirlwind Tour of Python

Topics

  • Basic Machine Learning: Linear regression and classification, dataset splits, metrics, losses, stochastic gradient descent.
  • Evaluation and hyperparameter tuning: Confidence intervals, ensemble methods, early stopping, grid search.
  • Handling Categorical and Sequential Data: Tokenization, Latent Semantic Analysis, embeddings.
  • Reinforcement Learning: Markov Decision Processes, Bellmann Equation, dynamic programming, Monte Carlo methods, Q-Learning.
  • Multilayer Perceptrons and Optimizers: Initialization, momentum, Adaptive Moment Estimation (Adam).
  • Deep Reinforcement Learning: Policy Gradient Theorem, REINFORCE, Deep Q-Network.
  • Introduction to Geometric Deep Learning: Symmetries, invariant and equivariant maps, deep sets, graph equivariant networks.
  • Convolutional Neural Networks: Convolution, batch and layer normalization, dropout, residual connections.
  • Transformers: Attention, positional encodings, Masked Language Modeling, Next Token Prediction, alignment with human and AI preferences (eg. ChatGPT).

Final presentation topics

  • Unbalanced datasets: Under- and oversampling, Focal loss.
  • Diffusion models.
  • Graph Neural Networks (GNN)
  • Point Cloud Learning
  • Decision Transformers
  • Proximal Policy Optimization (PPO)
  • Rainbow: Combining Improvements in Deep Reinforcement Learning
  • SUNRISE: A Simple Unified Framework for Ensemble Learning in Deep Reinforcement Learning
  • Direct Preference Optimization
  • Grokking
  • Mechanistic Interpretability
  • Recurrent Neural Networks (RNN): Stateful Neural Networks, Long-Short Term Memory (LSTM), Gated Recurrent Unit (GRU)
  • Bring Your Own Topic! It can be another area of Deep Learning or even independent research: I would be happy to help you get started on your own Deep Learning project.

Scoring

You final score will be the sum of your homework score, your written presentation score and your oral presentation score. Out of these three, the best score will weight 40%, the other two 30%.

Homeworks

You will get assigned homework roughly once per week. Each homework will be due 2 weeks after the day it was announced, at 10:00 am. A precise schedule will be provided. You can expect me to answer a question related to a homework if asked at least 24 hours prior to this time.

If you hand in your homework less than a week late, then your score will be multiplied by $$ \cos\left(p\frac{\pi}{2}\right)\text{ where }p = \frac{\text{time since homework was due}}{\text{1 week}}. $$ That is, for example:

  1. If you hand in your homework 1 day late, your score will be multiplied by \(\cos\frac{\pi}{14}\approx0.975\).
  2. If you hand in your homework 2.5 days late, your score will be multiplied by \(\cos\frac{5\pi}{28}\approx0.847\).
  3. If you hand in your homework 6 days late, your score will be multiplied by \(\cos\frac{3\pi}{7}\approx0.223\).

You cannot hand in your homework more than a week late.

Your worst homework score will be dropped.

Please hand in homework via email, in py files. The filename should have the pattern {name}-{homework id}.py. For example, I would submit the third homework as pal-zsamboki-3.py. If you import from a custom file, please include that in your submission too.

You are strongly encouraged to discuss homework problems with other students in the course, however, you are required to write your own solutions. You are supposed to understand your own solutions in full detail.

If you rely on sources different from the course notes, it is expected that you name these sources and the extent you have made use of them. In particular, if you rely on a virtual assistant (chatbot), please include a link to the conversation.

Final Project

The other two parts of your total score will come from a final project. Here, you'll explore and present a Deep Learning topic on your own. See Final presentation topics for a list of potentional topics. You are very welcome to bring your own topic! In that case, please write me your suggestion.

Topic selection: due 2/28

You are very welcome to work in groups! In that case, I'll ask you to make it clear who covered which part.

  1. If you are the first to choose a topic, please raise an issue in the class repository about it.
  2. If you want to work on a topic someone else already raised an issue about, please write a comment in the issue.

Please choose a topic by February 28, 6:00pm.

Presentation proposal: due 3/28

In this phase, I expect you to explore the topic you chose. By March 28, 6:00pm, please send me a presentation proposal of at least 200 words per group member. It should include:

  1. A brief description of the topic you chose.
  2. At least 3 references you'll use to prepare your presentation.
  3. An experiment proposal. Usually, this can be a simple modeling experiment, where you set up a model and train it on a relevant dataset.

In the week of March 31, I'll meet with each group to discuss the presentations.

Written presentation: first version due 4/25, final version due 5/9

You should send me your written presentation of at least 500 words per group member by April 25, 6:00pm. This should include:

  1. A detailed description of the topic.
  2. At least 3 references.
  3. Discussion of your experiment.

You should also send me the code you used to run your experiment.

In the week of April 28, I'll meet with each group to discuss the written and oral presentations. Based on this discussion, you can change your written presentation and send me an updated version by May 9, 6:00pm. You'll get your written presentation score based on the final version.

If you hand in the final version of your written presentation less than 5 days late, then your score will be multiplied by $$ \cos\left(p\frac{\pi}{2}\right)\text{ where }p=\frac{\text{time since written presentation was due}}{\text{5 days}}. $$

Oral presentation: Week of 5/5

You will have to present your topics in class during the week of May 5. The talks should be about 10-15 minutes long per group member. You'll get your oral presentation score based on your talk.

Grading

Grades will be calculated from the score via the following grading scale:

Grade Percentage
A+ 97%-100%
A 93%-96%
A- 90%-92%
B+ 87%-89%
B 83%-86%
B- 80%-82%
C+ 77%-79%
C 73%-76%
C- 70%-72%
D+ 67%-69%
D 63%-66%
D- 60%-62%
E / F 0%-59%

Office Hours

By appointment, online or in person. Write or tell me if you want to set up a meeting.

Suggested Reading