Quand dois-je utiliser un encodeur automatique variationnel par opposition à un encodeur automatique?

19

Je comprends la structure de base de l'autoencodeur variationnel et de l'autoencodeur normal (déterministe) et les mathématiques qui les sous-tendent, mais quand et pourquoi préférerais-je un type d'autoencodeur à l'autre? Tout ce que je peux penser, c'est que la distribution préalable des variables latentes de l'autoencodeur variationnel nous permet d'échantillonner les variables latentes puis de construire la nouvelle image. Quel avantage la stochasticité de l'autoencodeur variationnel sur l'autoencodeur déterministe?

DiveIntoML
la source

Réponses:

13

La VAE est un cadre qui a été proposé comme un moyen évolutif de faire de l'EM variationnelle (ou l'inférence variationnelle en général) sur de grands ensembles de données. Bien qu'il ait une structure semblable à AE, il sert un objectif beaucoup plus large.

Cela dit, on peut, bien sûr, utiliser les VAE pour apprendre des représentations latentes. Les VAE sont connus pour donner des représentations avec des facteurs démêlés [1] Cela se produit en raison des a priori gaussiens isotropes sur les variables latentes. Les modéliser comme des gaussiens permet à chaque dimension de la représentation de s'éloigner le plus possible des autres facteurs. En outre, [1] a ajouté un coefficient de régularisation qui contrôle l'influence de l'a priori.

Alors que les gaussiens isotropes sont suffisants pour la plupart des cas, pour des cas spécifiques, on peut vouloir modéliser les priors différemment. Par exemple, dans le cas de séquences, on peut vouloir définir les a priori comme des modèles séquentiels [2].

Pour en revenir à la question, comme on peut le voir, prior donne un contrôle significatif sur la façon dont nous voulons modéliser notre distribution latente. Ce type de contrôle n'existe pas dans le cadre AE habituel. C'est en fait la puissance des modèles bayésiens eux-mêmes, les VAE les rendent simplement plus pratiques et réalisables pour les ensembles de données à grande échelle. Donc, pour conclure, si vous voulez un contrôle précis sur vos représentations latentes et ce que vous aimeriez qu'elles représentent, choisissez VAE. Parfois, une modélisation précise peut capturer de meilleures représentations comme dans [2]. Cependant, si AE suffit pour le travail que vous faites, alors allez-y avec AE, c'est assez simple et assez simple. Après tout, avec les AE, nous faisons simplement une ACP non linéaire.

[1] Early Visual Concept Learning with Unsupervised Deep Learning, 2016
Irina Higgins, Loic Matthey, Xavier Glorot, Arka Pal, Benigno Uria, Charles Blundell, Shakir Mohamed, Alexander Lerchner
https://arxiv.org/abs/1606.05579

[2] Un modèle de variable latente récurrente pour les données séquentielles, 2015
Junyoung Chung, Kyle Kastner, Laurent Dinh, Kratarth Goel, Aaron Courville, Yoshua Bengio
https://arxiv.org/abs/1506.02216

TenaliRaman
la source
6

TenaliRaman avait quelques bons points mais il a également manqué beaucoup de concepts fondamentaux. Tout d'abord, il convient de noter que la principale raison d'utiliser un cadre de type AE est l'espace latent qui nous permet de compresser les informations et, espérons-le, d'en extraire des facteurs indépendants qui représentent des caractéristiques de haut niveau des données. Un point important est que, alors que les AE peuvent être interprétés comme l'extension non linéaire de l'ACP puisque les unités cachées "X" couvriraient le même espace que le premier nombre "X" de composants principaux, un AE ne produit pas nécessairement des composants orthogonaux dans la latence espace (ce qui équivaudrait à une forme de démêlage). De plus, à partir d'un VAE, vous pouvez obtenir un semblant de la vraisemblance des données (bien qu'approximative) et également en échantillonner (ce qui peut être utile pour diverses tâches différentes). cependant,

La distribution préalable imposée aux unités latentes dans un VAE ne contribue qu'à l'ajustement du modèle en raison du terme de divergence KL, auquel la référence [1] a simplement ajouté un multiplicateur hyperparamétrique sur ce terme et en a obtenu un document complet (la plupart étant assez évident). Essentiellement, un a priori «non informatif» est celui qui a individuellement une divergence KL proche de zéro et ne contribue pas beaucoup à la perte, ce qui signifie qu'une unité particulière n'est pas utilisée pour la reconstruction dans le décodeur. Le démêlage entre naturellement en jeu sur une VAE car, dans le cas le plus simple des données multimodales, le coût de divergence KL est plus faible en ayant un gaussien latent unique pour chaque mode que si le modèle tente de capturer plusieurs modes avec un seul gaussien (ce qui divergerait davantage de la précédente car il est fortement pénalisé par le coût de divergence KL) - conduisant ainsi au démêlage dans les unités latentes. Par conséquent, la VAE se prête naturellement à la plupart des sources de données en raison des implications statistiques qui y sont associées.

Il existe également des cadres d'imposition clairsemée pour les AE, mais malheureusement je ne connais aucun document comparant la VAE et AE strictement sur la base de la représentation de l'espace latent et du démêlage. J'aimerais vraiment voir quelque chose dans cette arène cependant - puisque les AE sont beaucoup plus faciles à former et s'ils pouvaient atteindre un aussi bon démêlage que les VAE dans l'espace latent, alors ils seraient évidemment préférés. Sur une note connexe, j'ai également vu certaines promesses des méthodes ICA (et ICA non linéaire), mais celles que j'ai vues ont forcé l'espace latent à avoir la même dimension que les données, ce qui n'est pas aussi utile que les AE pour extraire des fonctionnalités de haut niveau.

JPJ
la source
3

L'encodeur automatique standard peut être illustré à l'aide du graphique suivant: entrez la description de l'image ici

Comme indiqué dans les réponses précédentes, il peut être considéré comme une simple extension non linéaire de l'ACP.

Mais par rapport à l'encodeur automatique variationnel, l'encodeur automatique vanille présente l'inconvénient suivant:

Le problème fondamental des encodeurs automatiques, pour la génération, est que l'espace latent dans lequel ils convertissent leurs entrées et où se trouvent leurs vecteurs encodés, peut ne pas être continu ou permettre une interpolation facile.

C'est-à-dire que la partie encodage dans le graphique ci-dessus ne peut pas traiter les entrées que l'encodeur n'a jamais vues auparavant parce que les différentes classes sont regroupées sans ambiguïté et ces entrées invisibles sont encodées en quelque chose situé quelque part dans le blanc:

entrez la description de l'image ici

Pour résoudre ce problème, l'autoencodeur variationnel a été créé en ajoutant une couche contenant une moyenne et un écart-type pour chaque variable cachée dans la couche intermédiaire:

entrez la description de l'image ici

Ensuite, même pour la même entrée, la sortie décodée peut varier et les entrées codées et groupées deviennent fluides:

entrez la description de l'image ici

Donc, pour débruiter ou classer (filtrer les données dissemblables), un autoencodeur standard serait suffisant, alors que nous ferions mieux d'employer un autoencodeur variationnel pour la génération.

Référence:
compréhension intuitive des encodeurs automatiques variationnels

Lerner Zhang
la source
1

Le choix de la distribution du code dans VAE permet un meilleur apprentissage de la représentation non supervisée où les échantillons de la même classe se retrouvent proches les uns des autres dans l'espace de code. De cette façon, il est plus facile de trouver une sémantique pour les régions dans l'espace de code. Par exemple, vous sauriez dans chaque zone quelle classe peut être générée.

Si vous avez besoin d'une analyse plus approfondie, jetez un œil à la thèse de Durk Kingma . C'est une excellente source pour l'inférence variationnelle.

PickleRick
la source
Quand vous parlez de "choisir la distribution", de quelle distribution parlez-vous? p (z), p (z | x), p (x | z) ou tous? Je n'ai vu que l'utilisation de la distribution normale ou de la distribution de Bernoulli, connaissez-vous des travaux comparant les performances en utilisant une distribution différente? Quant à votre deuxième point, je ne vois pas pourquoi l'autoencodeur variationnel fera un meilleur travail qu'un autoencodeur normal, pourriez-vous élaborer? Merci.
DiveIntoML