Les auto-encodeurs variationnels (VAE) sont des modèles génératifs utilisés dans le machine learning (ML) pour générer de nouvelles données sous la forme de variations des données d’entrée sur lesquelles ils sont entraînés. Parallèlement, ils effectuent également des tâches communes à d’autres auto-encodeurs, telles que le débruitage.
Comme tous les auto-encodeurs, les auto-encodeurs variationnels sont des modèles d'apprentissage profond composés d’un encodeur qui apprend à isoler les variables latentes importantes des données d’entraînement, et d’un décodeur qui utilise ensuite ces variables latentes pour reconstruire les données d’entrée.
Cependant, alors que la plupart des architectures d’auto-encodeur encodent une représentation fixe et discrète des variables latentes, les VAE encodent une représentation probabiliste continue de cet espace latent. Cela permet à un VAE non seulement de reconstruire avec précision l’entrée d’origine, mais aussi d’utiliser l’inférence variationnelle pour générer de nouveaux échantillons de données qui ressemblent à celles-ci.
L’architecture de réseaux neuronaux pour l’auto-encodeur variationnel a été proposée à l’origine dans un article de 2013 de Diederik P. Kingma et Max Welling, intitulé Auto-Encoding Variational Bayes (lien externe à ibm.com). Cet article a également popularisé ce qu'ils ont appelé l'astuce de reparamétrage, une technique majeure de machine learning qui permet de recourir à des données aléatoires comme entrée de modèle sans compromettre la différentiabilité du modèle, c'est-à-dire la capacité d'optimiser les paramètres du modèle.
Bien que les VAE soient fréquemment évoqués dans le contexte de la génération d'images, notamment dans cet article, ils peuvent être utilisés pour un large éventail d'applications d'intelligence artificielle (IA), de la détection d'anomalies1 à la génération de nouvelles molécules2 (lien externe à ibm.com).
La notion d'espace latent, nom donné aux variables latentes collectives d'un ensemble spécifique de données d'entrée, est essentielle pour comprendre les VAE ou tout autre type d'auto-encodeurs. En bref, ce sont des variables sous-jacentes des données qui informent sur la manière dont les données sont distribuées, mais qui ne sont souvent pas directement observables.
Pour une visualisation pratique du concept de variables latentes, imaginez un pont équipé d'un capteur qui pèse chaque véhicule qui passe. Naturellement, différents types de véhicules empruntent le pont, des petits cabriolets légers aux énormes poids lourds. Comme il n’y a pas de caméra, nous n’avons aucun moyen de détecter si un véhicule spécifique est une décapotable, une berline, une fourgonnette ou un camion. Cependant, nous savons que le type de véhicule influence considérablement son poids.
Cet exemple comporte donc deux variables aléatoires, x et z, où x est la variable directement observable du poids du véhicule et z est la variable latente du type de véhicule. L’objectif principal de tout auto-encodeur est d’apprendre à modéliser efficacement l’espace latent d’une entrée particulière.
Les auto-encodeurs modélisent l’espace latent grâce à la réduction de la dimensionnalité : la compression des données dans un espace moindre qui capture les informations pertinentes contenues dans l’entrée d’origine.
Dans un contexte de machine learning (ML), les dimensions mathématiques ne correspondent pas aux dimensions spatiales classiques du monde physique, mais aux caractéristiques des données. Par exemple, une image en noir et blanc de 28x28 pixels d’un chiffre manuscrit du jeu de données MNIST peut être représentée comme un vecteur à 784 dimensions, dans lequel chaque dimension correspond à un pixel individuel dont la valeur est comprise entre 0 (pour le noir) et 1 (pour le blanc). Cette même image en couleur peut être représentée sous la forme d’un vecteur à 2 352 dimensions, dans lequel chacun des 784 pixels est représenté dans trois dimensions correspondant à ses valeurs rouge, vert et bleu (RGB) respectives.
Cependant, toutes ces dimensions ne contiennent pas d’informations utiles. Le chiffre lui-même ne représente qu’une petite partie de l’image, de sorte que la majeure partie de l’espace d’entrée se résume à un bruit de fond. La compression des données uniquement vers les dimensions qui contiennent les informations pertinentes (l’espace latent) peut améliorer la précision, l’efficience et l’efficacité de nombreuses tâches et algorithmes de ML.
Les VAE constituent un sous-ensemble de la catégorie plus large des auto-encodeurs, une architecture de réseaux neuronaux généralement utilisée dans l’apprentissage profond pour des tâches telles que la compression de données, le débruitage d’images, la détection d’anomalies et la reconnaissance faciale.
Les auto-encodeurs sont des systèmes auto-supervisés dont l’objectif d’entraînement est de compresser (ou d’encoder) les données d’entrée par réduction de la dimensionnalité, puis de reconstruire avec précision (ou décoder) leur entrée d’origine grâce à cette représentation compressée.
À la base, la fonction d'un auto-encodeur est d'extraire efficacement les informations les plus saillantes des données (ses variables latentes) et d'éliminer le bruit non pertinent. Ce qui distingue les différents types d'auto-encodeurs les uns des autres, c'est la stratégie spécifique qu'ils emploient pour extraire ces informations et les cas d'utilisation pour lesquels leur stratégie respective est la mieux adaptée.
Lors de l’entraînement, le réseau d’encodeurs transmet les données d’entrée du jeu de données d’entraînement à travers un « goulot d’étranglement » avant d’atteindre le décodeur. Le réseau de décodeurs, à son tour, est alors chargé de reconstruire l’entrée d’origine en utilisant uniquement le vecteur des variables latentes.
Après chaque période d'entraînement, des algorithmes d'optimisation tels que la descente de gradient sont utilisés pour ajuster les poids du modèle de manière à minimiser la différence entre les données d'entrée originales et la sortie du décodeur. Finalement, l'encodeur apprend à transmettre les informations les plus propices à une reconstruction précise et le décodeur à restituer ces informations de manière efficace.
Bien que cela se prête de manière très intuitive à des tâches simples de compression de données, la capacité d’encoder efficacement des représentations latentes précises de données non étiquetées offre aux auto-encodeurs une grande variété d’applications. Par exemple, les encodeurs automatiques peuvent être utilisés pour restaurer des fichiers audio corrompus, coloriser des images en niveaux de gris ou détecter des anomalies (telles que celles résultant d’une fraude) qui seraient autrement invisibles à l’œil nu.
Bien que différents types d’auto-encodeurs ajoutent ou modifient certains aspects de leur architecture pour mieux répondre à des objectifs et à des types de données spécifiques, tous les auto-encodeurs partagent trois éléments structurels clés :
L'encodeur extrait les variables latentes des données d'entrée x et les restitue sous la forme d'un vecteur représentant l'espace latent z. Dans un auto-encodeur « vanilla » typique, chaque couche suivante de l'encodeur contient progressivement moins de nœuds que la couche précédente ; au fur et à mesure que les données traversent chaque couche de l'encodeur, elles sont compressées par le processus de « compression » en moins de dimensions.
D’autres variantes d’auto-encodeur utilisent elles des termes de régularisation, comme une fonction qui favorise la parcimonie en pénalisant le nombre de nœuds activés à chaque couche, pour obtenir cette réduction de dimensionnalité.
Le goulot d’étranglement, ou « code », est à la fois la couche de sortie du réseau d’encodage et la couche d’entrée du réseau de décodage. Il contient l’espace latent : l’intégration entièrement compressée et de moindre dimension des données d’entrée. Un goulot d'étranglement suffisant est nécessaire pour garantir que le décodeur ne puisse pas simplement copier ou mémoriser les données d'entrée, ce qui satisferait nominalement sa tâche d'apprentissage mais empêcherait l'auto-encodeur d'apprendre.
Le décodeur utilise cette représentation latente pour reconstituer l’entrée d’origine en inversant l’encodeur : dans une architecture de décodeur typique, chaque couche suivante contient un nombre progressivement plus grand de nœuds actifs.
Bien que les réseaux de codage et de décodage de nombreux auto-encodeurs soient développés à partir de perceptrons multicouches (MLP) standard, les auto-encodeurs ne sont pas limités à un type spécifique de réseaux neuronaux.
Les auto-encodeurs utilisés pour les tâches de vision par ordinateur sont souvent des réseaux neuronaux convolutifs (CNN) et sont donc appelés auto-encodeurs convolutifs. Les auto-encodeurs développés via une architecture transformatrice sont utilisés dans de nombreux domaines, notamment la vision par ordinateur3 et la musique.4
L’un des principaux avantages des auto-encodeurs par rapport à d’autres algorithmes de réduction de la dimensionnalité, tels que l’analyse en composantes principales (PCA), est que les auto-encodeurs peuvent modéliser des relations non linéaires entre différentes variables. Pour cette raison, les nœuds des réseaux neuronaux auto-encodeurs utilisent généralement des fonctions d’activation non linéaires.
Dans de nombreuses applications d’auto-encodeur, le décodeur sert uniquement à faciliter l’optimisation de l’encodeur et est donc supprimé après l’entraînement. Dans les auto-encodeurs variationnels, le décodeur est conservé et utilisé pour générer de nouveaux points de données.
Ce qui distingue les VAE des autres auto-encodeurs, c’est la manière unique dont ils encodent l’espace latent et les différents cas d’utilisation auxquels leur encodage probabiliste peut être appliqué.
Contrairement à la plupart des auto-encodeurs, qui sont des modèles déterministes qui codent un seul vecteur de variables latentes discrètes, les VAE sont des modèles probabilistes. Les VAE encodent les variables latentes des données d'entraînement, non pas sous la forme d'une valeur discrète fixe z, mais sous la forme d'une gamme continue de possibilités exprimée sous forme de distribution de probabilité p(z).
Dans les statistiques bayésiennes, cette gamme de possibilités apprises pour la variable latente est appelée la distribution préalable. Dans l'inférence variationnelle, le processus génératif de synthèse de nouveaux points de données, cette distribution préalable est utilisée pour calculer la distribution postérieure, p(z|x). En d'autres termes, la valeur des variables observables x, compte tenu de la valeur de la variable latente z.
Pour chaque attribut latent des données d'entraînement, les VAE encodent deux vecteurs latents différents : un vecteur de moyenne, « µ », et un vecteur d’écart type, « σ ». En substance, ces deux vecteurs représentent l'éventail des possibilités pour chaque variable latente et la variance attendue à l'intérieur de chaque éventail de possibilités.
En prélevant au hasard des échantillons dans cet éventail de possibilités codées, les VAE peuvent synthétiser de nouveaux échantillons de données qui, tout en étant uniques et originaux, ressemblent aux données d'entraînement d'origine. Bien que relativement intuitive en principe, cette méthodologie nécessite des adaptations supplémentaires par rapport à la méthodologie standard des auto-encodeurs pour être mise en pratique.
Pour expliquer cette capacité des VAE, revoyons les concepts suivants :
Comme tous les auto-encodeurs, les VAE utilisent la perte liée à la reconstruction, également appelée erreur de reconstruction, comme fonction de perte principale lors de l'entraînement. L'erreur de reconstruction mesure la différence (ou « perte ») entre les données d'entrée d'origine et la version reconstruite de ces données générées par le décodeur. Plusieurs algorithmes, notamment la perte d’entropie croisée ou l’erreur quadratique moyenne (MSE), peuvent être utilisés comme fonction de perte liée à la reconstruction.
Comme expliqué plus haut, l'architecture de l'auto-encodeur crée un goulot d'étranglement qui ne permet qu'à un sous-ensemble des données d'entrée d'origine de « franchir » le décodeur. Au début de l'entraînement, qui commence généralement par une initialisation aléatoire des paramètres du modèle, l'encodeur n'a pas encore déterminé quelles parties des données sont les plus importantes. Par conséquent, il produira initialement une représentation latente sous-optimale, et le décodeur produira une reconstruction assez imprécise ou incomplète de l'entrée d'origine.
En minimisant l'erreur liée à la reconstruction grâce à une certaine forme de descente de gradient sur les paramètres du réseau d'encodeurs et du réseau de décodeurs, les poids du modèle d'auto-encodeur seront ajustés de manière à produire un codage plus utile de l'espace latent (et donc une reconstruction plus précise). Mathématiquement, l'objectif de la fonction de perte liée à la reconstruction est d'optimiser pθ(z|x), où θ représente les paramètres du modèle qui imposent la reconstruction précise de l'entrée x étant donné la variable latente z.
La perte liée à la reconstruction à elle seule est suffisante pour optimiser la plupart des auto-encodeurs, dont le seul objectif est une représentation compressée d’apprentissage des données d’entrée qui est propice à une reconstruction précise.
Cependant, l’objectif d’un auto-encodeur variationnel n’est pas de reconstruire l’entrée d’origine ; il s’agit de générer de nouveaux échantillons qui ressemblent à l’entrée d’origine. Un terme d’optimisation supplémentaire est donc nécessaire.
Dans le cadre de l’inférence variationnelle, c’est-à-dire la génération de nouveaux échantillons par un modèle entraîné, la perte liée à la reconstruction à elle seule peut entraîner un encodage irrégulier de l’espace latent qui sur-ajuste les données d'entraînement et ne généralise pas correctement les nouveaux échantillons. Par conséquent, les VAE intègrent un autre terme de régularisation : la divergence de Kullback-Leibler ou la divergence K-L.
Pour générer des images, le décodeur échantillonne à partir de l’espace latent. L’échantillonnage à partir des points spécifiques de l’espace latent représentant les entrées d’origine dans les données d'entraînement répliquerait ces entrées d’origine. Pour générer de nouvelles images, le VAE doit pouvoir échantillonner à partir de n’importe quel endroit de l’espace latent entre les points de données d’origine. Pour que cela soit possible, l’espace latent doit présenter deux types de régularité :
Un moyen simple d'implémenter à la fois la continuité et l'exhaustivité dans l'espace latent est de s'assurer qu'il suit une distribution normale standard, appelée distribution gaussienne. Mais minimiser uniquement la perte liée à la reconstruction n’incite pas le modèle à organiser l’espace latent d’une manière particulière, car l’espace « intermédiaire » n’est pas pertinent pour la reconstruction précise des points de données d’origine. C’est là qu’intervient le terme de régularisation de la divergence K-L.
La divergence K-L est un indicateur utilisé pour comparer deux distributions de probabilités. La minimisation de la divergence KL entre la distribution apprise des variables latentes et une distribution gaussienne simple dont les valeurs sont comprises entre 0 et 1 oblige le codage appris des variables latentes à suivre une distribution normale. Cela permet une interpolation fluide de n’importe quel point dans l’espace latent, et ainsi la génération de nouvelles images.
L'un des obstacles à l'utilisation de la divergence KL pour l'inférence variationnelle est que le dénominateur de l'équation est insoluble, ce qui signifie qu'il faudrait théoriquement une infinité de temps pour le calculer directement. Pour contourner ce problème et intégrer les deux fonctions de perte principales, les VAE approximent la minimisation de la divergence des K-L en maximisant la limite inférieure de preuve (ELBO).
En terminologie statistique, la « preuve » dans la « limite inférieure de preuve » (ELBO) fait référence à p(x), les données d’entrée observables que le VAE est ostensiblement chargée de reconstruire. Ces variables observables dans les données d’entrée constituent les « preuves » des variables latentes découvertes par l’auto-encodeur. La « limite inférieure » fait référence à l’estimation du pire scénario pour la log-vraisemblance d’une distribution donnée. La log-vraisemblance réel peut être supérieure à l’ELBO.
Dans le contexte des VAE, la limite inférieure de la preuve fait référence à l'estimation la plus défavorable de la probabilité qu'une distribution postérieure spécifique, en d'autres termes, une sortie spécifique de l'auto-encodeur, conditionnée par le terme de perte de la divergence KL et le terme de perte liée à la reconstruction, corresponde à la « preuve » des données d'entraînement. Par conséquent, l’entraînement d’un modèle pour l’inférence variationnelle peut être appelé maximisation de l’ELBO.
Comme nous l'avons vu, l'objectif de l'inférence variationnelle est de produire de nouvelles données sous la forme de variations aléatoires des données d'entraînement x. À première vue, c'est relativement simple : utiliser une fonction ƒ qui sélectionne une valeur aléatoire pour la variable latente z, que le décodeur peut ensuite utiliser pour générer une reconstruction approximative de x.
Cependant, l’une des propriétés inhérentes à l’aléatoire est qu’il ne peut pas être optimisé. Il n’y a pas de « meilleur » aléatoire ; un vecteur de valeurs aléatoires, par définition, n’a pas de dérivée, c’est-à-dire aucun gradient exprimant un motif dans les sorties du modèle résultant, et ne peut donc pas être optimisé par rétropropagation en utilisant une forme de descente de gradient. Cela signifierait qu’un réseau neuronal qui utilise le processus d’échantillonnage aléatoire précédent ne peut pas apprendre les paramètres optimaux pour accomplir sa tâche.
Pour contourner cet obstacle, les VAE utilisent l’astuce de reparamétrage. Elle introduit un nouveau paramètre, ε, qui est une valeur aléatoire sélectionnée à partir de la distribution normale comprise entre 0 et 1.
Elle reparamètre ensuite la variable latente z comme z = μx + εσx. En termes plus simples, elle choisit une valeur pour la variable latente z en commençant par la moyenne de cette variable (représentée par µ) et en la décalant d'un multiple aléatoire (représenté par ε) d'un écart-type (σ). Conditionné par cette valeur spécifique de z, le décodeur produit alors un nouvel échantillon.
Étant donné que la valeur aléatoire ε n’est pas dérivée des paramètres du modèle d’auto-encodeur et n’a aucune relation avec ceux-ci, elle peut être ignorée lors de la rétropropagation. Le modèle est mis à jour via une forme ou une autre de descente de gradient, le plus souvent via Adam (lien externe à ibm.com), un algorithme d’optimisation basé sur les gradients également développé par Kingma, afin de maximiser l’ELBO.
L’un des inconvénients des VAE « vanilla » classiques est que l’utilisateur n’a aucun contrôle sur les sorties spécifiques générées par l’auto-encodeur. Par exemple, un VAE classique entraîné à partir du jeu de données MNIST mentionné précédemment générera de nouveaux échantillons de chiffres manuscrits compris entre 0 et 9, mais il ne peut pas être contraint de ne produire que des 4 et des 7.
Comme leur nom l'indique, les VAE conditionnelles (CVAE) permettent d'obtenir des sorties conditionnées par des entrées spécifiques, plutôt que de générer uniquement des variations de données d'entraînement au hasard. Pour ce faire, des éléments d'apprentissage supervisé (ou semi-supervisé) sont incorporés aux objectifs de formation traditionnellement non supervisés des auto-encodeurs conventionnels.
En entraînant le modèle sur des exemples étiquetés de variables spécifiques, ces variables peuvent être utilisées pour conditionner la sortie du décodeur. Par exemple, un CVAE peut d'abord être entraîné sur un grand jeu de données d'images faciales, puis en utilisant l'apprentissage supervisé pour apprendre un codage latent pour les « barbes » afin qu'il puisse produire de nouvelles images de visages barbus.
Newsletter sectorielle
Obtenez des informations sur les actualités les plus importantes et les plus intrigantes en matière d’intelligence artificielle. Abonnez-vous à notre newsletter hebdomadaire Think. Lire la Déclaration de confidentialité d’IBM.
Vous recevrez votre abonnement en anglais. Vous trouverez un lien de désabonnement dans chaque newsletter. Vous pouvez gérer vos abonnements ou vous désabonner ici. Consultez la Déclaration de confidentialité d’IBM pour plus d’informations.
Les VAE sont souvent comparés aux réseaux antagonistes génératifs (GAN), une autre architecture de modèle utilisée pour générer des échantillons qui ressemblent à des données d'entraînement, en particulier pour les images.
Comme les VAE, les GAN sont une architecture conjointe qui combine deux réseaux neuronaux : un réseau générateur responsable de la production d’échantillons d’images qui ressemblent à des images du jeu de données d’entraînement et un réseau discriminateur chargé de déterminer si une image spécifique est une image « réelle » des données d’entraînement ou une image « fausse » provenant du réseau générateur.
Les deux réseaux sont formés de manière contradictoire dans un jeu à somme nulle : le commentaire du discriminateur est utilisé pour améliorer la sortie du générateur jusqu'à ce que le discriminateur ne soit plus en mesure de distinguer les échantillons réels des échantillons fictifs.
Pour la synthèse d’images, les deux modèles présentent des avantages et des inconvénients : les GAN produisent des images plus claires mais, en raison des compromis contradictoires entre les deux modèles composites, ils sont instables lors de l’entraînement. Les VAE sont plus faciles à entraîner mais, en raison de la nature de la production d’images à partir des caractéristiques « moyennes » des données d’entraînement, ils ont tendance à produire des images plus floues.
Un VAE-GAN est, comme son nom l’indique, un hybride entre un auto-encodeur variationnel (VAE) et un réseau antagoniste génératif (GAN). Il atténue le flou des images générées par le VAE en remplaçant le terme de perte lié à la reconstruction du VAE par un réseau de discriminateurs.
Acquérez une compréhension approfondie des réseaux neuronaux, de leurs fonctions de base et des principes fondamentaux de leur construction.
IBM Granite est notre famille de modèles d’IA ouverts, performants et fiables, conçus pour les entreprises et optimisés pour dimensionner vos applications d’IA. Explorez les options de langage, de code, de séries temporelles et de garde-fous.
Nous avons interrogé 2 000 entreprises à propos de leurs initiatives d’IA pour découvrir ce qui fonctionne, ce qui ne fonctionne pas et comment progresser.
Découvrez comment intégrer en toute confiance l’IA générative et le machine learning dans votre entreprise.
Entraînez, validez, réglez et déployez une IA générative, des modèles de fondation et des capacités de machine learning avec IBM watsonx.ai, un studio d’entreprise nouvelle génération pour les générateurs d’IA. Créez des applications d’IA en peu de temps et avec moins de données.
Mettez l’IA au service de votre entreprise en vous appuyant sur l’expertise de pointe d’IBM dans le domaine de l’IA et sur son portefeuille de solutions.
Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.
Tous les liens sont externes au site ibm.com
1 « Novel Applications for VAE-based Anomaly Detection Systems », arXiv, 26 avril 2022.
2 « Variational autoencoder-based chemical latent space for large molecular structures with 3D complexity », Nature, 16 novembre 2023.
3 « Masked Autoencoders Are Scalable Vision Learners », arXiv, 11 novembre 2021.
4 « Encoding Musical Style with Transformer Autoencoders », arXiv, 10 décembre 2019.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com, openliberty.io