Kevin Scaman

Researcher in machine learning, optimization and graph theory, Inria and Ecole Normale Supérieure, Paris

Material (slides and TDs) for the deep learning course at Ensae:

  • Lesson 1: Introduction, simple architectures (MLPs) and autodiff [slides, Pytorch example]

  • Lesson 2: Training pipeline, optimization and image analysis (CNNs) [slides, Pytorch example]

  • Lesson 3: Sequence regression (RNNs), stability and robustness [slides, Pytorch example]

  • Lesson 4: Generative models in vision and text (Transformers, GANs) [slides]

  • Practical 1: Handwritten character recognition [notebook]

  • Practical 2: VAE for image clustering and generation [notebook]

  • Homework: Feature visualization in CNN [notebook] (notebook with solution to return by email to kevin.scaman@inria.fr before 22/03 end of day)

Projects ideas and topics

You will find below a list of code repositories and ideas for your project:

  • Minimal GPT: Finetune and use a simple implementation of GPT to generate text [repo or repo]

  • Minimal diffusion: Train and use a simple implementation of diffusion models to generate images [repo]

  • Diverse Weight Averaging for Out-of-Distribution Generalization: Improve out-of-distribution generalization of neural networks by a simple averaging method [repo]

  • Neural Radiance Fields: Create 3d scenes using neural networks [repo]

  • Neural ODEs: Learn the dynamics of a physical system with a neural network [repo]

  • Network compression: Use network pruning to reduce inference cost in low-resource settings (e.g. smartphones) [repo]

  • Test-Time Adaptation: Make the model adapt to adversarial changes or attacks at inference [repo]

  • Contrastive Language-Image Pre-Training: Use a joint image-text embedding to describe photos in plain text [repo]

  • Age Estimation: Use a neural network to guess the age of people on photos [repo]

  • Explainability of vision models: Use attention flow to help understand the model's decisions [repo]

  • Out-of-Distribution Detector: Find out-of-distribution examples in training data to improve false positive rate [repo]

Instructions

Please send an email to kevin.scaman@inria.fr with your topic and group for the final project (only one email per group). Please check that all these requirements are verified:

  • 1) Each group should have at most 4 students.

  • 2) Projects need to start with one of the topics above. If you wish to work on another project, please provide a detailed description of the objectives of the project, a link to a codebase or scientific paper to start with, and send me an email at kevin.scaman@inria.fr to make sure that the project is feasible within the duration of the course.

  • 3) The projects should start by running the existing repo, and do something new on top of it, such as testing on a different dataset, finetuning for another application, or trying a different architecture/optimization method for the same task (see examples and ideas in the topics' repositories).

A few tips

  • 1) Deep learning often requires a lot of debugging, so don't start on the last week of the class.

  • 2) State-of-the-art is often achieved with extensive hyper-parameter optimisation and heavy computation power, so no worries if your implementation doesn't match the latest results in the field!

  • 3) Always compare your implementation with a naive baseline (e.g. a linear model or a simple rule based method) to check if DL has value for this specific problem.

Deadlines

  • (01/03) Team formation and topics: Send email (kevin.scaman@inria.fr) with team and topic (link to repo + short description)

  • (29/03) Deliverables: Report (pdf, max 5 pages) + code (link to a colab file or git repo)