Yann LeCun

Introduction à l'apprentissage profond

10 mai 2016

Intelligence Artificielle
Illustration de Yann LeCun

Introduction et logistique

Yann LeCun

Bonjour à tous. Merci d'être venus si nombreux. On me dit qu'une autre salle est pleine, je suis impressionné par l'intérêt que vous portez à ce sujet.

?

Bienvenue à tous. Merci pour cette belle participation. J'ai entendu dire qu'une autre salle est pleine, et je suis émerveillé par l'intérêt que vous manifestez.

Yann LeCun

J'espère que vous allez prendre plaisir à ça autant que j'en prends à en parler. Je vais vous parler d'apprentissage profond, deep learning. Les diapositives sont en anglais, mais je vais parler en français car le Collège de France traduit tous les cours pour qu'un maximum de personnes puisse les lire. Mes diapos sont un peu compliquées.

?

J'espère que vous l'apprécierez autant que j'apprécie d'en parler. Je vais vous parler de l'apprentissage profond. Les diapositives sont en anglais, mais je parlerai en français car le Collège de France traduit les cours pour que le plus grand nombre puisse les lire. Mes diapositives sont un peu compliquées.

Yann LeCun

Dans ce premier cours, j'ai modifié l'ordre du jour. Il y aura une introduction sur l'apprentissage profond pour donner les raisons et les techniques de base pour construire des réseaux multicouches à partir d'un assemblage de modules. La semaine prochaine, on parlera des réseaux convolutifs plus en détail. Il y aura également un séminaire de Stéphane Mallat sur la théorie justifiant ces architectures.

?

Dans ce premier cours, j'ai changé l'ordre du jour ce matin. Nous aurons une introduction à l'apprentissage profond pour expliquer les raisons et les techniques de base pour construire des réseaux multicouches à partir d'un assemblage de modules. La semaine prochaine, nous parlerons des réseaux convolutifs plus en détail. Stéphane Mallat donnera un séminaire sur la théorie justifiant ces architectures.

Principes de l'apprentissage profond

Yann LeCun

La justification principale de l'apprentissage profond est d'entraîner un système de bout en bout. Au lieu d'utiliser les méthodes conventionnelles avec un extracteur de caractéristiques suivi d'un classifieur, on veut que l'extracteur soit lui-même entraînable pour représenter les données le plus efficacement possible.

?

La raison principale de l'apprentissage profond est d'entraîner un système de bout en bout. Au lieu d'utiliser les méthodes conventionnelles pour construire des systèmes de reconnaissance de formes avec un extracteur de caractéristiques suivi d'un classificateur entraînable, on veut que l'extracteur de caractéristiques soit entraînable afin qu'il y ait le moins de travail d'ingénierie possible.

Régression linéaire et fonctions de coût

Yann LeCun

Ce sera intéressant. Je ne vais pas entrer dans les détails de la théorie, mais juste clarifier les choses. J'ai écrit ici une méthode d'apprentissage simple : la régression linéaire. Supposons un vecteur d'entrée X représentant la forme à classer ; c'est de l'apprentissage supervisé.

?

Ce sera intéressant. Je n'entrerai pas dans les détails de la théorie, mais je vais juste clarifier les choses. Ici, j'ai écrit l'une des méthodes d'apprentissage les plus simples : la régression linéaire. Disons que nous avons un vecteur d'entrée X représentant la forme à classer ; il s'agit d'un apprentissage supervisé.

Yann LeCun

Nous allons calculer une combinaison linéaire des entrées avec un vecteur de poids W. Le produit scalaire de X et W, soit W transposé X, nous donne un score pour une classe. Si c'est au-delà d'un certain seuil, c'est une classe, sinon c'est une autre. C'est la fonction de coût la plus simple à minimiser. Pour un ensemble d'apprentissage composé de paires X et Y, on minimise la différence entre la sortie produite et la sortie désirée. C'est un coût quadratique.

?

Nous calculons une combinaison linéaire des entrées avec un vecteur de poids W. Le produit scalaire de X et W, ou la transposée de W par X, donne un score. S'il est au-delà d'un certain seuil, c'est une classe ; sinon, c'en est une autre. C'est la fonction de coût la plus simple à minimiser. Pour un ensemble d'apprentissage donné de paires X et Y, on minimise la différence entre la sortie produite par le système et la sortie souhaitée. C'est un coût quadratique.

Algorithme du gradient et gradient stochastique

Yann LeCun

On peut calculer le gradient par rapport au vecteur de paramètres et obtenir un terme d'erreur, qui est la différence entre la sortie désirée et la sortie produite à un moment T. Si la sortie est inférieure à celle désirée, on ajoute au vecteur de poids le vecteur d'entrée multiplié par cette erreur. L'algorithme de gradient consiste à déplacer le paramètre dans la direction opposée au gradient.

?

Vous pouvez calculer le gradient par rapport au vecteur de paramètres et obtenir un terme d'erreur. C'est la différence entre la sortie désirée et la sortie produite par le système. Si la sortie est inférieure à la sortie désirée, vous ajoutez au vecteur de poids le vecteur d'entrée multiplié par cette erreur. L'algorithme de gradient prend la valeur du paramètre actuel et se déplace dans la direction opposée au gradient.

Yann LeCun

Si vous utilisez une méthode de gradient stochastique, c'est la chose la plus simple et la plus efficace. On met à jour le vecteur de poids en soustrayant le gradient du coût multiplié par une constante. On fait cela pour chaque exemple.

?

Une méthode de gradient stochastique est la plus simple et la plus efficace. Nous mettons à jour le vecteur de poids en prenant sa valeur actuelle et en soustrayant le gradient du coût multiplié par une constante. Vous faites cela pour chaque exemple.

Yann LeCun

C'est une règle d'apprentissage simple par correction d'erreur. Si l'erreur est trop petite, vous augmentez les poids dans l'entrée correspondante. Si l'entrée est trop grande, vous la réduisez. Vous augmentez les poids pour une entrée négative.

?

C'est une règle d'apprentissage simple par correction d'erreur. Si l'erreur est trop petite, vous augmentez les poids de l'entrée correspondante. Si l'entrée est trop grande, vous la réduisez. Vous augmentez les poids pour une entrée négative.

Yann LeCun

C'est presque magique. Beaucoup de gens en France ont travaillé sur ce problème. Quand vous utilisez cette règle de mise à jour basée on un seul exemple, après de nombreuses itérations, vous finissez par minimiser la moyenne de la fonction de coût sur tous les échantillons d'apprentissage.

?

C'est presque magique. Beaucoup de gens en France ont travaillé sur ce problème. Lorsque vous utilisez cette règle de mise à jour basée sur un seul exemple, vous finissez par minimiser la moyenne de la fonction de coût sur tous les échantillons d'apprentissage.

Yann LeCun

C'est ce qu'on appelle les méthodes de gradient stochastique. Elles sont également utilisées dans de nombreux systèmes qui ne sont pas des systèmes d'apprentissage conventionnels, par exemple dans les anciens modems acoustiques.

?

C'est ce qu'on appelle une méthode de gradient stochastique. Celles-ci sont également utilisées dans de nombreux systèmes, par exemple dans les anciens modems acoustiques.

Yann LeCun

Le bruit que vous entendiez sur un modem acoustique est la séquence d'apprentissage permettant au modem d'adapter ses paramètres internes pour corriger les défauts sur la ligne téléphonique. C'est un filtre adaptatif dont l'algorithme est très similaire à celui-ci.

?

Le bruit que vous entendiez sur un modem acoustique est la séquence d'apprentissage permettant au modem d'adapter ses paramètres internes pour corriger les défauts sur la ligne téléphonique. C'est un filtre adaptatif, et l'algorithme utilisé est très similaire à celui-ci.

Yann LeCun

De nombreuses théories prouvent qu'en utilisant la méthode du gradient stochastique, vous minimisez la moyenne du coût. Ce travail date des années 70 en France avec Benveniste et Francis Bach plus récemment. C'est revenu au goût du jour grâce à l'apprentissage.

?

Certaines théories prouvent que la méthode du gradient stochastique minimise la moyenne du coût. Ce travail remonte aux années 70 en France avec Benveniste, et plus récemment Francis Bach. C'est revenu à la mode grâce à l'apprentissage automatique.

Yann LeCun

C'est un peu décevant pour les spécialistes de l'optimisation car l'optimisation stochastique est l'algorithme le plus simple imaginable. Trois lignes de code battent des algorithmes sophistiqués. Concevoir des algorithmes compliqués pour impressionner vos collègues ne fonctionnera pas en pratique.

?

C'est décevant pour ceux qui s'intéressent à l'optimisation car l'optimisation stochastique est l'algorithme le plus simple que l'on puisse imaginer. Trois lignes de code peuvent surpasser des algorithmes sophistiqués. Concevoir des algorithmes compliqués pour impressionner vos collègues ne fonctionnera pas en pratique.

Perceptron et régression logistique

Yann LeCun

Il existe des formes similaires pour cette règle d'apprentissage, comme celle du perceptron. La règle de mise à jour est identique à la précédente : c'est Y moins W transposé X pondéré par les poids, avec une fonction de seuil F.

?

Il existe des formes similaires pour cette règle d'apprentissage, comme celle utilisée pour le perceptron. La règle de mise à jour est identique à la précédente. C'est Y moins la transposée de W par X pondéré par les poids, avec une fonction de seuil F.

Yann LeCun

F prend la valeur plus un si l'argument est positif et moins un s'il est négatif. L'erreur est binaire ou ternaire. Si Y et F sont tous deux à plus un, l'erreur est nulle. On peut écrire le perceptron et une minimisation quadratique de la même manière en remplaçant F par l'identité.

?

F prend la valeur plus un si l'argument est positif et moins un s'il est négatif. Cette erreur est binaire ou ternaire. Si Y et F valent tous deux plus un, l'erreur est nulle. Nous pouvons écrire le perceptron et une minimisation quadratique de la même manière en remplaçant F par la fonction identité.

Yann LeCun

Voici la régression logistique, une méthode très utilisée. La règle de mise à jour est la même, mais F est une fonction sigmoïde ou tangente hyperbolique évoluant doucement entre moins un et plus un.

?

Voici la régression logistique, une méthode largement utilisée par les statisticiens. La règle de mise à jour est la même, mais au lieu d'une fonction de seuil, F est une fonction sigmoïde ou tangente hyperbolique qui passe doucement de moins un à plus un.

Yann LeCun

Ces trois algorithmes d'apprentissage simples utilisent des gradients stochastiques et ont la même forme. La seule différence est la nature de la fonction F : sigmoïde, seuil ou identité.

?

Ces trois algorithmes d'apprentissage simples utilisent des gradients stochastiques et ont la même forme. La seule différence est la nature de la fonction F : une sigmoïde, une fonction de seuil ou une identité.

Limites des modèles linéaires et séparabilité

Yann LeCun

Les machines linéaires combinant des caractéristiques pour prendre une décision ont leurs limites. La surface de décision produite par un perceptron ou une régression logistique est un hyperplan.

?

Les machines linéaires qui combinent des caractéristiques pour prendre une décision ont leurs limites. La surface de décision produite par un perceptron ou une régression logistique est un hyperplan.

Yann LeCun

Y est égal à plus un si le produit scalaire est supérieur à zéro, et moins un s'il est inférieur. L'équation W transposé X égal zéro définit la frontière entre les catégories dans l'espace de décision.

?

Y est égal à plus un si le produit scalaire est supérieur à zéro et moins un s'il est inférieur à zéro. L'équation de la transposée de W par X égale zéro est l'équation de la surface de décision.

Yann LeCun

Si le vecteur X a N dimensions, cette surface est un hyperplan séparant l'espace en deux demi-espaces. En dimension deux, il s'agit d'une ligne.

?

Si le vecteur X a N dimensions, cette surface est un hyperplan. En dimension deux, nous séparons les points par une ligne.

Yann LeCun

La surface de décision passe par l'origine, ce qui n'est pas optimal. On augmente donc la dimension du vecteur X d'une unité constante égale à un. Le poids correspondant devient un seuil permettant de déplacer l'hyperplan.

?

La surface de décision passe par l'origine, ce qui n'est pas idéal. Nous augmentons la dimension du vecteur X de un, une composante étant une constante. Le poids correspondant agit comme un seuil pour déplacer l'hyperplan.

Yann LeCun

Nous préférons inclure le seuil dans le paramètre W. Cette dimension supplémentaire, le biais, permet de déplacer les surfaces de séparation selon la fonction W.

?

Nous préférons ne pas montrer le seuil séparément. Avec le paramètre W augmenté d'une dimension comme biais, nous obtenons des surfaces de séparation qui se déplacent en fonction de la fonction W.

Yann LeCun

Certains ensembles de points ne sont pas linéairement séparables. Vous ne pouvez pas les séparer avec un hyperplan ou une ligne.

?

Certains ensembles de points ne peuvent pas être séparés par un hyperplan. Dans ces exemples, les catégories ne peuvent pas être séparées par une ligne.

Yann LeCun

Dans les années 60, Tom Cover a établi un théorème : la probabilité qu'un échantillon de P points en dimension N soit linéairement séparable est proche de un quand P est inférieur à N, et proche de zéro s'il est supérieur.

?

Dans les années 60, Tom Cover a établi que la probabilité que P points en N dimensions soient linéairement séparables est proche de un quand P est plus petit que N, et proche de zéro s'il est plus grand.

Yann LeCun

Si vous avez plus de N points pour un vecteur de N dimensions, les chances de séparabilité linéaire sont extrêmement faibles. Les données naturelles sont souvent plus séparables qu'un échantillon aléatoire, mais de nombreux problèmes ne le sont pas.

?

Si vous avez plus de N points dans N dimensions, la probabilité qu'ils soient linéairement séparables est extrêmement faible. Les données naturelles sont souvent plus séparables qu'un échantillon aléatoire, mais de nombreux problèmes ne sont pas du tout linéairement séparables.

Yann LeCun

On ne peut pas se contenter d'un classifieur linéaire pour la reconnaissance vocale. Comment rendre un problème linéairement séparable ?

?

On ne peut pas se contenter d'un classificateur linéaire pour la reconnaissance vocale. Comment pouvons-nous rendre un problème linéairement séparable ?

Extraction de caractéristiques et dimensionnalité

Yann LeCun

Depuis des années, on travaille sur l'extraction de caractéristiques. L'idée est qu'en extrayant les caractéristiques appropriées, le problème devient plus facile à résoudre pour un classifieur.

?

On travaille depuis des années sur l'extraction de caractéristiques. L'idée est qu'en extrayant les caractéristiques appropriées, le problème devient plus facile à résoudre pour un classificateur.

Yann LeCun

Une astuce consiste à augmenter les dimensions. Selon le théorème de Cover, une fonction a plus de chances d'être linéairement séparable si elle est représentée par des vecteurs de grande dimension.

?

Vous pouvez augmenter les dimensions. Selon le théorème de Cover, une fonction a plus de chances d'être linéairement séparable si elle est représentée par des vecteurs de grande dimension.

Yann LeCun

Pour une image de trois pixels, on cherche une transformation non linéaire pour augmenter la dimension de l'espace. Si elle est linéaire, elle ne fonctionnera pas.

?

Nous trouvons une transformation non linéaire de l'espace pour augmenter sa dimension. Si la transformation est linéaire, elle ne fonctionnera pas.

Yann LeCun

Une transformation linéaire projetterait les points dans un espace de haute dimension, mais ils resteraient alignés. Cette transformation non linéaire est le principe de l'extracteur de caractéristiques.

?

Une transformation linéaire projetterait les points dans un espace de haute dimension, mais ils seraient toujours alignés. Cette transformation non linéaire est l'idée derrière un extracteur de caractéristiques.

Yann LeCun

On conçoit cette boîte pour augmenter la dimension de la représentation, puis on connecte un classifieur linéaire avec une fonction de coût comme le perceptron ou la fonction hinge.

?

Nous concevons une boîte pour augmenter la dimension de la représentation, puis nous connectons un classificateur linéaire avec une fonction de coût comme le perceptron ou la fonction de coût charnière (hinge).

Yann LeCun

C'est un moyen simple d'augmenter les dimensions de manière non linéaire. On peut prendre les variables d'origine, leur carré et leur produit.

?

C'est un moyen simple d'augmenter les dimensions de manière non linéaire. On prend les variables d'origine, leurs carrés et leurs produits.

Yann LeCun

En utilisant une combinaison linéaire de ces variables, la surface de décision devient une section conique ou quadratique (ellipse, parabole ou hyperbole). C'est plus flexible, mais on ne peut pas augmenter le degré indéfiniment.

?

En prenant une combinaison linéaire de ces variables, la surface de décision devient une section conique ou quadratique. C'est plus flexible, mais on ne peut pas trop augmenter le degré.

Yann LeCun

Cela ne fonctionne pas en grande dimension. Pour la reconnaissance de chiffres manuscrits (16x16 pixels), on a 256 variables. Le degré deux donne 32 000 variables, le degré trois 2,8 millions, et le degré quatre 250 millions.

?

Cela ne fonctionne pas en grandes dimensions. Pour la reconnaissance de chiffres manuscrits avec des images de 16x16 pixels, vous avez 256 variables. Le degré deux donne 32 000 variables, le degré trois 2,8 millions et le degré quatre 250 millions.

Yann LeCun

Ce n'est pas pratique pour les images. Au lieu de calculer un polynôme, on peut représenter l'espace comme une collection de régions où les fonctions de base s'activent lorsque le point d'entrée est dans une zone spécifique.

?

Au lieu de calculer un polynôme, nous pouvons représenter l'espace comme une collection de régions où les fonctions sont activées lorsque le point d'entrée se trouve dans une région spécifique.

Yann LeCun

Si l'entrée est une seule variable, on utilise de petites fenêtres juxtaposées. Lorsqu'une valeur X est atteinte, l'une des sorties devient élevée. Cependant, nous sommes victimes de la malédiction de la dimensionnalité.

?

Si l'entrée est une seule variable, vous pouvez utiliser de petites fenêtres de sorte que lorsque X atteint une valeur spécifique, une sortie soit élevée. Cependant, nous sommes victimes de la malédiction de la dimensionnalité.

Méthodes à noyaux et SVM

Yann LeCun

Si la variable a plusieurs dimensions, couvrir l'espace avec ces fonctions coûterait trop cher. Cela ne fonctionne pas au-delà de quelques dimensions, sauf avec une astuce.

?

Si notre variable a plusieurs dimensions, couvrir l'espace avec ces fonctions devient très coûteux. Cela ne fonctionne pas avec plus de quelques dimensions sans une astuce intelligente.

Yann LeCun

On ne place ces fonctions de base qu'aux endroits où se trouvent les données d'apprentissage. La méthode la plus simple consiste à placer une bosse autour de chaque point d'apprentissage.

?

Vous ne placez ces fonctions qu'aux endroits où vous avez des points d'apprentissage. La méthode la plus simple consiste à placer une de ces bosses autour de chaque point d'apprentissage.

Yann LeCun

Avec P échantillons d'apprentissage, on obtient un vecteur de caractéristiques à P dimensions. Lorsqu'on présente un exemple, une fonction étroite s'active. C'est ce qu'on appelle les méthodes à base de noyaux.

?

Avec P échantillons d'apprentissage, vous obtenez un vecteur de caractéristiques à P dimensions. Lorsque vous présentez un exemple d'apprentissage, une fonction est activée. C'est ce qu'on appelle la méthode à base de noyaux.

Yann LeCun

L'idée est d'utiliser une fonction noyau K. Si X et XK sont proches, la fonction prend une valeur élevée ; sinon, elle est faible.

?

L'idée est d'utiliser une fonction bosse, ou noyau K. Si X et XK sont proches, elle prend une valeur importante ; sinon, elle est petite.

Yann LeCun

La fonction discriminante est une combinaison linéaire de ces noyaux. Cela nous donne un paramètre ajustable par ensemble d'apprentissage. En rendant ces noyaux étroits, on peut apprendre l'ensemble sans erreur, mais l'objectif reste la performance en test.

?

La fonction discriminante est une combinaison linéaire de ces bosses. Cela nous donne un paramètre ajustable par ensemble d'apprentissage. En rendant ces bosses étroites, nous pouvons apprendre l'ensemble sans erreur, mais nous sommes intéressés par les performances lors des tests.

Yann LeCun

Les machines à vecteurs de support (SVM) utilisent une architecture à deux niveaux. Le premier compare le vecteur d'entrée avec les échantillons d'apprentissage pour calculer un score de ressemblance.

?

Les machines à vecteurs de support utilisent une architecture à deux niveaux. Le premier niveau compare le vecteur d'entrée avec des échantillons d'apprentissage pour calculer un score de ressemblance.

Yann LeCun

Chaque boîte donne un score calculé par la fonction K, suivi d'une combinaison linéaire. C'est un extracteur de caractéristiques simple. Le problème est qu'il faut inventer une fonction K pour chaque nouveau problème.

?

Chaque boîte donne un score de ressemblance à l'aide de la fonction K, suivi d'une combinaison linéaire. La difficulté est qu'il faut inventer une fonction K pour chaque nouveau problème.

Yann LeCun

Utiliser la distance entre les pixels ne fonctionne pas bien. Bien que la théorie des méthodes à noyaux soit belle, cela ne garantit pas leur efficacité.

?

Utiliser la distance entre les pixels ne fonctionne pas bien. Même si la théorie est belle, cela ne signifie pas que la méthode fonctionne bien.

Yann LeCun

Les machines à noyaux sont sur-paramétrées : le vecteur de caractéristiques a autant de dimensions que d'échantillons, offrant une grande flexibilité.

?

Les machines à base de noyaux sont sur-paramétrées : le vecteur de caractéristiques a autant de dimensions que d'échantillons, ce qui donne beaucoup de flexibilité.

Yann LeCun

On rend le modèle flexible dans une dimension élevée pour apprendre l'ensemble d'apprentissage, puis on applique une régularisation sur les poids pour garantir la performance sur d'autres ensembles.

?

L'idée est de rendre le modèle suffisamment flexible dans une dimension élevée pour apprendre l'ensemble d'apprentissage, puis de régulariser les poids pour assurer la performance sur différents ensembles.

Yann LeCun

La régularisation typique d'un SVM utilise une fonction de coût pour que peu de poids soient non nuls, ce qui produit une combinaison linéaire éparse.

?

La régularisation typique d'un SVM utilise une fonction de coût de sorte que seuls quelques poids soient non nuls, ce qui donne une combinaison linéaire éparse (sparse).

Yann LeCun

Cela garantit une meilleure généralisation. Selon les théorèmes de Vapnik, l'erreur sur de nouveaux exemples est réduite si le nombre de termes non nuls est faible. C'est pourquoi on parle de machine à vecteurs de support.

?

Cela donne de meilleures garanties sur la généralisation. Selon les théorèmes de Vapnik, l'erreur sur les nouveaux exemples est plus faible si le nombre de termes non nuls est petit. C'est ce qu'on appelle une machine à vecteurs de support.

Yann LeCun

C'est de l'apprentissage superficiel. J'établis ces bases pour montrer la relation entre les méthodes à noyaux et les réseaux de neurones.

?

Il s'agit d'un apprentissage superficiel. J'établis ces fondements pour montrer la relation entre les méthodes à base de noyaux et les réseaux de neurones.

Architecture des réseaux de neurones

Yann LeCun

L'architecture du réseau de neurones le plus simple est similaire. Sur la première couche, on calcule le produit scalaire du vecteur d'entrée avec une série de poids, puis on passe le résultat dans une fonction sigmoïde.

?

L'architecture la plus simple des réseaux de neurones est similaire. Dans la première couche, vous calculez le produit scalaire du vecteur d'entrée avec des vecteurs de poids et vous passez le résultat par une fonction sigmoïde.

Yann LeCun

Chaque boîte prend une décision élémentaire avec des poids différents, puis on les combine linéairement. Contrairement aux SVM, on ajuste tous les poids du système via la descente de gradient.

?

Chaque boîte prend une décision élémentaire avec des poids différents, puis les combine linéairement. Contrairement aux SVM, vous ajustez tous les poids du système via une descente de gradient.

Évolution des systèmes de reconnaissance

Yann LeCun

Avant l'apprentissage profond, les systèmes de reconnaissance utilisaient un pipeline standard.

?

Jusqu'à l'émergence de l'apprentissage profond, les systèmes de reconnaissance reposaient sur le même pipeline.

Yann LeCun

Il s'agissait d'un prétraitement fixe extrayant des motifs locaux (MFCC pour le son, SIFT ou HOG pour les images). SIFT signifie shift invariant feature transform et HOG histogram of oriented gradients.

?

Il s'agissait d'un prétraitement fixe extrayant des motifs locaux (MFCC pour le son, SIFT ou HOG pour les images). SIFT signifie "shift invariant feature transform" et HOG est "histogram of oriented gradients".

Yann LeCun

Ces méthodes fixes ont été développées sur plusieurs décennies. Avant l'apprentissage profond, on utilisait un niveau intermédiaire pour augmenter la dimension des représentations.

?

Ces méthodes fixes ont été développées sur plusieurs décennies. Avant l'apprentissage profond, un niveau intermédiaire était utilisé pour augmenter la dimension des représentations.

Yann LeCun

Pour la parole, on utilise un vecteur de 30 ou 40 dimensions toutes les 10 millisecondes. Pour les images, SIFT ou HOG extrait un vecteur de dimension 128 pour chaque point.

?

Pour la parole, cela correspond à un vecteur d'environ 30 ou 40 dimensions toutes les 10 millisecondes. Pour les images, SIFT ou HOG extrait un vecteur de caractéristiques de dimension 128 pour chaque point.

Yann LeCun

Ces dimensions ne suffisent pas pour une bonne classification. La deuxième étape est une transformation non linéaire pour rendre les vecteurs épars (sparse), avec beaucoup de zéros et peu de valeurs significatives.

?

Ces dimensions ne suffisent pas pour une bonne classification. La deuxième étape est une transformation non linéaire pour rendre les vecteurs épars, avec de nombreux zéros et un petit nombre de valeurs significatives.

Yann LeCun

On peut utiliser le clustering, K-means ou le codage épars. Les architectures profondes sont similaires, mais leurs paramètres ne sont plus définis à la main par des ingénieurs.

?

Vous pouvez le faire par clustering, K-means ou codage épars. Les architectures profondes sont similaires, mais leurs paramètres ne sont plus produits à la main par des ingénieurs.

Compositionnalité et hiérarchie

Yann LeCun

L'apprentissage profond consiste à empiler des modules entraînables. Ces techniques fonctionnent car les données naturelles sont compositionnelles.

?

L'apprentissage profond consiste à empiler des modules entraînables. Ces techniques fonctionnent parce que les données naturelles sont compositionnelles.

Yann LeCun

Une scène est une collection de motifs locaux (bords orientés) qui forment des parties d'objets (œil, bouche). En les assemblant, on identifie des objets plus complexes (main, doigt).

?

Une scène est une collection de motifs locaux, tels que des bords orientés, qui forment des parties d'objets comme un œil ou une bouche. En assemblant ces motifs, vous pouvez identifier des objets plus compliqués comme une main ou un doigt.

Yann LeCun

Plus on monte en hiérarchie, plus les détecteurs deviennent abstraits et couvrent des zones larges de l'image. Le monde étant composé de parties assemblées hiérarchiquement, ces systèmes ont de bonnes chances de fonctionner.

?

À mesure que vous montez, les détecteurs identifient des combinaisons de plus en plus abstraites et grandes dans l'image. Puisque le monde est composé de parties assemblées hiérarchiquement, ces systèmes ont de bonnes chances de fonctionner.

Yann LeCun

Cette compositionnalité existe aussi pour le texte et la parole. Comme le disait Einstein, le monde est compréhensible car il est compositionnel.

?

Cette compositionnalité existe également pour le texte et la parole. Comme Einstein l'a plaisanté, le monde est compositionnel, sinon Dieu existe.

Yann LeCun

Si plusieurs couches sont nécessaires, chaque boîte doit apprendre des fonctions utiles aux autres. L'algorithme d'apprentissage veille à cette coordination.

?

Si plusieurs couches sont nécessaires, l'algorithme d'apprentissage doit s'assurer que chaque boîte apprend des choses utiles aux autres.

Yann LeCun

Les couches inférieures produisent des détecteurs de motifs utiles à la couche suivante jusqu'à atteindre les catégories. Il faut apprendre à représenter le monde à plusieurs niveaux avant de classer.

?

Les boîtes du bas produisent des caractéristiques utiles pour la couche suivante jusqu'à ce que nous arrivions aux catégories. Vous devez apprendre à représenter le monde à plusieurs niveaux avant de classer.

Inspiration biologique et neurosciences

Yann LeCun

L'apprentissage profond permet d'apprendre des représentations hiérarchiques des données. Cela rejoint des questions en neurosciences et en intelligence artificielle : comment le cerveau apprend-il à représenter le monde en l'observant ?

?

L'apprentissage profond nous permet d'apprendre des représentations hiérarchiques de données. Cela concerne des questions en neurosciences et en intelligence artificielle : comment le cerveau apprend-il à représenter le monde en l'observant ?

Yann LeCun

L'hypothèse de l'apprentissage profond est qu'une règle simple appliquée à tous les modules suffit. Longtemps, on n'a pas cru aux réseaux de neurones à cause de cette idée jugée présomptueuse.

?

L'hypothèse derrière l'apprentissage profond est qu'une règle d'apprentissage simple appliquée à tous les modules suffit. Pendant des années, les gens ne croyaient pas aux réseaux de neurones parce que cette idée semblait présomptueuse.

Yann LeCun

Les systèmes visuels et auditifs montrent que le traitement cérébral est hiérarchique. Simon Thorpe a montré que le traitement dans le cortex visuel est extrêmement rapide.

?

Les systèmes visuels et auditifs montrent que le traitement cérébral est hiérarchique. Simon Thorpe a montré que le traitement dans le cortex visuel est extrêmement rapide.

Yann LeCun

Bien que le cortex visuel occupe un quart du cerveau, la reconnaissance d'objets est un processus hiérarchique rapide. Selon Thorpe, pour les objets quotidiens, ce processus est essentiellement feed-forward, sans boucle ni inférences complexes.

?

Le cortex visuel représente une grande partie du cerveau et la reconnaissance d'objets est un processus hiérarchique rapide. Selon Thorpe, pour les objets du quotidien, ce processus était essentiellement à propagation avant (feed-forward), sans rétroaction ni inférences compliquées.

Yann LeCun

Il estime le temps qu'il faut pour que le signal aille de la rétine au corps genouillé latéral puis V1, V2, V3, V4.

Yann LeCun

Cela ne prend pas longtemps pour un grand nombre de synapses ici. Il faut environ 100 millisecondes pour reconnaître des objets simples.

Yann LeCun

Ce qui signifie qu'il n'y a pas de temps pour la rétroaction. Pas de temps pour beaucoup de couches, peut-être 10 couches, pas plus.

Yann LeCun

Nous pouvons réaliser une vision relativement compliquée avec beaucoup de propagation avant, mais nous construisons des réseaux de neurones qui sont entièrement à propagation avant et sans boucles.

Types d'apprentissage et modèles

Yann LeCun

Dans la littérature sur l'apprentissage profond, il existe différents types d'apprentissage profond. La plupart sont de type propagation avant (feed-forward).

Yann LeCun

Les réseaux récurrents sont également utilisés, mais pour les entraîner, il faut les déplier pour les transformer en un réseau à propagation avant.

Yann LeCun

Dans les modèles génératifs, le modèle essaie de trouver une sortie qui peut expliquer l'entrée.

Yann LeCun

C'est ce qu'on appelle des modèles génératifs, un peu comme des modèles inverses, extrêmement lents.

Yann LeCun

Utiliser une variante bayésienne pour calculer la probabilité d'une entrée étant donné la sortie et trouver la sortie qui peut le mieux reconstruire l'entrée.

Yann LeCun

Il y a un ancien modèle et un plus récent utilisant des connexions bidirectionnelles, comme les machines de Boltzmann profondes ou les auto-encodeurs empilés.

Yann LeCun

Nous nous concentrerons principalement sur les réseaux à propagation avant et les réseaux récurrents.

Yann LeCun

Il existe des techniques d'apprentissage non supervisé où le système doit découvrir la structure cachée de la nature sans étiquettes.

Yann LeCun

Le problème n'est pas bien défini, et un gros problème avec l'apprentissage non supervisé est que nous ne pouvons pas vérifier si cela fonctionne bien. J'en parlerai dans les deux derniers cours.

Yann LeCun

Un mélange d'apprentissage supervisé et non supervisé où l'on effectue un pré-entraînement de manière non supervisée, puis on l'affine de manière entièrement supervisée.

Yann LeCun

Ces méthodes étaient populaires entre 2005 et 2011 parce que les bases de données d'entraînement étaient relativement petites.

Yann LeCun

Le pré-entraînement non supervisé augmentait les performances, mais cela a disparu lorsque nous avons commencé à avoir de très grandes bases de données.

Yann LeCun

Il y a de nombreux problèmes que nous ne pouvons imaginer résoudre autrement qu'en utilisant l'apprentissage non supervisé.

Théorie et efficacité des réseaux profonds

Yann LeCun

Les théoriciens étaient réticents à accepter l'apprentissage profond lorsqu'il a émergé.

Yann LeCun

Une machine à noyaux peut approximer presque n'importe quelle fonction en choisissant le bon noyau.

Yann LeCun

Un réseau de neurones peut affiner n'importe quelle fonction avec seulement deux couches. Théoriquement, pourquoi en avons-nous besoin de plus ?

Yann LeCun

Ces théorèmes sur l'approximation avec deux couches datent de la fin des années 80.

Yann LeCun

D'une certaine manière, ces machines sont universelles. Pourquoi s'embêter à imaginer des choses plus compliquées ?

Yann LeCun

Ces machines peuvent approximer n'importe quelle fonction aussi près que nous le souhaitons, mais pas nécessairement de manière efficace.

Yann LeCun

Le nombre de paramètres requis pour approximer une fonction particulière peut croître très lentement.

Yann LeCun

La fonction K est censée comparer deux vecteurs d'entrée. Imaginez que vous vouliez faire de la reconnaissance d'images directement sur les pixels ; c'est une mauvaise idée.

Yann LeCun

La fonction K mesure la ressemblance entre deux images en comparant les pixels.

Yann LeCun

Lorsque vous prenez une photo de cette chaise et que vous la comparez à une image de la même chaise un peu tournée, les images seront très différentes en termes de pixels.

Yann LeCun

Si vous ne bougez pas la caméra et que vous déplacez la chaise, la chaise ne sera pas au même endroit, ce qui donne une grande distance bien que ce soit le même objet.

Yann LeCun

Si vous voulez un système qui reconnaisse ce type de chaise dans n'importe quelle position, il faudra de nombreux exemples auxquels se comparer.

Yann LeCun

Cela commencera à faire grimper en flèche le nombre de paramètres. Vous auriez également besoin d'exemples de toutes les chaises.

Yann LeCun

Il n'y a aucun espoir qu'une méthode par comparaison de prototypes puisse fonctionner au niveau d'un pixel.

Yann LeCun

Pour pouvoir convaincre la communauté scientifique, nous devons trouver un exemple qui fonctionne.

Yann LeCun

Il n'y a pas de preuve que cela ne fonctionne pas ; cela prouve simplement que vous n'avez pas réussi.

Yann LeCun

Il y a des résultats récents dans la théorie des circuits, provenant principalement du laboratoire de Bengio, sur ce qui peut être fait via des systèmes en couches.

Yann LeCun

Il faut toujours faire un compromis entre l'espace mémoire occupé et le temps nécessaire au calcul.

Yann LeCun

Imaginez que vous vouliez construire un circuit calculant la parité de N bits.

Yann LeCun

Nous voulons une fonction qui ne nous donne qu'un seul bit : un classifieur si le nombre de bits activés en entrée est pair.

Yann LeCun

On peut calculer la parité avec un système à deux couches, comme dans les SVM.

Yann LeCun

Mais cela nécessite un nombre exponentiel d'unités intermédiaires pour ce calcul.

Yann LeCun

Alors que si vous avez log N couches en base 2, la complexité du circuit est linéaire.

Yann LeCun

Vous calculez le OU exclusif pour toutes les paires de bits, puis vous combinez les sorties.

Yann LeCun

Ce qui nous donne un arbre de OU exclusifs. La complexité est linéaire par rapport au nombre de bits d'entrée.

Yann LeCun

Autre exemple : calculer la somme de deux séquences binaires.

Yann LeCun

Vous calculez le bit le plus significatif de la somme. Vous pouvez le faire en deux couches, mais cela nécessiterait un très grand circuit.

Yann LeCun

C'est beaucoup plus facile de le faire en autant de couches que de bits en propageant la retenue.

Yann LeCun

Ces exemples montrent que l'on peut passer d'un circuit de complexité exponentielle à un circuit de complexité linéaire en ajoutant des couches.

Yann LeCun

Il est possible d'obtenir des résultats similaires pour les unités de seuil utilisées dans les réseaux de neurones.

Non-convexité et éducation

Yann LeCun

Les réseaux à base de noyaux ne sont pas profonds. Fondamentalement, les méthodes à base de noyaux comportent deux couches.

Yann LeCun

L'apprentissage profond est un cauchemar pour les théoriciens car les fonctions de coût à optimiser sont non-convexes.

Yann LeCun

Il est très difficile de donner une preuve de convergence ou de bornes de généralisation.

Yann LeCun

C'est ce qui rebute les théoriciens qui estiment que, comme ce n'est pas convexe, ils ne peuvent rien dire.

Yann LeCun

Ce n'est pas parce que vous n'avez pas fait la théorie que vous ne devriez pas travailler dessus, surtout si cela fonctionne bien.

Yann LeCun

Tout apprentissage intéressant est non-convexe. Si la fonction est convexe, nous pouvons prouver que les algorithmes convergeront.

Yann LeCun

Si l'apprentissage humain était convexe, l'ordre dans lequel nous apprenons les choses n'aurait pas d'importance. Nous atteindrions toujours le même minimum, quel que soit l'ordre.

Yann LeCun

De nombreuses théories sur le développement cognitif montrent que nous développons des concepts simples avant d'autres plus compliqués.

Yann LeCun

L'éducation consiste à mettre les étudiants dans une situation où leur fonction de coût les amène dans une région intéressante.

Yann LeCun

Nous complexifions ensuite la tâche, en les menant à un niveau où ils peuvent résoudre des problèmes beaucoup plus compliqués.

Yann LeCun

L'existence de l'éducation est un symptôme du fait que l'apprentissage n'est pas convexe.

Apprentissage de représentations et variétés

Yann LeCun

Comment construire des systèmes d'apprentissage profond pour que les caractéristiques qu'ils extraient soient bonnes ?

Yann LeCun

Nous voulons que la machine apprenne à identifier les variables explicatives indépendantes du monde.

Yann LeCun

Par exemple, vous pouvez représenter la position et l'orientation d'un objet par six paramètres.

Yann LeCun

À partir d'un grand ensemble de données, nous voulons que le système trouve les paramètres explicatifs afin de pouvoir ensuite produire une image correspondante.

Yann LeCun

C'est ce qui se fait dans le traitement d'images par ordinateur.

Yann LeCun

À partir des données, nous voulons découvrir les caractéristiques explicatives, tout comme un physicien développe une théorie.

Yann LeCun

Nous recherchons des explications simples avec un petit nombre de paramètres qui permettront de mieux prévoir.

Yann LeCun

Le travail qu'effectue un algorithme d'apprentissage est le même que celui d'une personne qui développe une théorie.

Yann LeCun

Si vous preniez une photo de moi et que je faisais une grimace, les images représenteraient des points dans un espace à plusieurs millions de dimensions.

Yann LeCun

Un appareil photo de 15 millions de pixels vous donne 45 millions de variables.

Yann LeCun

Toutes les images de mon visage formeraient une surface dans cet espace. Quelle est la dimension de cette surface ?

Yann LeCun

Les degrés de liberté du visage sont limités par le nombre de muscles.

Yann LeCun

Le degré de liberté du visage est d'environ 50, pas plus.

Yann LeCun

La surface formée par toutes les images d'un visage sera une surface d'environ 50 dimensions.

Yann LeCun

Il serait intéressant d'avoir un système d'apprentissage qui nous dise si nous sommes sur cette surface pour la reconnaissance faciale.

Yann LeCun

Il devrait également savoir où vous vous trouvez sur cette surface afin de pouvoir connaître l'expression ou la position de la tête.

Yann LeCun

Le système découvrirait automatiquement le paramétrage de la surface afin que vous puissiez générer une image correspondante.

Yann LeCun

Nous commençons à explorer cela avec l'apprentissage non supervisé.

Transformation et démêlage de l'espace

Yann LeCun

Une technique d'extraction de caractéristiques serait une fonction non linéaire étendant la dimension.

Yann LeCun

Le rôle de cette fonction est de démêler les morceaux d'espace qui sont sémantiquement différents.

Yann LeCun

Cette extension de dimension rend les points plus faciles à séparer. Ensuite, nous agrégeons, en réduisant de nouveau la dimension.

Yann LeCun

Imaginez que vous ayez des images représentées par deux dimensions.

Yann LeCun

Ce sont des exemples de 3 et de 8. Ces deux-là sont très similaires, leurs vecteurs sont très proches.

Yann LeCun

Ce 3 et ces 3 n'ont aucun pixel en commun, ils sont donc loin les uns des autres. Nous ne pouvons pas les séparer par une ligne.

Yann LeCun

On peut ajouter une dimension, passer de deux à trois, pour pouvoir déplacer l'hyperplan.

Yann LeCun

On peut à nouveau projeter cette transformation sur deux dimensions, et maintenant les choses sont séparables.

Yann LeCun

Ici nous avons six unités et chaque unité détecte si un vecteur d'entrée est proche de son prototype.

Yann LeCun

Ce composant de vote s'activera si un point d'entrée est proche de ces prototypes.

Yann LeCun

Nous transformons un vecteur à deux dimensions en un vecteur à six dimensions. C'est la quantification vectorielle.

Yann LeCun

Ainsi le 3 et le 8 sont séparés, il nous faut assembler les pièces.

Yann LeCun

C'est l'architecture utilisée dans la reconnaissance d'images et de la parole conventionnelle.

Rétropropagation du gradient

Yann LeCun

Les réseaux profonds utilisent une transformation linéaire, une non-linéarité, puis une agrégation.

Yann LeCun

C'est un module de base pour un système profond et vous l'empilez plusieurs fois.

Yann LeCun

Comment s'entraîne-t-on ? Avec l'algorithme de rétropropagation.

Yann LeCun

Combien de personnes l'ont utilisé ?

Yann LeCun

Vous entraînez un système profond par descente de gradient. La fonction de coût mesurera l'erreur entre la sortie et la cible Y.

Yann LeCun

La fonction de chaque module prend l'entrée et est paramétrée par W.

Yann LeCun

Comment calculer les gradients ? Nous utilisons les règles de dérivation en chaîne.

Yann LeCun

Nous voulons calculer le gradient de la fonction de coût par rapport au paramètre de cette boîte et de ces sorties.

Yann LeCun

La raison pour laquelle nous voulons calculer le gradient par rapport aux entrées est que nous voulons rétropropager le gradient. Les paramètres correspondent à un point dans l'espace.

Yann LeCun

L'algorithme de gradient consiste à trouver la direction de la pente la plus forte et à faire un pas dans cette direction.

Yann LeCun

Le vecteur gradient est formé par les dérivées partielles de la fonction de coût par rapport à chaque paramètre.

Yann LeCun

Si vous vous déplacez un peu dans une direction et que vous regardez de combien l'altitude descend, cela vous donne la pente.

Yann LeCun

L'optimisation consiste à calculer le gradient et à faire un pas dans la direction opposée.

Yann LeCun

Puisque nous utilisons une méthode de gradient stochastique, l'estimation est bruitée car elle concerne un exemple spécifique.

Yann LeCun

Nous le faisons sur la base d'un seul exemple et passons au suivant.

Yann LeCun

C'est un vecteur gradient de la fonction de coût par rapport aux entrées d'un module.

Yann LeCun

Nous regardons chaque entrée et la variation de la fonction de coût lorsque nous modifions légèrement chaque entrée.

Yann LeCun

La dérivée par rapport à l'entrée est égale à la dérivée par rapport à la sortie multipliée par la matrice jacobienne.

Yann LeCun

Cela recueille la sensibilité de chaque sortie de module par rapport à chaque entrée.

Yann LeCun

Ce qui nous donne une équation de récurrence.

Yann LeCun

Je peux faire cela jusqu'à l'entrée. Le gradient par rapport au paramètre W utilise une autre matrice jacobienne.

Yann LeCun

Pour chaque module, pour calculer le gradient par rapport à l'entrée à partir du gradient pour la sortie, je le multiplie par la matrice jacobienne.

Implémentation avec Torch

Yann LeCun

On peut construire un logiciel d'apprentissage profond en ayant une liste d'objets, chacun représentant un module.

Yann LeCun

La machine entraînable est un graphe de ces modules assemblés, calculant la sortie et les gradients.

Yann LeCun

Prenons un vecteur d'entrée et un module linéaire qui multiplie par une matrice et ajoute un vecteur de biais.

Yann LeCun

Nous mettons une couche de non-linéarité qui transforme chaque composant.

Yann LeCun

Une fonction ReLU est une demi-rectification : la sortie est zéro si l'entrée est négative, et l'identité si elle est positive.

Yann LeCun

Ce réseau est branché sur une fonction de coût, comme la distance euclidienne au carré.

Yann LeCun

Voici un exemple de code pour créer ces outils à l'aide de Torch.

Yann LeCun

Torch est utilisé par Facebook, DeepMind, Twitter et d'autres entreprises.

Yann LeCun

Il utilise un langage interactif appelé Lua, qui est simple et rapide.

Yann LeCun

Vous avez la taille de l'entrée (28x28), 1 000 unités cachées et 10 sorties.

Yann LeCun

Nous créons une instance d'une classe séquentielle pour empiler des modules.

Yann LeCun

Nous ajoutons un module linéaire, une ReLU, un autre module linéaire et un log softmax.

Yann LeCun

Ensuite, nous mettons un module de coût, qui est NLL (log-vraisemblance négative).

Yann LeCun

Nous voulons maximiser la vraisemblance. Puisque nous préférons minimiser, nous prenons l'opposé du logarithme.

Yann LeCun

Nous prenons un vecteur d'entrée et calculons la sortie et la fonction de coût.

Yann LeCun

Vous annulez les gradients puis calculez la rétropropagation.

Yann LeCun

Ceci calcule le gradient par rapport aux paramètres et peut ensuite être branché sur des modules d'optimisation.

Yann LeCun

De nombreux modules pré-implémentés peuvent être assemblés pour construire des modules compliqués.

Yann LeCun

Il existe des fonctions pour calculer les logarithmes, les sinus, ou pour dupliquer une entrée.

Détails mathématiques des modules

Yann LeCun

Pour chaque état interne, vous devez stocker l'état propagé vers le haut et le gradient de coût par rapport à cet état.

Yann LeCun

Dans un module linéaire, le gradient du coût par rapport à l'entrée est égal au gradient du coût par rapport à la sortie multiplié par la matrice de poids.

Yann LeCun

Le gradient du coût par rapport à l'entrée transposée est égal au gradient par rapport à la sortie multiplié par la matrice transposée.

Yann LeCun

Le gradient du coût par rapport à un poids IJ est égal au produit de l'entrée J par le gradient I.

Yann LeCun

Pour une fonction non linéaire, vous multipliez le gradient par rapport à la sortie par la dérivée de la fonction.

Yann LeCun

Un module de distance euclidienne calcule la norme au carré de la différence entre les deux vecteurs.

Yann LeCun

Lors de la rétropropagation dans un module de duplication, vous devez additionner les gradients.

Yann LeCun

Dans la rétropropagation d'un commutateur, vous avez une copie de l'entrée qui a été activée et vous mettez les autres à zéro.

Yann LeCun

Softmax transforme les scores en une distribution de probabilité.

Yann LeCun

Chaque sortie est égale à l'exponentielle divisée par la somme de toutes les exponentielles.

Yann LeCun

Pendant l'entraînement, vous entraînez le réseau de sorte que la probabilité de la bonne classe soit aussi élevée que possible.

Yann LeCun

Nous préférons minimiser l'opposé du logarithme de la vraisemblance.

Yann LeCun

Il est préférable d'utiliser un module appelé log softmax.

Yann LeCun

Le log softmax calcule la différence entre les vecteurs d'entrée et le terme de normalisation.

Yann LeCun

Pour la rétropropagation, le gradient par rapport à une entrée est égal au gradient par rapport à la sortie multiplié par les résultats du softmax.