Histoire et Fondements du Deep Learning
17 avril 2021
Deep Learning
Introduction et contexte du cours
C'est parti pour l'enregistrement et bienvenue en cours.
Bienvenue à tous. C'est en fait le cours d'Alfredo aujourd'hui, mais je voulais, puisque c'est notre première session, prendre quelques minutes pour introduire un peu le cours. Alfredo vous donnera plus de détails sur le plan de l'ensemble du cours, son fonctionnement, ainsi que sur les outils et logiciels. Nous clarifierons les points que j'ai expliqués pendant le cours et que vous ne comprendrez peut-être pas directement, mais Alfredo rendra tout cela clair.
Les fondations : McCulloch, Pitts et Hebb
J'ai pensé parler un peu de l'histoire de ce sujet, car ce n'est pas quelque chose dont nous parlons beaucoup pendant les cours. Le deep learning est le descendant des travaux sur les réseaux de neurones, qui sont eux-mêmes les descendants de travaux où l'on essayait de comprendre comment les systèmes biologiques s'auto-organisent. En remontant aux années 1940, McCulloch et Pitts ont eu l'idée que si l'on connecte des éléments de calcul très simples, qui sont essentiellement des neurones binaires, on peut effectuer des opérations logiques. Si l'on peut faire des opérations logiques, on peut raisonner. Ils ont émis l'hypothèse que le cerveau est un très grand réseau de neurones, et que ces neurones sont en fait plutôt binaires dans le cerveau. Soit ils s'activent avec un pic, soit ils s'éteignent. Ils ont dit que si l'on dispose d'éléments binaires, on peut calculer, faire du calcul logique, de l'inférence, et que c'est peut-être un processus que le cerveau utilise pour raisonner.
Simultanément, Donald Hebb, un psychologue, a proposé une explication sur la façon dont les neurones du cerveau changent en modifiant la force des connexions entre eux pour modifier leur fonction. C'était connu en neurosciences, mais l'idée que l'apprentissage procède en modifiant la force de la connexion entre les neurones vient de là. Hebb a proposé que si deux neurones sont actifs en même temps, alors la synapse qui les connecte se renforce ; s'ils ne sont pas actifs en même temps, elle s'affaiblit. C'est ce qu'on appelle l'apprentissage hebbien, et c'est une idée générale que les gens ont réutilisée dans les premiers modèles de réseaux de neurones artificiels.
Cybernétique et auto-organisation
Dans les années 1940 également, Norbert Wiener a fondé une discipline appelée la cybernétique. Nous appelons cela maintenant la théorie des systèmes. Il existe aujourd'hui de nombreux sous-domaines de la cybernétique, mais nous n'utilisons plus ce mot. C'est l'idée que lorsque vous avez des systèmes complexes en interaction avec une rétroaction, des phénomènes très complexes peuvent émerger, et il a élaboré une sorte de théorie générale à ce sujet. De là sont nées des réflexions sur l'auto-organisation. C'est l'idée que si l'on connecte de nombreux éléments très simples avec une règle simple pour les faire calculer, ils pourraient être capables de s'auto-organiser pour acquérir une propriété émergente. C'est quelque chose que nous observons avec la biologie et le cerveau en particulier. Les composants élémentaires du cerveau sont conceptuellement très simples, mais c'est leur connexion et leur réseau qui font émerger des choses comme l'intelligence. C'était un processus très mystérieux à l'époque.
Le Perceptron et les premières machines
Puis, à la fin des années 50, Frank Rosenblatt a mis au point un système appelé le perceptron. C'est une idée simple qui est à la base de l'apprentissage supervisé : avoir un système capable d'apprendre à classer des motifs représentés sous forme de vecteur de nombres en ajustant des poids. Les poids sont similaires aux synapses d'un neurone. Il a démontré que de tels systèmes, qui apprennent par correction d'erreurs, peuvent apprendre des choses basiques. C'est ce que nous appelons aujourd'hui un classifieur linéaire, un exemple de reconnaissance de formes statistiques. C'est une idée simple : vous montrez une image à un système et vous voyez s'il vous donne la bonne réponse. S'il donne une mauvaise réponse, vous ajustez les paramètres, qui sont les poids d'un neurone, afin que la réponse se rapproche de celle que vous souhaitez. Vous continuez ainsi avec des milliers d'exemples.
Ils n'avaient pas accès à des ordinateurs à l'époque, il a donc construit une machine analogique qui mettait tout cela en œuvre. C'était le perceptron physique. L'une de ces photos montre Rosenblatt tenant une rangée de huit poids. Les poids étaient en fait des potentiomètres munis d'un moteur pour pouvoir tourner. C'était un ordinateur électromécanique.
Nous en avons fait une réplique au semestre dernier.
Adaline et découvertes en neurosciences
Nous en avons fait une réplique, oui. Philip Schmidt en a fait une réplique, mais avec la technologie moderne, c'est beaucoup plus facile. Simultanément, Bernie Widrow à Stanford a proposé un modèle légèrement différent appelé Adaline, également un classifieur linéaire de base. Vers la même époque, les neuroscientifiques au Japon ont découvert des propriétés fondamentales de l'architecture du cortex visuel. Hubel et Wiesel ont reçu le prix Nobel pour avoir découvert que les neurones du cortex visuel observent une petite zone du champ visuel et que de nombreux neurones situés à des endroits différents effectuent la même opération.
L'hiver de l'IA et les critiques de Minsky
En 1969, Minsky et Papert ont publié un livre intitulé Perceptron qui en soulignait les limites. Ils affirmaient que tenter de construire des machines intelligentes à partir de l'idée de base du perceptron était sans espoir à cause de ces limites mathématiques. Cela a tué tout le domaine, et les gens ont arrêté de travailler sur ces sujets à la fin des années 70. Ils ne se sont pas vraiment arrêtés ; ils ont changé le nom de ce qu'ils faisaient. Les chercheurs en IA qui s'intéressaient à la reproduction de l'intelligence ont commencé à travailler sur des choses davantage basées sur la logique et l'informatique classique : algorithmes, recherche et raisonnement, délaissant le type de choses que nous observons chez les animaux.
On peut reproduire les images du perceptron avec environ une demi-page de PyTorch. À l'époque, c'était une entreprise majeure. À droite se trouve Bernie Widrow avec l'Adaline original, qui était un ordinateur analogique où les poids étaient électrochimiques. L'élément de base de ces systèmes était le neurone de McCulloch-Pitts qui effectue une somme pondérée de ses entrées et la compare à un seuil.
Filtres adaptatifs et recherche internationale
La recherche sur les réseaux de neurones s'est éteinte en Occident dans les années 1970. Les gens ont changé le nom de ce qu'ils faisaient pour la reconnaissance de formes statistiques. Bernie Widrow a rebaptisé ses travaux filtres adaptatifs, ce qui a eu un impact énorme sur la technologie. Les filtres adaptatifs sont utilisés partout aujourd'hui pour la communication de données. L'annulation d'écho est un filtre adaptatif qui apprend à supprimer le son. On ne peut pas avoir de haut-parleurs ou de vidéo interactive sans cela.
Au Japon, les recherches se sont poursuivies. Kunihiko Fukushima a inventé le cognitron et le néocognitron. J'ai été influencé par ces articles en 1980. Il s'est inspiré de Hubel et Wiesel et a tenté de faire une simulation informatique du cortex visuel. Il n'avait pas d'algorithmes d'apprentissage appropriés, son système était donc fragile, mais c'était une tentative héroïque.
Physique statistique et machines de Boltzmann
Au début des années 1980, les physiciens ont commencé à s'intéresser aux réseaux de neurones. Ils ne connaissaient pas l'histoire du perceptron, ils n'avaient donc pas d'apriori négatif à travailler dessus. Hopfield a proposé un modèle qui était un type de réseau de neurones récurrent pouvant être utilisé comme mémoire associative. Il a montré qu'il y avait une analogie mathématique avec des systèmes appelés verres de spin. Cela a incité les physiciens à essayer d'utiliser des méthodes de la physique statistique pour expliquer, peut-être, comment le cerveau fonctionne.
Terry Sejnowski a travaillé avec Geoffrey Hinton sur la machine de Boltzmann. C'était le premier article qui permettait d'entraîner un réseau de neurones possédant des unités cachées. Les principales limites des modèles précédents étaient qu'ils étaient des systèmes à une seule couche. Pour avoir une machine puissante, il faut plusieurs couches. Les machines de Boltzmann ont été le premier algorithme d'apprentissage permettant l'entraînement avec des unités qui ne sont ni des entrées ni des sorties.
Rétropropagation et réseaux convolutionnels
Ensuite, l'idée de la rétropropagation est apparue et il est devenu pratique d'entraîner des réseaux de neurones multicouches. Cela a nécessité de passer de l'utilisation de neurones binaires à des neurones continus afin qu'ils soient dérivables. Une grande partie de ce dont nous parlons dans ce cours est liée à la rétropropagation. Ce fut un tournant et la communauté est devenue assez importante. La conférence NeurIPS a débuté vers 1987, ce qui a relancé le domaine.
J'ai proposé l'idée des réseaux convolutionnels, qui s'inspire du néocognitron mais utilise la rétropropagation pour l'entraînement. Cela a permis la reconnaissance de l'écriture manuscrite et la reconnaissance d'images. Léon Bottou et Patrick Gallinari ont proposé que l'on puisse faire de la différenciation automatique en assemblant des modules ; si l'on savait propager les gradients à travers les modules, on pouvait calculer les gradients pour n'importe quel graphe de modules interconnectés. Vers 1992, nous avons commencé à implémenter un logiciel appelé SN qui mettait en œuvre cette idée. Il a fallu beaucoup de temps au reste du monde pour réaliser que c'était une chose très utile. Ce que vous voyez dans PyTorch aujourd'hui dérive de cette idée.
Logiciels historiques et évolution du NLP
Et que signifie SN ?
SN signifie Simulateur Neuronal. C'était le nom français que nous avions donné à notre simulateur de réseau de neurones.
Et l'article est en français ?
Il a été publié en open source vers 2002 sous le nom de Lush. Au milieu des années 90, il y a eu des travaux sur les réseaux récurrents comme le LSTM et des travaux en reconnaissance vocale et de l'écriture manuscrite sur ce qu'on appelle la prédiction de structure. Ensuite, les gens ont perdu tout intérêt pour les réseaux de neurones pendant environ 10 ans, privilégiant des modèles plus simples à couche unique. Yoshua Bengio a proposé le modèle de langage neuronal en 2003, ce qui était pionnier. GPT-3 en est le descendant. La plupart des modèles neuronaux pour le traitement du langage naturel (NLP) aujourd'hui s'inspirent de cela ou du réseau de neurones auto-supervisé de Collobert et Weston, qui consistait à entraîner un système à représenter du texte en lui apprenant à distinguer les bonnes séquences de mots des mauvaises.
La renaissance du Deep Learning
Ils ont remporté le prix des 10 ans à NeurIPS ?
Oui, en effet. Il y a deux ans, je crois. Au milieu des années 2000, Yoshua Bengio, Geoff Hinton et moi avons lancé une conspiration pour susciter à nouveau l'intérêt pour les réseaux de neurones. De là est née l'idée que l'on peut pré-entraîner un réseau de neurones profond couche par couche en utilisant des méthodes d'auto-encodeur de manière non supervisée. Cela a relancé l'intérêt de la communauté jusqu'aux alentours de 2012, lorsqu'il est devenu clair que les réseaux convolutionnels sur GPU pouvaient battre toutes les autres techniques. Beaucoup de gens se sont intéressés au deep learning après la victoire d'AlexNet à la compétition.
Architectures modernes : LSTM et Transformers
Ilya Sutskever a montré qu'on peut utiliser le LSTM multicouche pour la traduction automatique neuronale. Simultanément, chez Facebook AI Research, Weston, Chopra et Bordes ont présenté les réseaux de mémoire qui disaient qu'on peut avoir des modules dans un réseau de neurones qui sont des mémoires associatives. Un n plus tard, Bahdanau, Kyunghyun Cho et Yoshua Bengio ont montré qu'on pouvait remplacer cela par une architecture plus simple basée sur le mécanisme d'attention. En combinant l'idée de réseau de mémoire avec l'attention, on obtient l'architecture transformer qui a pris le dessus sur le traitement du langage naturel. 2016 a apporté ResNet, qui a permis aux réseaux convolutionnels d'être beaucoup plus profonds. Le cours traitera des techniques de base et de leur utilisation pratique. Nous n'allons pas prouver de théorèmes, mais tout cela repose sur une base mathématique.
Dans mes cours, je vais généralement rester conceptuel et vous donner une intuition de la façon dont les choses fonctionnent et des grandes idées. Les mathématiques réelles et la pratique pour faire fonctionner tout cela seront couvertes dans les travaux pratiques et dans votre propre travail personnel. Je vais m'arrêter ici.
Perspectives d'avenir : Apprentissage auto-supervisé
Attendez, il y a des questions pour vous.
Oui, allez-y pour les questions.
Vous avez couvert la partie historique. Qu'en est-il du futur ? Sur quels travaux de recherche travaillez-vous et quelle est, selon vous, une bonne direction ?
Un grand sujet en ce moment est l'apprentissage auto-supervisé. C'est le descendant du pré-entraînement non supervisé par couche de 2006. C'est l'idée de pré-entraîner un réseau de neurones non pas pour accomplir une tâche de manière supervisée, mais pour comprendre les données, puis de l'affiner sur la tâche qui vous intéresse. Cela a révolutionné le traitement du langage naturel ces dernières années et commence à révolutionner la vision par ordinateur. C'est ce sur quoi beaucoup de gens travaillent en ce moment.
Raisonnement et intelligence autonome
Des travaux sont également consacrés à amener les machines à raisonner. Ce que nous pouvons faire avec les réseaux de neurones, c'est peut-être ce que les animaux et les humains peuvent faire en peu de temps sans y réfléchir, comme reconnaître des objets. Mais si nous voulons que les machines effectuent de longues chaînes de raisonnement ou planifient à l'avance, comment modifier notre architecture ? Les réseaux de mémoire étaient une tentative pour permettre aux machines de raisonner. C'est un défi majeur de rendre le raisonnement compatible avec l'apprentissage profond basé sur le gradient. Les méthodes classiques de raisonnement en IA sont basées sur la logique, qui est discrète et incompatible avec l'apprentissage.
Nous ne savons pas comment entraîner un système à représenter des plans d'action de manière hiérarchique. Apprendre sans étiquettes en observant le monde est un défi majeur sur lequel je travaille. C'est la seule chose qui m'intéresse en recherche. Amener les machines à raisonner est également un sujet intéressant. Le troisième sujet est l'intégration de tout cela dans des systèmes intelligents autonomes qui ont un objectif et un modèle du monde leur permettant de prédire les conséquences de leurs actions. Ce serait le système d'intelligence ultime. Nous ne savons pas encore comment assembler ces éléments.
Limites et informatique quantique
Attendez, dernière question. Qu'en est-il des limites et que pensez-vous des ordinateurs quantiques et des états non binaires ?
Les limites actuelles sont claires ; actuellement, les systèmes ne sont pas capables de faire du raisonnement ou de l'apprentissage auto-supervisé, à quelques exceptions près. Un grand défi consiste à inventer des paradigmes d'apprentissage qui permettront aux machines d'acquérir du bon sens. Les systèmes d'IA ont une intelligence étroite. Je suis sceptique quant aux applications de l'informatique quantique à l'apprentissage automatique. C'est un domaine intéressant, mais il n'y aura pas de conséquences pratiques à court terme, du moins au cours de la prochaine décennie.
C'était bien.
Très bien, alors amusez-vous bien.
Merci d'avoir ouvert le cours ce semestre. On se voit mercredi, c'est bien ça ? Même heure, même endroit. Nous avons tous accès au calendrier, donc nous savons où vous trouver.
D'accord, merci. Au revoir.
Salut.
Logistique et communication du cours
Bienvenue à nouveau. Abordons quelques sujets de suivi. L'un des sujets les plus intéressants pour vous sera de comprendre comment ce cours fonctionne. J'ai partagé les règles du cours via l'annonce. Vous devriez déjà y avoir accès. Nous voulons couvrir rapidement la partie notation car c'est ce qui vous intéresse.
Avant d'en parler, comme vous pouvez le voir, ce cours est à distance. Ce sera légèrement différent de la manière dont nous tenons les cours en personne. Chaque interaction se fera via une caméra et un ordinateur. Nous devons toujours être capables de communiquer. Comme vous l'avez remarqué, j'essaie d'arrêter Yann quand nous avons des questions pour lui, sinon il continue et nous pourrions perdre le fil. Chaque fois qu'il y a de bonnes questions à poser à Yann, vous devriez écrire dans le chat afin que je comprenne le rythme du cours. L'interaction est la base pour tirer quelque chose de ces cours. Tous ces cours sont enregistrés, vous pourrez donc les visionner à nouveau.
Venir en cours est l'une des parties les plus importantes car vous tirez plus de profit de cette interaction. J'essaierai d'avoir un contact visuel avec vous de l'autre côté de l'écran et d'être interactif. Cela semble très efficace en utilisant le chat ; nous avons une boucle de rétroaction et réussissons à rester sur la même longueur d'onde. Vous n'êtes pas obligés d'allumer votre caméra car si tout le monde le fait, on ne verra plus ce qui se passe.
Le débit de parole de Yann était un peu rapide. Vous pouvez regarder l'enregistrement vidéo et le ralentir. Il ne voulait pas prendre trop de temps sur le labo. Le travail se fera-t-il avec PyTorch ? Oui, bien sûr. Je vais en parler dès maintenant.
L'important est que nous soyons capables d'apprendre. Pour pouvoir apprendre, vous devez rester éveillés. Si vous vous promenez et mangez des glaces parce que vous êtes chez vous, vous risquez d'être distraits. Oui, il y a des enregistrements, mais ils ne servent que lorsque vous êtes malades. Vous devriez être capables de former un groupe interactif heureux.
Je suis très sarcastique. Je le dis à l'avance pour quiconque ne sait pas ce qu'est le sarcasme. Ce qui est écrit au format texte est la partie officielle. Prenez tout ce que je dis avec des pincettes ; j'aime beaucoup plaisanter et je dirai des choses drôles pour vous faire rire. Ne vous vexez pas ; si vous pensez que je suis un imbécile, faites-le moi savoir. J'essaierai d'être plus prudent.
Si vous ne comprenez pas quelque chose que je dis, demandez-moi simplement. Si vous ne comprenez pas, c'est généralement ma faute parce que je n'arrive pas à communiquer avec vous. Mon accent est peut-être mauvais ou je n'ai pas assez dormi. Quelqu'un finira par s'inviter à l'improviste dans notre cours comme Yann l'a fait aujourd'hui ; cétait un peu prévu et un peu non, mais c'est amusant. La vie est intéressante parce qu'elle est différente chaque jour.
Notation et ressources pédagogiques
Je répéterai jusqu'à ce que vous compreniez. Deuxième point : le fonctionnement de la notation. Je dois être honnête et dire que je me moque de la note que je vous donne. La note est pour vous. Je ne serai pas méchant ; vous aurez la note que vous voulez. Vous devriez être responsables de l'obtention de la note que vous souhaitez. Peu importe comment se déroule le cours, vous obtiendrez ce que vous méritez.
C'est ce que vos camarades ont fait l'année dernière ; ils étaient incroyables. Vous contribuerez si vous voulez rendre ce site Web encore meilleur. Tout est enregistré et j'ai passé de nombreuses heures à mettre cela sur YouTube. Ici, vous avez les enregistrements vidéo de l'année dernière. Une façon d'obtenir des points gratuits est de trouver des fautes de frappe dans ces comptes-rendus. Si vous aidez à améliorer le cours, vous êtes récompensés. Tout est détaillé dans ce document.
Vous pourrez avoir accès aux diapositives avant le cours dès que je les aurai. Aujourd'hui, Yann a débarqué dans le cours, donc je ne savais pas qu'il avait des diapositives. D'habitude, vous aurez les diapositives avant. Toutes les diapositives de l'année dernière sont en ligne sur le site. Je mettrai également la version mise à jour si je sais qu'il y a des diapositives.
Je n'ai jamais participé à une compétition Kaggle, donc vous n'êtes pas tenus de savoir ce que c'est. Nous expliquerons cela dans la deuxième moitié du cours. Aujourd'hui, nous n'enseignons pas ; c'est une journée administrative. Est-ce que j'enseigne seulement en classe ? No, j'enseigne aussi en dehors des cours. Vous pouvez trouver du contenu sur mon Twitter, alfcnz. Vous y verrez du contenu sur l'apprentissage automatique et la communication mathématique. J'essaie de promouvoir mon agenda éducatif en ligne. Si vous cherchez l'algèbre linéaire sur mon Twitter, vous trouverez de belles vidéos. C'est fondamental ; si vous avez besoin de vous rafraîchir la mémoire en algèbre linéaire, regardez ces vidéos. Ce cours est basé sur l'algèbre linéaire. Si vous ne la connaissez pas, alors bonne chance dans ce domaine. Elles ont été réalisées par Gilbert Strang, qui est un éducateur extraordinaire.
Visualisation de la séparation linéaire
Si vous avez vraiment besoin de vous remettre à l'algèbre linéaire, regardez 'Essence of Linear Algebra' de Grant Sanderson. Tout ce que j'explique dans mes cours est basé sur cette perspective. Si vous voulez accélérer votre compréhension, vous devriez regarder ces vidéos en boucle. Blague à part, allez voir ça ; c'est vraiment bien. J'essaie d'être aussi utile que possible. Il nous reste trois minutes. La prochaine fois, nous parlerons de PyTorch. Si vous me trouvez bizarre, ce n'est pas grave. Si vous pensez que je suis un imbécile, faites-le moi savoir en privé. N'envoyez pas de messages privés ; je ne peux pas répondre à tous. Je vais montrer une vidéo pour terminer le cours. Aujourd'hui, j'aurais dû montrer ce que fait un réseau de neurones. Généralement, la chose la plus simple à imaginer est la classification. La classification consiste à répartir les choses dans différents compartiments. Habituellement, lorsque les gens montrent la classification, c'est une ligne droite. S'il s'agit d'une ligne droite, les classes sont dites linéairement séparables. Ce n'est généralement pas le cas.
Les gens montrent des frontières de décision qui tournent. Je n'aime pas cette perspective car elle fait croire que l'on peut faire tourner les frontières de décision de manières bizarres. Au lieu de cela, je veux déformer l'espace de telle sorte que cette ligne reste une ligne droite. Tout ce que nous avons en deep learning, c'est une frontière de décision linéaire. Je vais montrer une animation de la façon dont un réseau de neurones déforme l'espace lorsque les données ne sont pas linéairement séparables, comme une spirale. Le réseau déplace l'espace pour déplier la spirale. Cette vidéo montre comment un réseau de neurones déforme l'espace de telle sorte qu'il devienne linéairement séparable. C'était mes cinq branches d'origine. Elles ne sont pas linéairement séparables car si l'on trace des lignes, on croise les classes. À la place, le réseau déplie la spirale pour que je puisse tracer des lignes. La prochaine fois, j'expliquerai comment cela se fait. Je suis très porté sur la visualisation et l'interprétabilité — comprendre comment ça fonctionne à l'intérieur. Le réseau a déformé l'espace de sorte que tous les points soient répartis d'une manière spécifique qui les rend linéairement séparables. Que sont ces cinq flèches en deux dimensions ? Réfléchissez-y pour la prochaine fois. Nous avons dépassé le temps. Si vous avez des questions fondamentales, écrivez sur Campuswire. Il y a des heures de permanence demain avec Jiachen. La prochaine fois, nous nous pencherons sur PyTorch. Au revoir !