Avant-propos sur le cours

Ce cours, entièrement gratuit, porte sur les récentes techniques d’apprentissage profond. Il se concentre sur les différentes méthodes d’apprentissage (supervisé, non supervisé et autosupervisé), les différentes architectures existantes (ConvNets, RNNs, LSTMs, Transformer, GANs, GNNs, etc.), les méthodes d’enchâssement (contrastives, non-contrastives, génératives) et pleins d’autres choses ! Il est illustré d’applications à la vision par ordinateur, au traitement du langage naturel et à la reconnaissance vocale.
Il est à souligner qu'après une présentation de la vision probabiliste de l'apprentissage profond lors du premier tiers du cours, la suite met particulièrement l'accent sur les modèles à base d'énergie (EBMs pour energy based model) issus de la physique. En effet, il est possible de montrer via la distribution de Gibbs-Boltzmann, convertissant l'énergie en probabilité, que les EBMs engloblent le cadre probabiliste. L'approche énergétique permet alors de recourir à des fonctions de perte plus souples notamment lors de l'inférence.
A l'issue du cours, vous devriez être en mesure de disposer des clés pour comprendre les concepts développés par Yann dans son article A Path Towards Autonomous Machine Intelligence présentant sa vision d'une voie vers l'intelligence autonome des machines.

A noter que pour suivre ce cours, il est fortement conseillé d’avoir des prérequis en algèbre et d’avoir déjà suivi un cours introductif d’apprentissage machine ou de science des données. Ces cours sont destinés à des personnes de niveau bac+4 ou bac+5.




Avant-propos sur la traduction

La traduction française du cours agrège trois versions anglaises différentes : l'édition printemps 2020 (DLSP20 sur YouTube), l'édition printemps 2021 (DLSP21) et l'édition automne 2022 (DLFL22).
Plus précisément, la totalité du cours de 2020 a été traduit. Pour les éditions 2021 et 2022, nous nous sommes limités à traduire les interventions des conférenciers invités qui étaient inédites contrairement au reste du cours qui reste très sensiblement similaire à celui de 2020. Cependant, lors des éditions de 2021 et 2022, des actualisations de certains contenus ont pû être opérées. Ces actualisations ont également été traduites.

Le contenu traduit représente 33 vidéos (cours magistraux et travaux dirigés) d’une durée totale d’environ 45h, 74 pages web de notes de cours prises par les étudiants et 16 notebooks Jupyter utilisés lors des travaux dirigés.
La manière de trouver l'ensemble du matériel du cours est décrit dans la section suivante.




Programme

Nous vous invitons à privilégier les vidéos de la playlist YouTube (contenu « officiel ») puisque le cours y est donné par le corps enseignant contrairement aux sites web (ici et ici) où il s’agit des notes prises par les étudiants pendant le cours. Les sites web étant des résumés des vidéos, celles-ci comprennent donc généralement des informations supplémentaires. Par exemple :
- des anecdotes sur les différents concepts abordés,
- des blagues,
- la répétition d’un même concept mais sous la forme de différentes formulations permettant ainsi de comprendre une idée si une première formulation n’est pas saisie,
- les questions des étudiants qui peuvent être celles que vous ayez vous-même pendant le visionnage,
Notez que si des concepts ne sont toujours pas compris à l’issue de la vidéo, vous avez la possibilité de poser une question en commentaire de la vidéo YouTube, ce que ne permet pas le site web.
- les références des articles sur lesquels se basent le cours sont présentes sur les diapositives des vidéos alors qu’elles sont absentes du site.

Les sites web servent ainsi davantage de résumé des vidéos ou encore de base que vous pouvez réutiliser pour vos notes personnelles que vous prenez pendant le visionnage des vidéos.

⚠ Les vidéos sont paramétrées de sorte que les sous-titres en français apparaissent automatiquement pour les personnes situées dans les pays francophones. S’ils n’apparaissent pas (car votre appareil est configuré en anglais par exemple), pensez à les activer manuellement dans ⚙ Paramètres → Sous-titres → Français.

Dans ce qui suit, le cours a été divisé en 19 unités. Pour chacune d'elles, vous trouverez listés dans « Ressources », les liens vers les vidéos de cours et de TD, les notes de cours, les compléments (i.e. l'actualisation de certaines parties de l'édition 2020 dans l'édition 2021), les diapositives et les notebooks utilisés.



UNITÉ 1

CM : Histoire, motivation, et évolution de l’apprentissage profond
Concepts abordés : la motivation, l’histoire et l’inspiration derrière l'apprentissage profond ; reconnaissance des motifs ; représentation hiérarchique du cortex visuel ; évolution des ConvNets et leurs applications (segmentation d'images, les véhicules autonomes et l'analyse d'images médicales).
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives
TD : Classification, algèbre linéaire, et visualisation
Concepts abordés : algèbre linéaire et application de transformations linéaires et non linéaires.
Ressources : vidéo, notes de cours, notebook 1, notebook 2

UNITÉ 2
CM : Descente de gradient stochastique et rétropropagation
Concepts abordés : modèles paramétrés ; fonction de perte ; méthodes basées sur le gradient (stochastique) ; l'algorithme de rétropropagation et des astuces pratiques la concernant.
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives
TD : Entraînement d'un réseau de neurones
Concepts abordés : conventions utilisées pour entraîner un réseau de neurones ; entraînement d'un réseau en Pytorch pour de la classification multi-classes.
Ressources : vidéo, notes de cours, diapositives, notebook 1, notebook 2

UNITÉ 3
CM : Réseaux de neurones convolutifs (ConvNets)
Concepts abordés : ConvNets pour la tâche de reconnaissance des chiffres de MNIST ; noyau de convolution ; caractéristiques hiérarchiques ; propriétés de compositionnalité, de stationnarité et de localité des images.
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives
TD : Propriétés des signaux naturels et ConvNets
Concepts abordés : propriétés de compositionnalité, de stationnarité et de localité des images ; utilisation de l'éparsité par le noyau ; partage des poids et l'empilement des couches dans un réseau de neurones.
Ressources : vidéo, notes de cours, diapositives, notebook

UNITÉ 4
TD : Ecouter les convolutions
Concepts abordés : algèbre linéaire ; convolutions appliquées à des données audios ; matrice de Toeplitz.
Ressources : vidéo, notes de cours, notebook

UNITÉ 5
CM : Optimisation
Concepts abordés : descente de gradient (stochastique) et mise à jour du momentum ; méthodes adaptatives pour la SGD telles que RMSprop et ADAM ; effets des couches de normalisation ; application à des scans d'IRM.
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives
TD : Convolution multi-canaux 1D et autograd
Concepts abordés : multiplications matricielles et convolution 1D et 2D ; fonctionnement de la fonction autograd.
Ressources : vidéo, notes de cours, notebook

UNITÉ 6
CM : Applications des ConvNets, RNNs et attention
Concepts abordés : applications des ConvNets : reconnaissance de chiffres et d'un code postal à 5 chiffres, détection de visage en architecture multi-échelle, système de vision robotique et segmentation d'objets dans un environnement urbain ; réseaux neuronaux récurrents (RNNs), l'attention, les GRUs (Gated Recurrent Unit) et les LSTMs (Long Short-Term) contre la disparition/explosion du gradient.
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives 1, diapositives 2
TD : Architectures des RNNs et des LSTMs
Concepts abordés : comparaison des RNNs et des LSTMs (architectures et performances).
Ressources : vidéo, notes de cours, diapositives, notebook 1, notebook 2

UNITÉ 7
CM : Modèles à base d’énergie (EBMs) et apprentissage autosupervisé
Concepts abordés : EBMs à variables latentes pour avoir plusieurs prédictions possibles ; démonstration qu'un EBM peut être vu comme une généralisation d'un modèle probabiliste avec des fonctions de notation plus flexibles ; apprentissage autosupervisé ; entraînement d'un EBM en prenant l'exemple des K-means ; méthodes contrastives expliquées à l'aide d'une carte topographique.
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives
TD : Auto-encodeurs sous/sur-complets
Concepts abordés : applications des auto-encodeurs ; différentes architectures d'auto-encodeurs (couche cachée complète ou non) ; implémentation d'un auto-encodeur standard et d'un auto-encodeur débruiteur.
Ressources : vidéo, notes de cours, compléments, diapositives, notebook

UNITÉ 8
CM : Méthodes constratives et modèles à variable latente régularisée
Concepts abordés : méthodes contrastives dans l'apprentissage autosupervisé ; auto-encodeurs débruiteurs ; EBMs à variables latentes régularisées ; algorithmes ISTA, FISTA et LISTA ; auto-encodeurs variationnels et concepts sous-jacents.
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives
TD : Auto-encodeurs variationnels (VAEs)
Concepts abordés : comparaison auto-encodeurs variationnels (VAEs) et auto-encodeurs (AE) standards ; implémentation d'un VAE sur le jeu de données MNIST pour générer de nouveaux échantillons.
Ressources : vidéo, notes de cours, compléments, diapositives, notebook

UNITÉ 9
CM : Eparsité de groupe, modèle du monde et GANs
Concepts abordés : auto-encodeurs épars récurrents discriminatifs et éparsité de groupe pour extraire des caractéristiques invariantes ; architecture de modèles du monde pour le contrôle autonome ; différence entre les modèles du monde et l'apprentissage par renforcement ; réseaux génératifs antagonistes (GANs) en termes d'EBM contrastif.
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives
TD : GANs vus à travers les EBMs
Concepts abordés : réseaux génératifs antagonistes (GANs) ; comparaison entre GANs et VAEs ; examen du code du Deep Convolutional Generative Adversarial Networks (DCGAN).
Ressources : vidéo, notes de cours, compléments, diapositives, notebook 1, notebook 2

UNITÉ 10
CM : Apprentissage autosupervisé en vision par ordinateur
Concepts abordés : apprentissage autosupervisé en vision par ordinateur ; tâches de prétexte en images, en vidéos et en vidéos avec du son ; clustering et l'apprentissage contrastif ; méthodes ClusterFit et PIRL.
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives
TD : Le Truck Backer-Upper
Concepts abordés : problème du Truck Backer-Upper (Nguyen & Widrow, '90) ; résoudre un problème de contrôle non linéaire à l'aide de réseaux de neurones.
Ressources : vidéo, notes de cours, diapositives, notebook

UNITÉ 11
CM : Fonctions d’activation et de perte sur PyTorch
Concepts abordés : fonctions d'activation courantes dans Pytorch ; comparaison activations avec coude(s) et les activations lisses ; pertes basées sur une marge et leurs applications notamment dans le cadre des EBMs.
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives 1, diapositives 2, diapositives 3
TD : La prédiction et l’apprentissage de politique sous contrainte (PPUU)
Concepts abordés : apprentissage efficace des politiques pour conduire dans un trafic dense ; minimisation de l'incertitude dans la prédiction du modèle.
Ressources : vidéo, notes de cours, compléments, diapositives, notebook

UNITÉ 12
CM : Apprentissage profond pour le traitement du langage naturel
Concepts abordés : traitement du langage naturel ; modules composant les transformers et astuces permettant de les entraîner de manière efficace ; recherche en faisceau, décodage gourmand et recherche exhaustive ; échantillonnage top-k ; word2vec, GPT et BERT.
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives
TD : L’attention et le transformer
Concepts abordés : attention et auto-attention ; concept de requêtes, clés et valeurs ; implémentation d'un transformer standard ; comparaison du paradigme de l'encodeur-décodeur aux architectures séquentielles.
Ressources : vidéo, notes de cours, compléments, diapositives, notebook

UNITÉ 13
CM : Les réseaux de neurones convolutifs pour graphes (GCNs)
Concepts abordés : réseaux convolutifs pour graphe (GCN) ; les réseaux spectraux (via convolution spectrale) et les réseaux spatiaux (via template matching) ; avantages et inconvénients, expériences, benchmarks et applications de ces architectures.
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives
TD : Les réseaux de neurones pour graphes (GNNs)
Concepts abordés : connexion entre GCN et l'auto-attention ; implémentation d'un Residual Gated GCN.
Ressources : vidéo, notes de cours, diapositives, notebook

UNITÉ 14
CM : Prédiction utilisant la structure avec les EBMs
Concepts abordés : prédiction basée sur la structure ; graphe factoriel basé sur l'énergie ; algorithme de Viterbi et algorithme forward appliqués aux Graph Transformer Networks ; formulation lagrangienne de la rétropropagation ; inférence variationnelle pour les modèles à base d'énergie.
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives
TD : Surapprentissage et régularisation, et réseaux de neurones bayésiens
Concepts abordés : Effet du surentraînement ; méthodes de régularisation pour réduire le surentraînement ; réseaux de neurones bayésiens.
Ressources : vidéo, notes de cours, diapositives 1, diapositives 2, notebook 1, notebook 2

UNITÉ 15
TD partie A : Inférence pour les EBMs à variable latente
Concepts abordés : modèles à base d'énergie à variables latentes ; EBM appliqué à une ellipse.
Ressources : vidéo, notes de cours, diapositives
TD partie B : Entraînement des EBMs à variable latente
Concepts abordés : version relaxée de l'énergie libre via modification de la température ; exemples d'entraînement d'EBMs et notamment l'apprentissage d'une variété de données en forme de corne.
Ressources : vidéo, notes de cours, diapositives

UNITÉ 16
Cette unité peut être vue comme la suite de l'unité 10.
CM : Apprentissage autosupervisé en vision par ordinateur (suite)
Concepts abordés : apprenttisage autosupervisé en vision ; tâches de prétexte et solution triviale ; apprentissage contrastif et régularisé ; présentations des méthodes PIRL, SimCLR, MoCo, SwAV, SEER et Barlow Twins.
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives

UNITÉ 17
CM : Reconnaissance vocale et Graph Transformer Networks
Concepts abordés : reconnaissance de la parole ; perte CTC (Connectionist Temporal Classification) ; recherche en faisceau pendant l’inférence ; entraînement d’un Graph Transformer Network (GTN) ; « accepteur d’état fini pondéré » (WFSA pour « Weighted Finite State Acceptor ») pour encoder des a priori dans un graphe ; opérations des états finis pondérés (union, étoile de Kleene, intersection, composition).
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives

UNITÉ 18
CM : Traduction automatique à faibles ressources
Concepts abordés : traduction automatique neuronale à faibles ressources ; cycle de la recherche ; incompatibilités potentielles entre les domaines.
Ressources : vidéo, notes de cours 1/2, notes de cours 2/2, diapositives

UNITÉ 19
Cette unité peut être vue comme la suite des vidéos d'Ishan Misra (unités 10 et 16) puisque nous traitons de l’apprentissage de représentations visuelles avec l’apprentissage autosupervisé.
TD : Méthodes d'enchâssements joints contrastives
Concepts abordés : modèles génératifs ; tâches de prétexte et solution triviale ; méthodes d’enchâssements joints (JEMs) contrastives.
Ressources : vidéo, notes de cours, diapositives 1, diapositives 2
TD : Méthodes d'enchâssements joints régularisées
Concepts abordés : méthodes non-contrastives et théorie de l’information ; méthodes de clustering ; « autres méthodes » ; suggestions d'améliorations des JEMs.
Ressources : vidéo, notes de cours, diapositives



Personnes

Yann LE CUN

Alfredo CANZIANI

Loïck BOURDOIS




FAQ

- Est-ce que suivre ce cours permet d’obtenir une certification ?
Non. Pour proposer une certification, il faudrait pouvoir vous évaluer or le contenu n’a pas été prévu pour (contrairement à un MOOC par exemple). Cette demande étant fréquente, des réflexions sont menées pour essayer d’en proposer une pour des éditions (anglaises) futures du cours.

- Combien de temps consacrer à ce cours ?
Pour chaque semaine, il y a environ 2h30/3h de contenu vidéo. Avec le temps consacré à la prise de notes et celui pour jouer avec les notebooks, une estimation totale de 5h par semaine semble raisonnable. Pour la suite, cela dépend du niveau d'immersion que vous voulez atteindre dans un sujet donné (lire les articles donnés en référence, appliquer ce qui a été vu en classe à vos propres projets, etc.).

- Où poser une question à l’issue du visionnage d’une vidéo ?
Vous pouvez la poser directement (en anglais) dans la section commentaires sous la vidéo YouTube en question, Alfredo se fera un plaisir d’y répondre. Si cette question porte sur un point précis de la vidéo, pensez à indiquer l’horodatage. Vous pouvez le faire également sur le Discord de la classe dédié expressément aux étudiants. Il sert également à coordonner des groupes de visionnage, discuter des devoirs, suggérer des améliorations ou plus généralement pour tout sujet lié au cours.

- Puis-je utiliser ce cours ?
Bien sûr, le cours est placé sous la Licence internationale Creative Commons Attribution-NonCommercial-ShareAlike 4.0. Cela signifie que :
- Vous n'êtes pas autorisé à faire un usage commercial de cette œuvre.
- Vous devez créditer l'œuvre, intégrer un lien vers la licence et indiquer si des modifications ont été effectuées à l'œuvre. Vous devez indiquer ces informations par tous les moyens raisonnables, sans toutefois suggérer que l'offrant vous soutient ou soutient la façon dont vous avez utilisé son œuvre.
- Dans le cas où vous effectuez un remix, que vous transformez, ou créez à partir du matériel à partir de l'œuvre originale, vous devez diffuser l'œuvre modifiée dans les mêmes conditions, c'est à dire avec la même licence avec laquelle l'œuvre originale a été diffusée.
- Pour le crédit, vous pouvez utiliser le BibTeX suivant :

@misc{nyudlcourseinfrench,
author = {Canziani, Alfredo and LeCun, Yann and Bourdois, Loïck},
title = {Cours d’apprentissage profond de la New York University},
howpublished = "\url{https://lbourdois.github.io/cours-dl-nyu/}",
year = {2023}"}




Choix de traduction

- Choix de traduire les termes anglais en français :

Terme Traduction Raisons / Explications
Chain rule Règle de dérivation des fonctions composées En pratique usage du terme « règle de la chaîne » dans les sous-titres des vidéos pour gagner de la place.
CNN ConvNet Yann tient particulièrement au respect de cette traduction. Voir notamment la page 202 du livre Quand la machine apprend.
Downstream tasks Tâches en aval Les tâches de prétexte étant les tâches en amont.
Energy-Based Models Modèles à base d’énergie Traduction pas forcément satisfaisante mais adoptée faute de mieux.
Embedding Enchâssement Reprise de la traduction utilisée page 228 dans le livre Quand la machine apprend. Dans la littérature, il est possible de trouver également l'usage du terme « plongement » comme traduction. Parler tout simplement de vectorisation paraîtrait beaucoup plus simple pour faire le lien avec le concept mathématique (on vectorise un mot par exemple).
Graph Neural Networks Réseaux de neurones pour graphe En pratique, pour les sous-titres des vidéos, l'abréviation GNN est privilégiée.
Graph Convolution Networks Réseaux convolutifs pour graphe En pratique, pour les sous-titres des vidéos, l'abréviation GCN est privilégiée.
Manifold Variété Voir l'article Wikipédia
Nonlinearity function Fonction non linéaire En français, on utilise également le terme de « fonction d’activation ».
Overfitting Surentraînement Reprise de la traduction utilisée page 155 dans le livre Quand la machine apprend.
Regularizer Régulariseur Néologisme préférable à régularisateur.
Sparse Epars Pour l'expression « sparse matrix », nous traduisons « sparse » en « creuse » pour « matrice creuse ». Pour tous les autres cas nous utilisons « épars » ou « éparse » en fonction du genre du mot auquel l'adjectif se rapporte.
Sparsity Eparsité Néologisme basé sur le mot « épars ».
Template Matching Template Matching L'expression « appariement de patrons » comme traduction peut être trouvable sur le site ou dans les vidéos.
Yann LeCun Yann Le Cun ou Yann L'explication de l'écriture du nom de famille est donnée page 193 du livre Quand la machine apprend. Dans les notes en anglais des étudiants, il est possible de trouver « Mr Yann LeCun », « Mr LeCun », « Doctor Yann LeCun », « Professor LeCun », etc. Nous utilisons simplement « Yann ».

- Choix de ne pas traduire les termes anglais en français :

Nous avons fait le choix de ne pas traduire certains termes anglais pour des raisons pratiques. Par exemple, certains concepts nécessitent 3 ou 4 mots en français là où 1 seul suffit en anglais. Cela pose notamment problème pour les vidéos où le temps d'affichage est limité, d'où la préférence à garder le terme en anglais. Il serait possible d'utiliser des néologismes mais nous avons préféré ne pas en imposer car ne pouvant peut-être pas faire consensus. Sur le site, les mots laissés en anglais sont indiqués en italique.



Terme Traduction Raisons / Explications
Dropout Dropout Le mot « décimation » serait approprié mais il est déjà utilisé en traitement du signal pour signifier « sous-échantillonnage ».
Finetuning Finetuning Le terme « affinage » peut être trouvable dans la littérature.
One hot One hot La notion de « vecteurs de base canonique » pourrait être utilisée mais elle est un peu technique et l'expression est plutôt longue pour traduire à peine 2 mots. N.D.T : lorsque j'étais étudiant, dans mes cours d'algèbre linéaire, j'utilisais soit « v.b.c » pour « vecteurs de base canonique » ou bien « zérun » (pour un vecteur contenant des 0 et un 1) mais il s'agit d'une convention personnelle que je ne préfère pas imposer.
Pooling Pooling Plusieurs traductions envisagées comme agrégation, agglomération, ou coalescence. Garder le terme en anglais est plus simple (un « max-agrégation » n'est pas très élégant par exemple).
Transformer Transformer Les mots anglais se terminant par « er » sont généralement traduits par « eur », comme par exemple « encoder » en « encodeur » ou, dans la même logique, « decoder » en « decodeur ». Logiquement, « tranformers » devrait se traduire par « transformeurs ». Mais ce n'est pas si simple. L'article Gradient-based learning applied to document recognition) est généralement cité pour ses trois premiers chapitres exposant un ConvNet appliqué à la reconnaissance MNIST. Mais les suivant traite des GTNs, les Graph Transformer Networks, qui sont issus du travail de Léon Bottou. Comme leur nom l'indique, les GTNs contiennent le mot « transformer », mais cela n'a rien à voir avec celui de Vaswani et al. ayant vu le jour plus de 19 ans plus tard. Les articles traitent de choses différentes, il faudrait traduire le « transformer » de chaque papier différemment pour qu’il n’y ait pas de confusion entre les deux concepts. En attendant de pouvoir trancher cette question, il a été choisi de laisser le « transformer » en sa forme anglaise indiquer en italique pour éviter une confusion supplémentaire avec le verbe « transformer » en français.



Jeu de données

La traduction du cours de l'anglais vers le français a permis de créer un corpus de données parallèles. Il a été vérifié manuellement afin d'assurer le bon alignement de l'ensemble des données. Pour plus d'informations techniques, nous vous renvoyons vers la carte du jeu de données disponible sur le Hub d'Hugging Face où vous pourrez télécharger le jeu de données.





Remerciements

Un grand merci aux conférenciers invités qui sont venus donner des présentations dans le cadre du cours : Aaron Defazio, Awni Hannun, Ishan Misra, Marc'Aurelio Ranzato, Mike Lewis et Xavier Bresson.

Un autre grand merci aux personnes de l'ombre : Mark Goldstein, Zeming Lin et Jiachen Zhu.

Enfin un énorme merci au plus de 190 étudiants qui ont partagé leur notes de cours (par ordre chronologique de contribution) :
Yunya Wang, SunJoo Park, Mark Estudillo, Justin Mae, Marina Zavalina, Peeyush Jain, Adrian Pearl, Davida Kollmar, Derek Yen, Tony Xu, Ben Stadnick, Prasanthi Gurumurthy, Amartya Prasad, Dongning Fang, Yuxin Tang, Sahana Upadhya, Micaela Flores, Sheetal Laad, Brina Seidel, Aishwarya Rajan, Jiuhong Xiao, Trieu Trinh, Elliot Silva, Calliea Pan, Chris Ick, Soham Tamba, Ziyu Lei, Hengyu Tang, Ashwin Bhola, Nyutian Long, Linfeng Zhang, Poornima Haridas, Yuchi Ge, Anshan He, Shuting Gu, Weiyang Wen, Vaibhav Gupta, Himani Shah, Gowri Addepalli, Lakshmi Addepalli, Guido Petri, Haoyue Ping, Chinmay Singhal, Divya Juneja, Leyi Zhu, Siqi Wang, Tao Wang, Anqi Zhang, Shiqing Li, Chenqin Yang, Yakun Wang, Jimin Tan, Jiayao Liu, Jialing Xu, Zhengyang Bian, Christina Dominguez, Zhengyuan Ding, Biao Huang, Lin Jiang, Nhung Le, Karanbir Singh Chahal,Meiyi He, Alexander Gao, Weicheng Zhu, Ravi Choudhary,B V Nithish Addepalli, Syed Rahman,Jiayi Du, Xinmeng Li, Atul Gandhi, Li Jiang, Xiao Li, Vishwaesh Rajiv, Wenjun Qu, Xulai Jiang, Shuya Zhao, Henry Steinitz, Rutvi Malaviya, Aathira Manoj, Richard Pang, Aja Klevs, Hsin-Rung Chou, Mrinal Jain, Kelly Sooch, Anthony Tse, Arushi Himatsingka, Eric Kosgey, Bofei Zhang, Andrew Hopen, Maxwell Goldstein, Zeping Zhan, William Huang, Kunal Gadkar, Gaomin Wu, Lin Ye, Aniket Bhatnagar, Dhruv Goyal, Cole Smith, Nikhil Supekar, Zhonghui Hu, Yuqing Wang, Alfred Ajay Aureate Rajakumar, Param Shah, Muyang Jin, Jianzhi Li, Jing Qian, Zeming Lin, Haochen Wang, Eunkyung An, Ying Jin, Ningyuan Huang, Charles Brillo-Sonnino, Shizhan Gong, Natalie Frank, Yunan Hu, Anuj Menta, Dipika Rajesh, Vikas Patidar, Mohith Damarapati, Jiayu Qiu, Yuhong Zhu, Lyuang Fu, Ian Leefmans, Trevor Mitchell, Andrii Dobroshynskyi, Shreyas Chandrakaladharan, Ben Wolfson, Francesca Guiso, Annika Brundyn, Noah Kasmanoff, Luke Martin, Bilal Munawar, Alexander Bienstock, Can Cui, Shaoling Chen, Neil Menghani, Tejaishwarya Gagadam, Joshua Meisel, Jatin Khilnani, Go Inoue, Muhammad Osama Khan, Muhammad Shujaat Mirza, Muhammad Muneeb Afzal, Junrong Zha, Muge Chen, Rishabh Yadav, Zhuocheng Xu, Yada Pruksachatkun, Ananya Harsh Jha, Joseph Morag, Dan Jefferys-White, Brian Kelly, Karl Otness, Xiaoyi Zhang, Shreyas Chandrakaladharan, Chady Raach, Yilang Hao, Binfeng Xu, Ebrahim Rasromani, Mars Wei-Lun Huang, Anu-Ujin Gerelt-Od, Sunidhi Gupta, Bichen Kou, Binfeng Xu, Rajashekar Vasantha, Wenhao Li, Vidit Bhargava, Monika Dagar, Nandhitha Raghuram, Xinyi Zhao, Vasudev Awatramani, Sumit Mamtani, Srishti Bhargava, Jude Naveen Raj Ilango, Duc Anh Phi, Krishna Karthik Reddy Jonnala, Rahul Ahuja, jingshuai jiang, Cal Peyser, Kevin Chang, Gyanesh Gupta, Abed Qaddoumi, Fanzeng Xia, Rohith Mukku, Angela Teng, Joanna Jin, Yang Zhou, Daniel Yao et Sai Charitha Akula.