Comprendre le deep learning
(udlbook.github.io)- Un site d’apprentissage qui rassemble en un seul endroit exercices de code, supports de cours et lectures complémentaires pour étudier en suivant le livre 2023 de Simon J.D. Prince publié chez MIT Press, Understanding Deep Learning
- Il propose 68 notebooks Python couvrant l’ensemble du livre, sous forme d’exercices où l’apprenant complète le code manquant en consultant le texte
- Les supports destinés aux enseignants comprennent des fichiers d’illustrations, des cours vidéo pour les 12 premiers chapitres, des diapositives, un livret de corrigés, des figures interactives pour la classe et un fichier LaTeX des équations
- Les diapositives sont conçues pour un cours de deep learning de premier cycle en 20 séances, allant de l’apprentissage supervisé aux CNN, à la génération d’images, puis aux Transformers and LLMs
- Les lectures complémentaires s’étendent à la vision par ordinateur, aux mathématiques du machine learning, à l’optimisation, à l’apprentissage par renforcement, à la théorie du ML et à la Responsible AI, et peuvent servir aussi bien à l’autoformation qu’à la préparation de cours
Informations sur le livre et citation
- Understanding Deep Learning est un livre écrit par Simon J.D. Prince ; les informations de citation BibTeX indiquent qu’il a été publié par MIT Press en 2023
- L’entrée BibTeX fournie contient les informations suivantes
author = "Simon J.D. Prince"title = "Understanding Deep Learning"publisher = "The MIT Press"year = 2023url = "http://udlbook.com"
Exercices de code suivant le livre
- Le site propose 68 exercices sous forme de notebooks Python couvrant l’ensemble du livre
- Les exercices consistent à compléter du code manquant à partir du texte
- Les notebooks se trouvent dans le dépôt GitHub
udlbook/udlbook, et chaque élément peut être ouvert via des liensipynb/colab -
Bases et construction des réseaux neuronaux
- Les premiers chapitres couvrent les mathématiques de base, l’apprentissage supervisé, les réseaux neuronaux peu profonds, les fonctions d’activation, la composition de réseaux et les réseaux neuronaux profonds
- Les exercices sur les fonctions de perte comprennent least squares loss, binary cross-entropy loss et multiclass cross-entropy loss
-
Optimisation et calcul de l’apprentissage
- Les notebooks d’optimisation couvrent line search, gradient descent, stochastic gradient descent, momentum et Adam
- Les exercices de calcul de gradients comprennent la backpropagation sur un toy model, la backpropagation générale et l’initialization
-
Performance, régularisation et CNN
- Les exercices liés à la performance couvrent MNIST-1D performance, le bias-variance trade-off, double descent et les high-dimensional spaces
- Les exercices de régularisation comprennent L2 regularization, implicit regularization, ensembling, Bayesian approach et augmentation
- Les exercices sur la convolution comprennent 1D convolution, MNIST-1D convolution, 2D convolution, downsampling & upsampling et la convolution pour MNIST
-
Sujets modernes du deep learning
- Les notebooks liés à la stabilisation et aux architectures de réseaux couvrent shattered gradients, residual networks et batch normalization
- Les exercices sur les Transformers comprennent self-attention, multi-head self-attention, tokenization et decoding strategies
- Les sujets sur les réseaux neuronaux de graphes comprennent graph representation, graph classification, neighborhood sampling et graph attention networks
- Les exercices sur les modèles génératifs couvrent GAN toy example, Wasserstein distance, normalizing flows, latent variable models et diffusion models
- Les exercices d’apprentissage par renforcement comprennent Markov decision processes, dynamic programming, Monte-Carlo methods, temporal difference methods et control variates
- Les derniers sujets incluent random data, full-batch gradient descent, lottery tickets, adversarial attacks, bias mitigation et explainability
Cours et supports pour enseignants
- Les ressources pour enseignants comprennent des illustrations, des diapositives et un livret de corrigés
- Un lien d’inscription est fourni pour obtenir l’answer booklet après inscription auprès de MIT Press
- Les Interactive figures sont des supports utilisés pour expliquer des idées en cours
- Un working Latex file contenant toutes les équations est fourni
-
Diapositives pour un cours de deep learning de premier cycle en 20 séances
- Les diapositives sont des supports pour un 20 lecture undergraduate deep learning course
- Les thèmes des diapositives publiées comprennent Introduction, Supervised Learning, Shallow Neural Networks, Deep Neural Networks, Loss Functions, Fitting Models, Computing Gradients, Initialization, Performance, Regularization, Convolutional Networks, Image Generation, Transformers and LLMs
Lectures complémentaires
- Le site regroupe comme ressources complémentaires d’autres articles, blogs et livres utilisant un style similaire et la même notation que Understanding Deep Learning
-
Bases de la vision par ordinateur et du machine learning
- Computer vision: models, learning, and inference est un livre publié par CUP en 2012, centré sur les modèles probabilistes et couvrant une grande partie du contenu de ML de l’époque pré-deep learning
- Les ressources de mathématiques pour le machine learning couvrent l’algèbre linéaire, l’introduction aux probabilités, les distributions de probabilité, l’ajustement de distributions de probabilité et la loi normale
- Les ressources de machine learning comprennent learning and inference, regression models, classification models, few-shot learning et meta-learning
-
Transformers, LLMs, NLP
- Les ressources sur les Transformers et les LLMs comprennent une vue d’ensemble des LLM, Transformers I·II·III, l’entraînement et le fine-tuning des LLM, ainsi que l’accélération de l’inférence des LLM
- Les ressources NLP couvrent neural natural language generation, parsing I·II·III et XLNet
- Les sujets liés aux Transformers comprennent self-attention, position encoding, architecture multi-head, Transformer block, encoder, decoder et training tricks
-
Optimisation, modèles temporels, apprentissage par renforcement
- Les ressources d’optimisation comprennent gradient-based optimization, Bayesian optimization et SAT Solvers I·II·III
- Les ressources sur les modèles temporels couvrent Kalman filter, smoothing, Extended Kalman filter, Unscented Kalman filter et particle filtering
- La ressource d’apprentissage par renforcement Transformers in RL couvre les défis du RL, les avantages des Transformers en RL, representation learning, reward learning, policy learning, interpretability et applications
-
ODEs, SDEs, théorie du ML
- L’ensemble ODEs and SDEs in machine learning couvre ODEs, SDEs, gradient descent, stochastic gradient descent, residual networks, diffusion models et physics-informed machine learning
- Les ressources associées comprennent une introduction aux ODE, les closed-form solutions des ODE, les méthodes numériques pour ODE, stochastic processes and SDEs
- Les ressources de ML Theory comprennent gradient flow, neural tangent kernel, NTK applications, Bayesian ML I·II, Bayesian neural networks et neural network Gaussian processes
-
Apprentissage non supervisé, modèles graphiques, Responsible AI
- Les ressources d’apprentissage non supervisé couvrent complex data densities, variational autoencoders et normalizing flows
- Les ressources sur les modèles graphiques comprennent graphical models, models for chains and trees et models for grids
- Les ressources Responsible AI comprennent bias and fairness, explainability I·II et differential privacy I·II
1 commentaires
Avis sur Hacker News
Les commentaires ici se divisent globalement en deux catégories : 1) on peut créer des systèmes d’IA sans ces connaissances, donc ce n’est pas indispensable ; 2) pour comprendre ce qui se passe réellement, ces bases sont nécessaires.
Les deux points de vue sont justes, et j’ai l’impression que le domaine est en train de se scinder en deux compétences : ingénieur ML et scientifique/chercheur ML.
Dans une équipe, c’est bien d’avoir les deux. Le scientifique peut être lent, tandis que l’ingénieur essaie rapidement différentes API et modèles open source, mais quand il se retrouve bloqué ou qu’il faut modifier l’algorithme, beaucoup d’ingénieurs perdent pied. C’est là qu’il faut un mode de pensée de R&D, souvent peu familier à beaucoup d’ingénieurs, et que le scientifique en IA devient important.
Ces dix dernières années, j’ai vu le même schéma dans plusieurs équipes. Une entreprise obtient un peu de budget, se persuade que son problème est particulier, puis recrute des data scientists titulaires d’un doctorat avec quelques articles à leur actif ; mais souvent, ils ne connaissent que R et viennent à peine de terminer un bootcamp Python.
Au bout de trois mois, il n’y a pas grand-chose comme résultats, seulement une pile de notebooks Jupyter ; parfois, il n’y a pas de code de production, ni même d’environnement d’expérimentation.
Le problème business reste entier. L’entreprise finit par comprendre que, si elle a beaucoup de data scientists mais pas assez d’ingénieurs data/ML, elle se bloque au moment du déploiement en production ou, faute de bien comprendre Python, construit une Étoile de la mort mêlant pipelines de données + algorithmes + infrastructure, en consommant 70 % de ressources en plus.
Le projet prend du retard et les gens s’impatientent. Désormais, une équipe à 2,5 millions de dollars par an n’arrive même pas à produire une preuve de concept parce qu’elle ne sait pas servir le modèle en batch ou via une API REST.
L’entreprise perd son élan, tandis que les concurrents sortent une solution imparfaite mais en avance, attirent des utilisateurs et l’améliorent. Ensuite, les PM et les engineering managers se disputent pour savoir qui est responsable, et les VP produit/ingénierie cherchent un bouc émissaire. Quelques docteurs sont licenciés et partent enseigner dans une université locale.
Dans ce sens, je ne vois pas très bien d’où vient cette séparation entre ingénieur ML et scientifique ML, et elle me donne l’impression d’être une distinction faite par certains pour se valoriser.
En tant que personne qui a raté le coche, je me demande si apprendre cela aujourd’hui n’a plus qu’une valeur historique, ou si cela reste pertinent pour l’emploi à l’avenir.
Avec l’IA, on a l’impression qu’OpenAI va manger le déjeuner de tout le monde ; est-ce une idée complètement à côté de la plaque ?
Des ressources comme la récente vidéo de Karpathy expliquant les LLM sont de bons supports semi-vulgarisés pour le grand public, mais le niveau de compréhension pratique juste au-dessus est difficile à acquérir sans mettre les mains dedans. Il n’est pas nécessaire de mémoriser toutes les maths, mais il est utile d’avoir une idée de l’« interface » des composants.
Ce qui compte, c’est ce que chaque technique de modèle fait réellement, en particulier au moment de l’inférence, là où elle doit bien s’intégrer au reste de la stack.
Quant à savoir si cela reste pertinent, le deep learning, au sens de réseaux neuronaux denses entraînés à optimiser une fonction donnée, n’a pas fondamentalement changé en pratique depuis environ 15 ans ; théoriquement, il est encore plus ancien, et pour la plupart des usages, il est bien plus important et largement utilisé que les approches à la OpenAI.
Pour tout ce qui implique de l’estimation numérique, comme l’optimisation publicitaire ou la modélisation financière, on n’utilise pas de LLM : on utilise des modèles adaptés à l’objectif, comme partie d’un système plus vaste. Une interface du type « on donne des nombres et on reçoit des nombres » est explicable, facile à intégrer dans une stack logicielle et agréable à mesurer.
Elle a des barres d’erreur compréhensibles et, parfois, elle est même cohérente. Elle offre aussi une interface contrôlable qui ne va pas soudainement recracher des secrets d’entreprise ni oublier de sérialiser du JSON. La latence et les coûts sont également bien plus faibles.
Si vous devez rendre une page web en moins de 100 ms ou optimiser parmi des millions d’options, l’IA générative n’est pas un choix pratique, et il est peu probable qu’elle le devienne.
Je n’ai pas un énorme bagage en maths ou en théorie du ML, mais j’ai passé l’essentiel des dix dernières années à construire de l’infrastructure, des pipelines de données et du monitoring avec des spécialistes du ML. Je ne peux pas intégrer une sigmoïde à la volée, mais ce n’est pas l’essentiel. Je l’ai déjà fait une fois, j’ai une intuition de la façon dont la fonction se comporte, et je peux raisonner dessus comme sur un composant boîte noire.
Contrairement à d’autres domaines du ML, les composants du deep learning s’imbriquent bien les uns avec les autres. Si vous le voulez, vous pouvez même utiliser un Transformer avec un CNN. Il permet aussi d’appliquer l’apprentissage automatique à n’importe quel type de données — texte, images, vidéo, audio, etc. — et il passe naturellement à l’échelle sur le plan du calcul.
En tant que personne assez impliquée dans ce domaine, je trouve dommage qu’à cause des LLM, des gens se détournent du ML et du deep learning en suivant l’idée erronée qu’« il n’y a plus de raison de s’y mettre ». Les grands algorithmes coûtent cher à exécuter, ont un débit lent et sont généralement moins performants que des modèles conçus pour un objectif précis. Pour beaucoup de tâches, ils ne sont pas non plus plus faciles à utiliser que des réseaux encodeurs.
C’est peut-être un point de vue biaisé, mais je pense que c’est l’un des domaines les plus amusants à apprendre en informatique. Si vous avez une bonne idée, vous pouvez construire quelque chose à l’état de l’art même avec un GPU grand public à la maison. Il suffit de trouver une niche qui reçoit moins d’attention que les LLM.
Le deep learning en fait partie. Une grande partie est déjà encapsulée dans des bibliothèques et des API ; le travail consiste donc à préparer les bonnes données, appeler la bonne API, puis exploiter les résultats.
Par exemple, OpenAI ne s’intéressera probablement pas au développement d’un petit réseau neuronal embarqué sur une puce capteur détectant en temps réel certaines molécules dans l’air.
Ce livre est impressionnant. Il contient aussi un chapitre sur un sujet que j’aime beaucoup, l’efficacité déraisonnable du deep learning. Y a-t-il d’autres livres à surveiller ?
Les plus pressés peuvent aller directement à la diapo 123. Les principales recommandations sont Murphy, Gelman, Barber et Deisenroth.
Il faut garder à l’esprit que ces diapositives ont un biais bayésien. Cela dit, Murphy est un excellent livre sur le deep learning, et passer par les modèles linéaires généralisés avant d’entrer dans le deep learning est aussi une bonne approche.
Fait intéressant, le fameux article Attention approche les 10 000 citations et devrait les atteindre vers la fin de l’année. Il est très probable que ce soit l’article à avoir atteint le plus rapidement ce jalon important.
Les livres de deep learning écrits avant l’article Attention doivent être considérés comme datés et nécessitent une mise à jour. C’est un peu comme un vieux manuel de physique qui contiendrait les lois de Newton, mais pas l’équivalence masse-énergie d’Einstein.
Si l’on commence maintenant à lire et à étudier l’IA, peut-on atteindre un niveau proche de celui d’un expert ?
Je crains de m’engager dans un parcours qui nécessiterait un master ou un doctorat.
En revanche, il peut manquer les leçons de terrain, les petites astuces et intuitions nécessaires pour faire fonctionner de vrais systèmes. Cela prend du temps, et selon moi c’est autant un art qu’une science.
Des questions comme « puis-je devenir expert ? » sont trop floues pour servir de bons repères.
J’ai travaillé pendant 10 ans sur plusieurs plateformes de machine learning dans de grandes entreprises tech, et tout ce sur quoi j’ai travaillé est devenu obsolète assez vite.
Des algorithmes de ML aux plateformes de calcul, tout était très éphémère. Ajoutez à cela le fait que la plupart des innovations en ML viennent d’une poignée d’entreprises d’élite, et apprendre beaucoup de ce type de contenu me semble presque contradictoire.
Mais pas les algorithmes et les idées du machine learning. Si apprendre SVN ou le bayésien naïf ne t’a rien apporté d’utile aujourd’hui, alors en réalité tu n’as rien appris.
Par exemple, le Transformer a été développé pour résoudre le problème de disparition du gradient des LSTM sur les longues séquences, et pour améliorer le fait que les LSTM sont intrinsèquement séquentiels dans la dimension temporelle, ce qui exploite mal les GPU.
Les fondamentaux ne changent pas beaucoup. Il y a plusieurs courants dans ce domaine, et beaucoup d’algorithmes ont tenu dans la durée et sont réellement utilisés. Bien sûr, on peut en mettre certains à niveau si l’on veut, mais si l’on poursuit indéfiniment le lapin blanc, il ne reste qu’une boule de coton dans les mains.
Personnellement, je pense que des forces du même genre que celles de l’évolution font avancer la technologie. Il me semble que Linus Torvalds a déjà dit que Linux avait évolué par sélection naturelle.
Il est très difficile de juger ce genre de livre. Faut-il se contenter de la table des matières ?
Je me demande qui est l’auteur, s’il a d’autres travaux estimés, s’il existe de bonnes critiques de personnes qui connaissent le sujet, ou seulement de bonnes critiques d’étudiants qui n’y connaissent rien.
Je compte acheter celui-ci en version papier.
Tu demandes si l’on juge seulement à la table des matières, mais le site lié permet de télécharger plus de 500 pages de brouillon, couvrant les chapitres 1 à 21.
L’auteur, Simon J. D. Prince, est professeur émérite d’informatique à l’University of Bath et l’auteur de Computer Vision: Models, Learning and Inference. C’est un chercheur spécialisé en IA et en deep learning, qui a dirigé des équipes de chercheurs dans le monde académique et industriel, notamment chez Anthropics Technologies Ltd et Borealis AI.
Parmi ses autres publications reconnues, on compte plus de 50 articles évalués par les pairs dans des conférences de tout premier plan comme CVPR, ICCV ou SIGGRAPH : https://scholar.google.com/citations?user=fjm67xYAAAAJ&hl=en
Pour les critiques, le livre n’est pas encore publié et ce que l’on consulte actuellement est littéralement un brouillon gratuit. Il est en précommande sur Amazon à 85 dollars.
https://github.com/udlbook/udlbook/releases/download/v1.16/U...
J’espère que ce n’est pas une question idiote, mais comment peut-on acheter la version papier ?
https://mitpress.mit.edu/9780262048644/understanding-deep-le...
Dans l’illustration du PDF, Why does deep learning work semble pointer vers Deep learning and ethics, et inversement.
Ayant lu pour la dernière fois le livre Deep Learning d’Ian Goodfellow en 2016, je trouve intéressant qu’il n’y ait pas de chapitre sur les RNN, mais qu’il y ait un chapitre sur les Transformers.
C’est pourquoi ils sont peu utilisés actuellement. Cela dit, à titre personnel, je les trouve suffisamment intéressants sur le plan conceptuel pour mériter d’être abordés dans ce type de cours.