Que sont les auto-encodeurs variationnels et à quelles tâches d'apprentissage sont-ils utilisés?


24

Selon ceci et cette réponse, les auto-encodeurs semblent être une technique qui utilise des réseaux de neurones pour réduire les dimensions. Je voudrais en outre savoir ce qu'est un autoencodeur variationnel (ses principales différences / avantages par rapport à un autoencodeur "traditionnel") et aussi quelles sont les principales tâches d'apprentissage pour lesquelles ces algorithmes sont utilisés.

Réponses:


37

Même si les auto-encodeurs variationnels (VAE) sont faciles à implémenter et à former, les expliquer n'est pas du tout simple, car ils mélangent des concepts issus du Deep Learning et du Variational Bayes, et les communautés Deep Learning et Probabilistic Modeling utilisent des termes différents pour les mêmes concepts. Ainsi, lorsque vous expliquez les VAE, vous risquez de vous concentrer sur la partie du modèle statistique, laissant le lecteur sans aucun indice sur la façon de le mettre en œuvre, ou vice versa de vous concentrer sur l'architecture du réseau et la fonction de perte, dans laquelle le terme Kullback-Leibler semble être sorti de l'air mince. J'essaierai de trouver un terrain d'entente ici, à partir du modèle, mais en donnant suffisamment de détails pour le mettre en œuvre dans la pratique, ou comprendre la mise en œuvre de quelqu'un d'autre.

Les VAE sont des modèles génératifs

Contrairement aux auto-encodeurs classiques (clairsemés, débruités, etc.), les VAE sont des modèles génératifs , comme les GAN. Par modèle génératif, je veux dire un modèle qui apprend la distribution de probabilité p(x) sur l'espace d'entrée . Cela signifie qu'après avoir formé un tel modèle, nous pouvons alors échantillonner à partir de (notre approximation de) . Si notre ensemble de formation est composé de chiffres manuscrits (MNIST), après la formation, le modèle génératif est capable de créer des images qui ressemblent à des chiffres manuscrits, même si ce ne sont pas des "copies" des images de l'ensemble de formation.xp(x)

L'apprentissage de la distribution des images dans l'ensemble d'apprentissage implique que les images qui ressemblent à des chiffres manuscrits devraient avoir une forte probabilité d'être générées, tandis que les images qui ressemblent au Jolly Roger ou au bruit aléatoire devraient avoir une faible probabilité. En d'autres termes, cela signifie connaître les dépendances entre les pixels: si notre image est une image en niveaux de gris de pixels du MNIST, le modèle devrait apprendre que si un pixel est très lumineux, il y a une probabilité importante que certains voisins les pixels sont également brillants, si nous avons une longue ligne oblique de pixels lumineux, nous pouvons avoir une autre ligne de pixels horizontale plus petite au-dessus de celui-ci (a 7), etc.28×28=784

Les VAE sont des modèles à variables latentes

La VAE est un modèle de variables latentes : cela signifie que , le vecteur aléatoire des 784 intensités de pixels (les variables observées ), est modélisé comme une fonction (peut-être très compliquée) d'un vecteur aléatoire de dimensionnalité inférieure, dont les composantes sont des variables non observées ( latentes ). Quand un tel modèle a-t-il un sens? Par exemple, dans le cas du MNIST, nous pensons que les chiffres manuscrits appartiennent à une variété de dimension beaucoup plus petite que la dimension dexzZ xzZx, car la grande majorité des arrangements aléatoires d'intensités de 784 pixels ne ressemblent pas du tout à des chiffres manuscrits. Intuitivement, nous nous attendrions à ce que la dimension soit d'au moins 10 (le nombre de chiffres), mais elle est probablement plus grande car chaque chiffre peut être écrit de différentes manières. Certaines différences sont sans importance pour la qualité de l'image finale (par exemple, les rotations et les traductions globales), mais d'autres sont importantes. Dans ce cas, le modèle latent a donc un sens. Plus d'informations à ce sujet plus tard. Notez que, étonnamment, même si notre intuition nous dit que la dimension devrait être d'environ 10, nous pouvons certainement utiliser seulement 2 variables latentes pour coder l'ensemble de données MNIST avec un VAE (bien que les résultats ne soient pas jolis). La raison en est que même une seule variable réelle peut coder une infinité de classes, car elle peut assumer toutes les valeurs entières possibles et plus encore. Bien sûr, si les classes se chevauchent considérablement (comme 9 et 8 ou 7 et I dans le MNIST), même la fonction la plus compliquée de seulement deux variables latentes fera un mauvais travail de génération d'échantillons clairement discernables pour chaque classe. Plus d'informations à ce sujet plus tard.

Les VAE supposent une distribution paramétrique multivariée (où sont les paramètres de ), et ils apprennent les paramètres de la distribution multivariée. L'utilisation d'un pdf paramétrique pour , qui empêche le nombre de paramètres d'une VAE de croître sans limites avec la croissance de l'ensemble d'entraînement, est appelée amortissement dans le jargon VAE (ouais, je sais ...).q(z|x,λ)λqz

Le réseau des décodeurs

entrez la description de l'image ici

Nous partons du réseau de décodeurs car la VAE est un modèle génératif, et la seule partie de la VAE qui est réellement utilisée pour générer de nouvelles images est le décodeur. Le réseau de codeurs n'est utilisé qu'au moment de l'inférence (formation).

Le but du réseau de décodage est de générer de nouveaux vecteurs aléatoires appartenant à l'espace d'entrée , c'est-à-dire de nouvelles images, à partir des réalisations du vecteur latent . Cela signifie clairement qu'il doit apprendre la distribution conditionnelle . Pour les VAE, cette distribution est souvent supposée être une gaussienne multivariée 1 :xXzp(x|z)

pϕ(x|z)=N(x|μ(z;ϕ),σ(z;ϕ)2I)

ϕ est le vecteur des poids (et des biais) du réseau d'encodeur. Les vecteurs et sont des fonctions non linéaires complexes et inconnues, modélisés par le réseau des décodeurs: les réseaux de neurones sont de puissants approximateurs de fonctions non linéaires.μ(z;ϕ)σ(z;ϕ)


Comme l'a noté @amoeba dans les commentaires, il existe une similitude frappante entre le décodeur et un modèle classique de variables latentes: l'analyse factorielle. Dans l'analyse factorielle, vous supposez le modèle:

x|zN(Wz+μ,σ2I), zN(0,I)

Les deux modèles (FA et le décodeur) supposent que la distribution conditionnelle des variables observables sur les variables latentes est gaussienne et que les eux-mêmes sont des gaussiens standard. La différence est que le décodeur ne suppose pas que la moyenne de est linéaire dans , ni qu'il suppose que l'écart-type est un vecteur constant. Au contraire, il les modélise comme des fonctions non linéaires complexes du . À cet égard, elle peut être considérée comme une analyse factorielle non linéaire. Voir icixzzp(x|z)zzpour une discussion approfondie de ce lien entre FA et VAE. Étant donné que FA avec une matrice de covariance isotrope n'est que PPCA, cela est également lié au résultat bien connu qu'un autoencodeur linéaire se réduit à PCA.


Revenons au décodeur: comment apprend-on ? Intuitivement, nous voulons des variables latentes qui maximisent la probabilité de générer dans l'ensemble d'apprentissage . En d'autres termes, nous voulons calculer la distribution de probabilité postérieure de , étant donné les données:ϕzxiDnz

p(z|x)=pϕ(x|z)p(z)p(x)

Nous supposons un avant , et nous nous retrouvons avec le problème habituel dans l'inférence bayésienne que le calcul de (la preuve ) est difficile ( une intégrale multidimensionnelle). De plus, comme ici est inconnu, nous ne pouvons pas le calculer de toute façon. Entrez Inférence variationnelle, l'outil qui donne son nom aux encodeurs automatiques variationnels.N(0,I)zp(x)μ ( z ; ϕ )μ(z;ϕ)

Inférence variationnelle pour le modèle VAE

L'inférence variationnelle est un outil permettant d'effectuer une inférence bayésienne approximative pour des modèles très complexes. Ce n'est pas un outil trop complexe, mais ma réponse est déjà trop longue et je n'entrerai pas dans une explication détaillée du VI. Vous pouvez consulter cette réponse et les références qu'elle contient si vous êtes curieux:

/stats//a/270569/58675

Il suffit de dire que VI cherche une approximation de dans une famille paramétrique de distributions , où, comme indiqué ci-dessus, sont les paramètres de la famille. Nous recherchons les paramètres qui minimisent la divergence de Kullback-Leibler entre notre distribution cible et :p(z|x)q(z|x,λ)λp(z|x)q(z|x,λ)

minλD[p(z|x)||q(z|x,λ)]

Encore une fois, nous ne pouvons pas minimiser cela directement parce que la définition de la divergence Kullback-Leibler inclut les preuves. Présentation de l'ELBO (Evidence Lower BOund) et après quelques manipulations algébriques, nous arrivons enfin à:

ELBO(λ)=Eq(z|x,λ)[logp(x|z)]D[(q(z|x,λ)||p(z)]

Étant donné que l'ELBO est une borne inférieure sur les preuves (voir le lien ci-dessus), maximiser l'ELBO n'est pas exactement équivalent à maximiser la probabilité de données fournies (après tout, VI est un outil pour une inférence bayésienne approximative ), mais ça va dans la bonne direction.λ

Pour faire l'inférence, nous devons spécifier la famille paramétrique . Dans la plupart des VAE, nous choisissons une distribution gaussienne multivariée non corréléeq(z|x,λ)

q(z|x,λ)=N(z|μ(x),σ2(x)I)

C'est le même choix que nous avons fait pour , bien que nous ayons pu choisir une famille paramétrique différente. Comme précédemment, nous pouvons estimer ces fonctions non linéaires complexes en introduisant un modèle de réseau neuronal. Puisque ce modèle accepte les images d'entrée et renvoie les paramètres de la distribution des variables latentes, nous l'appelons le réseau de codeurs . Comme précédemment, nous pouvons estimer ces fonctions non linéaires complexes en introduisant un modèle de réseau neuronal. Puisque ce modèle accepte les images d'entrée et renvoie les paramètres de la distribution des variables latentes, nous l'appelons le réseau de codeurs .p(x|z)

Le réseau d'encodeurs

Également appelé réseau d' inférence , il n'est utilisé qu'au moment de la formation.

entrez la description de l'image ici

Comme indiqué ci-dessus, l'encodeur doit approximer et , donc si nous avons, disons, 24 variables latentes, la sortie de le codeur est un vecteur . L'encodeur a des poids (et des biais) . Pour apprendre , nous pouvons enfin écrire l'ELBO en termes de paramètres et du réseau d'encodeur et de décodeur, ainsi que les points de consigne d'entraînement:μ(x)σ(x)d=48θθθϕ

ELBO(θ,ϕ)=iEqθ(z|xi,λ)[logpϕ(xi|z)]D[(qθ(z|xi,λ)||p(z)]

Nous pouvons enfin conclure. L'opposé de l'ELBO, en fonction de et , est utilisé comme fonction de perte de la VAE. Nous utilisons SGD pour minimiser cette perte, c'est-à-dire maximiser le ELBO. Étant donné que l'ELBO est une borne inférieure sur les preuves, cela va dans le sens de maximiser les preuves et donc de générer de nouvelles images qui sont de manière optimale similaires à celles de l'ensemble de formation. Le premier terme dans l'ELBO est la log-vraisemblance négative attendue des points de consigne d'apprentissage, il encourage donc le décodeur à produire des images similaires à celles d'apprentissage. Le second terme peut être interprété comme un régularisateur: il encourage l'encodeur à générer une distribution pour les variables latentes qui est similaire àθϕp(z)=N(0,I). Mais en introduisant d'abord le modèle de probabilité, nous avons compris d'où vient toute l'expression: la minimisation de la divergence de Kullabck-Leibler entre la approximative postérieure et le modèle postérieur . 2qθ(z|x,λ)p(z|x,λ)

Une fois que nous avons appris et en maximisant , nous pouvons jeter l'encodeur. À partir de maintenant, pour générer de nouvelles images, il vous suffit de tester et de le propager dans le décodeur. Les sorties du décodeur seront des images similaires à celles de l'ensemble d'entraînement.θϕELBO(θ,ϕ)zN(0,I)

Références et lectures complémentaires


1 Cette hypothèse n'est pas strictement nécessaire, bien qu'elle simplifie notre description des VAE. Cependant, selon les applications, vous pouvez supposer une distribution différente pour . Par exemple, si est un vecteur de variables binaires, un gaussien n'a aucun sens et un Bernoulli multivarié peut être supposé.pϕ(x|z)xp

2 L'expression ELBO, avec son élégance mathématique, cache deux sources majeures de douleur pour les praticiens de la VAE. L'un est le terme moyen . Cela nécessite effectivement de calculer une attente, ce qui nécessite de prendre plusieurs échantillons deEqθ(z|xi,λ)[logpϕ(xi|z)]qθ(z|xi,λ). Compte tenu de la taille des réseaux de neurones impliqués et du faible taux de convergence de l'algorithme SGD, devoir prélever plusieurs échantillons aléatoires à chaque itération (en fait, pour chaque mini-lot, ce qui est encore pire) prend beaucoup de temps. Les utilisateurs de VAE résolvent ce problème de manière très pragmatique en calculant cette attente avec un seul échantillon (!) Aléatoire. L'autre problème est que pour former deux réseaux de neurones (encodeur et décodeur) avec l'algorithme de rétropropagation, je dois être capable de différencier toutes les étapes impliquées dans la propagation directe de l'encodeur au décodeur. Étant donné que le décodeur n'est pas déterministe (l'évaluation de sa sortie nécessite un dessin à partir d'une gaussienne multivariée), il n'a même pas de sens de se demander s'il s'agit d'une architecture différenciable. La solution à cela est l' astuce de reparamétrisation .


1
Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
gung - Reinstate Monica

2
+6. J'ai mis une prime ici, alors j'espère que vous obtiendrez des votes supplémentaires. Si vous voulez améliorer quelque chose dans ce post (même si ce n'est que la mise en forme), c'est le bon moment: chaque modification fera passer ce fil à la première page et incitera plus de gens à faire attention à la prime. En dehors de cela, je réfléchissais un peu plus à la relation conceptuelle entre l'estimation EM du modèle FA et la formation VAE. Vous accédez aux diapositives de la conférence qui expliquent en détail comment la formation VAE est similaire à l'EM, mais il pourrait être formidable de distiller une partie de cette intuition dans cette réponse.
amibe dit Réintégrer Monica

(J'ai fait quelques lectures à ce sujet, et je pense écrire ici une réponse "intuitive / conceptuelle" se concentrant sur la correspondance FA / PPCA <--> VAE en termes de formation EM <--> VAE, mais je ne pense pas J'en sais assez pour une réponse faisant autorité ... Donc je préfère de beaucoup que quelqu'un d'autre l'ait écrit :-)
amibe dit Reinstate Monica

Merci pour la générosité! Certaines modifications majeures ont été mises en œuvre. Je n'aborderai pas les trucs EM, cependant, parce que je ne connais pas suffisamment EM, et parce que j'ai assez de temps (vous savez combien de temps il me faut pour implémenter des modifications majeures ... ;-)
DeltaIV
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.