Qu’est-ce qu’un auto-encodeur ?
Découvrir IBM watsonx.ai
Représentation abstraite du machine learning

Publication : 23 novembre 2023
Contributeurs : Dave Bergmann, Cole Stryker

Qu’est-ce qu’un auto-encodeur ?

Un auto-encodeur est un type d’architecture de réseau neuronal conçu pour compresser efficacement (encoder) les données d’entrée vers leurs caractéristiques essentielles, puis reconstruire (décoder) l’entrée d’origine à partir de cette représentation compressée.

À l’aide d’un mécanisme de machine learning non supervisé, les auto-encodeurs sont entraînés à découvrir les variables latentes des données d’entrée : des variables cachées ou aléatoires qui, bien qu’elles ne soient pas directement observables, ont une incidence fondamentale sur la distribution des données. Collectivement, les variables latentes d’un ensemble spécifique de données d’entrée sont appelées l’espace latent. Au cours de l’entraînement, l’auto-encodeur apprend quelles variables latentes peuvent être utilisées pour reconstruire les données d’origine avec la plus grande précision : cette représentation de l’espace latent ne contient donc que les informations les plus essentielles de l’entrée d’origine.

La plupart des types d’auto-encodeurs sont utilisés pour les tâches d’intelligence artificielle liées à l’extraction de caractéristiques, comme la compression de données, le débruitage d’images, la détection d’anomalies et la reconnaissance faciale. Certains types d’auto-encodeurs, tels que les auto-encodeurs variationnels (VAE) et les auto-encodeurs adversariaux (AAE), adaptent l’architecture des auto-encodeurs pour une utilisation dans des tâches génératives, telles que la génération d’images ou la génération de données de séries temporelles.

Suivre la visite guidée d’IBM watsonx.ai

Un studio d’IA nouvelle génération destiné aux entreprises qui permet aux générateurs d’IA puissent entraîner, valider, ajuster et déployer des modèles d’intelligence artificielle est désormais disponible. Essayez IBM watsonx.ai gratuitement.

Contenu connexe

Abonnez-vous aux newsletters d'IBM

Auto-encodeurs et encodeurs-décodeurs

Bien que tous les modèles d’auto-encodeurs incluent à la fois un encodeur et un décodeur, tous les modèles d’encodeurs-décodeurs ne sont pas des auto-encodeurs.

Dans les frameworks encodeurs-décodeurs, un réseau d’encodage extrait les principales caractéristiques des données d’entrée, et un réseau de décodage utilise les caractéristiques extraites comme entrée. Ces frameworks interviennent dans divers modèles d’apprentissage profond : par exemple dans les architectures de réseaux neuronaux convolutifs (CNN), utilisées dans les tâches de vision par ordinateur comme la segmentation d'images, ou dans les architectures de réseaux de neurones récurrents (RNN), utilisées dans les tâches de séquence à séquence (seq2seq).

Dans la plupart des applications des modèles d’encodeurs-décodeurs, la sortie du réseau neuronal est différente de son entrée. Par exemple, dans les modèles de segmentation d’images tels que U-Net, le réseau d’encodage extrait les données de caractéristiques de l’image d’entrée afin de déterminer la classification sémantique des différents pixels. À partir de cette carte de caractéristiques et de la classification des pixels, le réseau de décodage construit ensuite des masques de segmentation pour chaque objet ou région de l’image. L’objectif de ces modèles d’encodeurs-décodeurs est d’étiqueter avec précision les pixels avec leur classe sémantique. Ils sont entraînés via un apprentissage supervisé, optimisant les prédictions du modèle par rapport à un ensemble d’images de vérité terrain étiquetées par des experts humains.

Les auto-encodeurs font référence à un sous-ensemble spécifique d’architectures d’encodeurs-décodeurs entraînées via un apprentissage non supervisé pour reconstruire leurs propres données d’entrée.

Comme ils ne s’appuient pas sur des données d’apprentissage étiquetées, les auto-encodeurs ne sont pas considérés comme une méthode d’apprentissage supervisée. Comme avec toutes les méthodes d’apprentissage non supervisé, les auto-encodeurs sont entraînés à découvrir des schémas cachés dans les données non étiquetées, plutôt qu’à prédire des schémas connus démontrés dans des données d’apprentissage étiquetées. Cependant, comme dans les modèles d’apprentissage supervisé, et contrairement à la plupart des exemples d’apprentissage non supervisé, les auto-encodeurs s’appuient sur une vérité terrain par rapport à laquelle ils peuvent comparer leur sortie : l’entrée d’origine elle-même (ou une version modifiée de celle-ci). C’est pourquoi on considère qu’ils entrent dans la catégorie « d’apprentissage autosupervisé », d’où le terme auto-encodeur.

Comment fonctionnent les auto-encodeurs ?

Les auto-encodeurs découvrent les variables latentes en faisant passer les données d’entrée dans un « goulot d’étranglement » avant qu’elles atteignent le décodeur. Cela oblige l’encodeur à apprendre à extraire et à transmettre uniquement les informations les plus adaptées à la reconstruction précise de l’entrée d’origine.

Bien que différentes variantes d’auto-encodeurs modifient certains éléments de leur réseau de neurones artificiels pour mieux s’adapter à des objectifs et à des types de données spécifiques, tous les auto-encodeurs partagent des éléments structurels clés :

L’encodeur comprend des couches qui encodent une représentation compressée des données d’entrée par réduction de la dimensionnalité. Dans un auto-encodeur type, les couches cachées du réseau neuronal contiennent un nombre de nœuds qui se réduisent progressivement par rapport à la couche d’entrée : au fur et à mesure que les données traversent les couches de l’encodeur, elles sont compressées dans un nombre réduit de dimensions.

Le goulot d’étranglement (ou « code ») contient la représentation la plus compressée de l’entrée : c’est à la fois la couche de sortie du réseau d’encodage et la couche d’entrée du réseau de décodage. L’un des objectifs fondamentaux de la conception et de l’entraînement d’un auto-encodeur est de découvrir le nombre minimum de caractéristiques (ou dimensions) importantes nécessaires à une reconstruction efficace des données d’entrée. La représentation de l’espace latent, c’est-à-dire le code émergeant de cette couche, est ensuite introduite dans le décodeur.

Dans le décodeur, des couches cachées dont le nombre de nœuds augmente progressivement décompressent (ou décodent) la représentation encodée des données, pour finir par reconstruire les données dans leur forme d’origine pré-encodage. Cette sortie reconstruite est ensuite comparée à la « vérité terrain », dans la plupart des cas, l’entrée d’origine, pour évaluer l’efficacité de l’auto-encodeur. La différence entre la sortie et la vérité terrain est ce que l’on appelle erreur de reconstruction.

Dans certaines applications d’auto-encodeurs, le décodeur peut être supprimé après l’entraînement : dans ce cas, le seul objectif du décodeur est d’entraîner l’encodeur. Nous pourrions comparer ce rôle à celui du discriminateur dans un réseau antagoniste génératif (GAN), qui est ensuite utilisé comme composant dans un autre réseau neuronal. Dans de nombreux auto-encodeurs, le décodeur continue de jouer un rôle après l’entraînement : par exemple, dans les VAE, le décodeur produit de nouveaux échantillons de données.

L’un des principaux avantages des auto-encodeurs par rapport à d’autres techniques de dimensionnalité comme l’analyse en composantes principales (PCA), c’est que les auto-encodeurs peuvent capturer des corrélations non linéaires complexes. En conséquence, les fonctions d’activation utilisées dans les auto-encodeurs sont généralement des fonctions non linéaires telles que la fonction sigmoïde.

Différents types d’auto-encodeurs font des ajustements par rapport à cette structure pour mieux s’adapter aux multiples tâches et aux divers types de données. En plus de sélectionner le type approprié de réseau neuronal (par exemple, une architecture CNN, une architecture RNN comme la longue mémoire à court terme, une architecture transformatrice ou un réseau neuronal simple), la conception d’un auto-encodeur implique plusieurs hyperparamètres :

  • Taille du code : la taille du goulot d’étranglement détermine la quantité de données à compresser. La taille du code peut également être utilisée comme un terme de régularisation : les ajustements de la taille du code sont un moyen de contrer le sur-ajustement ou le sous-ajustement.
  • Nombre de couches : la profondeur de l’auto-encodeur est mesurée par le nombre de couches de l’encodeur et du décodeur. Une plus grande profondeur permet des traitements plus complexes, alors qu’une profondeur plus petite offre une plus grande vitesse de traitement.
  • Nombre de nœuds par couche : généralement, le nombre de nœuds (ou « neurones ») diminue à chaque couche d’encodage, il atteint son minimum au niveau du goulot d’étranglement et il augmente à chaque couche de décodage. Mais dans certaines variantes, comme avec les auto-encodeurs épars, ce n’est pas toujours le cas. Le nombre de neurones peut également varier selon la nature des données d’entrée : par exemple, un auto-encodeur traitant de grandes images nécessiterait plus de neurones qu’un autre traitant des images plus petites.
  • Fonction de perte : lors de l’entraînement d’un auto-encodeur, la fonction de perte, qui mesure la perte de reconstruction entre la sortie et l’entrée, est utilisée pour optimiser les poids du modèle via la descente de gradient lors de la rétropropagation. Le ou les algorithmes idéaux pour la fonction de perte dépendent de la tâche pour laquelle l’auto-encodeur sera utilisé.
Auto-encodeurs sous-complets

Les auto-encodeurs sous-complets sont des structures d’auto-encodeur simples utilisées principalement pour la réduction de la dimensionnalité. Leurs couches masquées contiennent moins de nœuds que leurs couches d’entrée et de sortie, et la capacité de son goulot d’étranglement est fixe.

L’objectif de ce goulot d’étranglement est d’empêcher l’auto-encodeur d’effectuer un sur-ajustement pour s’adapter à ses données d’apprentissage. Sans limitation suffisante de la capacité du goulot d’étranglement, le réseau a tendance à apprendre la fonction identité entre l’entrée et la sortie : en d’autres termes, il pourrait apprendre à minimiser les pertes de reconstruction en copiant simplement l’entrée directement. En forçant une compression importante des données, le réseau neuronal doit apprendre à ne conserver que les caractéristiques les plus essentielles à la reconstruction.

Mais si l’encodeur et le décodeur ont une capacité suffisamment élevée, c’est-à-dire s’ils traitent des entrées de données volumineuses ou complexes, l’auto-encodeur (même avec un goulot d’étranglement) pourrait quand même apprendre la fonction identité, ce qui le rendrait inutile. Ce phénomène rend les auto-encodeurs sous-complets rigides et limite leur capacité.

Auto-encodeurs régularisés

Les auto-encodeurs régularisés comblent les lacunes des auto-encodeurs sous-complets en introduisant la régularisation : des techniques qui contraignent ou modifient la façon dont le modèle calcule l’erreur de reconstruction. Ces termes de régularisation réduisent non seulement les sur-ajustements, mais ils permettent également à l’auto-encodeur d’apprendre des caractéristiques ou des fonctions utiles.

Auto-encodeurs épars

Les auto-encodeurs épars (SAE) imposent une contrainte de parcimonie : au lieu de créer un goulot d’étranglement pour les informations en réduisant le nombre de nœuds à chaque couche cachée, les SAE créent un goulot d’étranglement en réduisant le nombre de nœuds qui peuvent être activés en même temps.

Alors qu’un auto-encodeur sous-complet standard utilise l’ensemble du réseau neuronal pour chaque observation, les auto-encodeurs s’appuyant sur une fonction de parcimonie sont pénalisés pour chaque neurone activé au-delà d’un certain seuil. Cela permet à l’encodeur et au décodeur d’avoir une capacité supérieure sans risque de sur-ajustement aux données d’apprentissage (car tous les neurones ne seront pas activés). Cela permet également aux couches cachées de contenir des nœuds dédiés à la découverte de caractéristiques spécifiques : la fonction de parcimonie garantit que malgré la pénalité, l’activation de ces nœuds « en vaut la peine » et sera effectuée uniquement si ces caractéristiques sont présentes.

Bien que le calcul de l’erreur de reconstruction et l’optimisation ultérieure des poids des paramètres par rétropropagation soient effectués séparément, cette optimisation est régularisée par la fonction de parcimonie. L’auto-encodeur est donc obligé d’apprendre la représentation de l’espace latent la plus efficace dans les contraintes de parcimonie données.

Les fonctions utilisées pour imposer une contrainte de parcimonie sont généralement la régularisation L1 ou la divergence K-L.

Divergence K-L
La divergence de Kullback-Leibler (K-L) est une mesure de dissimilarité entre deux distributions de probabilités. Dans le contexte des SAE, la pénalité infligée au réseau après chaque lot d’entraînement est proportionnelle à la divergence K-L entre la distribution cible des valeurs d’activation (la parcimonie souhaitée) et la distribution réelle des valeurs d’activation. Comme nous le verrons plus loin dans cet article, la divergence K-L est également utilisée pour optimiser la précision des distributions de probabilités apprises par les auto-encodeurs variationnels (VAE).

Auto-encodeurs contractifs

Introduits pour la première fois en 2011 par des chercheurs de l’Université de Montréal1, les auto-encodeurs contractifs sont conçus pour être insensibles aux variations mineures (ou « bruits ») des données d’entrée afin de réduire le sur-ajustement et de capturer plus efficacement les informations essentielles.

Pour ce faire, on ajoute un terme de régularisation lors de l’entraînement, qui pénalise le réseau lorsqu’il modifie la sortie, en réponse à des changements insuffisants dans l’entrée. Ce terme de pénalité est calculé à partir de deux concepts mathématiques :

  • La matrice jacobienne contient toutes les dérivées du premier ordre d’une fonction qui peuvent être utilisées pour la rétropropagation. Elle représente la façon dont les gradients du réseau changent lorsque l’entrée est modifiée.
  • La norme Frobenius est calculée comme suit : il s’agit de la « racine carrée de la somme des carrés absolus de ses éléments ».2 Elle mesure le gain moyen de la matrice dans chaque direction orthogonale de l’espace.3

Pour être plus précis, le terme de pénalité est la norme Frobenius de la matrice Jacobienne des activations de neurones dans le réseau d’encodage par rapport à l’entrée. Ce terme de pénalité et l’algorithme de fonction de perte utilisé pour réduire l’erreur de reconstruction sont antagonistes : la fonction de perte de reconstruction tend à observer les variations des données d’entrée tandis que le terme de pénalité tend à les ignorer. En combinant ces deux termes, le réseau est obligé d’apprendre une représentation compressée de l’entrée qui ne contient que les variables les plus conséquentes.

Auto-encodeurs débruiteurs

Les auto-encodeurs débruiteurs reçoivent des données d’entrée partiellement corrompues et sont entraînés à restaurer l’entrée d’origine en supprimant les informations inutiles grâce à la réduction de la dimensionnalité.

Contrairement à la plupart des auto-encodeurs, les auto-encodeurs débruiteurs ne disposent pas des données de vérité terrain en entrée. À la place, un bruit gaussien est ajouté aux données d’origine (par exemple, en ajoutant un bruit parasite aléatoire dans une image) et l’auto-encodeur débruiteur (DAE) apprend à le filtrer. Lors de l’entraînement du modèle, l’erreur de reconstruction de la sortie débruitée n’est pas mesurée par rapport aux données d’entrée corrompues, mais par rapport à l’image d’origine.

En plus d’empêcher le sur-ajustement, cette technique d’entraînement rend les auto-encodeurs débruiteurs très utiles pour nettoyer les images et les fichiers audio contenant des bruits parasites ou corrompus. Les auto-encodeurs débruiteurs servent également de paradigmes d’entraînement de base dans les modèles de génération d’images de pointe tels que Stable Diffusion.4

Auto-encodeurs variationnels

Les auto-encodeurs variationnels (VAE) sont des modèles génératifs qui apprennent des représentations compressées de leurs données d’apprentissage sous forme de distributions de probabilités, qui sont utilisées pour générer de nouveaux échantillons de données en créant des variations de ces représentations apprises.

La différence fondamentale entre les VAE et les autres types d’auto-encodeurs, c’est que si la plupart des auto-encodeurs apprennent des modèles à espace latent discret, les VAE apprennent des modèles à variables latentes continues. Plutôt qu’un vecteur d’encodage unique pour l’espace latent, les VAE modélisent deux vecteurs différents : un vecteur de moyenne, « µ », et un vecteur d’écart type, « σ ». Étant donné que ces vecteurs capturent les attributs latents sous forme de distributions de probabilités, c’est-à-dire qu’ils apprennent un encodage stochastique plutôt qu’un encodage déterministe, les VAE permettent l’interpolation et l’échantillonnage aléatoire, élargissant ainsi considérablement leurs capacités et leurs cas d’utilisation. En d’autres termes, les VAE sont des modèles d’IA générative.

En termes plus simples, les VAE apprennent à encoder des apprentissages de caractéristiques importants à partir des entrées des jeux de données sur lesquels ils sont entraînés d’une manière flexible et approximative qui leur permet de générer de nouveaux échantillons ressemblant aux données d’apprentissage d’origine. La fonction de perte utilisée pour minimiser l’erreur de reconstruction est régularisée par la divergence K-L entre la distribution de probabilités des données d’apprentissage (la distribution a priori) et la distribution des variables latentes apprises par le VAE (la distribution a posteriori). Cette fonction de perte régularisée permet aux VAE de générer de nouveaux échantillons qui ressemblent aux données sur lesquelles ils ont été entraînés tout en évitant le sur-ajustement, ce qui signifierait la génération de nouveaux échantillons trop identiques aux données d’origine.

Pour générer un nouvel échantillon, le VAE échantillonne un vecteur latent aléatoire (ε) à partir du système d’unités gaussiennes (lien externe à ibm.com). En d’autres termes, il sélectionne un point de départ aléatoire dans la distribution normale, le décale selon la moyenne de la distribution latente (µ) et le redimensionne en fonction de la variance de la distribution latente (σ). Ce processus, appelé le reparameterization trick5, évite l’échantillonnage direct de la distribution variationnelle : comme le processus est aléatoire, il n’a aucune dérivée, ce qui élimine le besoin de rétropropagation pendant le processus d’échantillonnage.

Lorsqu’un VAE est utilisé pour des tâches génératives, l’encodeur peut souvent être supprimé après l’entraînement. Les évolutions plus avancées des VAE, comme les VAE conditionnels, permettent à l’utilisateur de mieux contrôler les échantillons générés en fournissant des entrées conditionnelles qui modifient la sortie de l’encodeur.

Cas d’utilisation des auto-encodeurs

Les auto-encodeurs génératifs et déterministes s’appliquent à une grande variété de cas d’utilisation dans différents champs et types de données.

  • Compression des données : les auto-encodeurs apprennent naturellement une représentation compressée des données d’entrée.
  • Réduction de la dimensionnalité : les encodages appris par les auto-encodeurs peuvent être utilisés comme entrées dans les réseaux neuronaux composites plus grands. La réduction de la dimensionnalité des données complexes permet d’extraire des caractéristiques pertinentes pour d’autres tâches, et d’augmenter la vitesse et l’efficacité de calcul.
  • Détection des anomalies et reconnaissance faciale : les auto-encodeurs peuvent détecter des anomalies, des fraudes ou d’autres défauts et, inversement, confirmer une véritable correspondance en déterminant la perte de reconstruction des données examinées par rapport à l’exemple « normal » ou « authentique » auquel elles sont comparées.
  • Débruitage de l’image et de l’audio : les auto-encodeurs peuvent supprimer les artefacts superflus ou les corruptions qui ne correspondent pas à la représentation de l’espace latent apprise par le réseau.
  • Reconstruction d'image : en inversant les techniques de débruitage apprises, les auto-encodeurs peuvent compléter les éléments manquants d’une image. Ils peuvent également être utilisés pour coloriser des images.
  • Tâches génératives : les VAE et les auto-encodeurs adversariaux (AAE), qui apprennent des distributions probabilistes similaires à celles apprises par les VAE mais qui s’appuient sur un réseau de discriminateurs antagonistes (similaire aux réseaux antagonistes génératifs) et non sur la divergence K-L, ont été utilisés avec succès pour les tâches génératives. Les principales applications génératives des auto-encodeurs incluent le modèle Dall-E original d’OpenAI pour la génération d’images6 et même la génération de structures moléculaires utilisées pour les médicaments.7
Solutions connexes
watsonx.ai

Entraînez, validez, ajustez et déployez en toute facilité des capacités d’IA générative et de machine learning ainsi que des modèles de fondation, et créez des applications d’IA beaucoup plus rapidement, avec seulement une fraction des données disponibles.

Découvrez watsonx.ai

Ressources sur les auto-encodeurs Apprentissage supervisé et non supervisé : quelle est la différence ?

Cet article décrit les bases de deux approches en science des données : l’apprentissage supervisé et l’apprentissage non supervisé. Découvrez quelle approche convient le mieux à votre entreprise.

Apprentissage profond et apprentissage par renforcement

Une introduction à deux des disciplines les plus recherchées dans le domaine du machine learning. Tout d’abord, découvrez la théorie sur laquelle s’appuient les réseaux neuronaux et plusieurs architectures modernes d’apprentissage profond. Une fois que vous aurez développé quelques modèles d’apprentissage profond, le cours se concentrera sur l’apprentissage par renforcement.

Le nouveau modèle de fondation géospatial d’IBM

Fruit de la collaboration entre IBM et la NASA, le modèle watsonx.ai est conçu pour convertir les données satellites en cartes haute résolution des inondations, des incendies et d’autres modifications du paysage afin de révéler le passé de notre planète et de donner un aperçu de son avenir. IBM a construit le modèle sur un auto-encodeur masqué pour le traitement vidéo et l’a adapté aux images satellites.

Passez à l’étape suivante

Entraînez, validez, ajustez et déployez en toute facilité des capacités d’IA générative et de machine learning ainsi que des modèles de fondation, et créez des applications d’IA beaucoup plus rapidement, avec seulement une fraction des données disponibles, avec IBM watsonx.ai, un studio d’entreprise nouvelle génération pour les générateurs d’IA.

Commencer votre essai gratuit Réserver une démo live
Notes de bas de page

1 « Contractive Auto-Encoders: Explicit Invariance During Feature Extraction », Proceedings of the 28th International Conference on Machine Learning, juillet 2011
2 « Frobenius Norm », Wolfram Mathworld
3 « Matrix Norms », UC Berkeley, février 2021
4 « High-Resolution Image Synthesis With Latent Diffusion Models », Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), juin 2022
5 « Auto-Encoding Variational Bayes », arXiv, décembre 2013 (dernière mise à jour 10 décembre 2022)
6 « DALL-E: Creating Images from Text », OpenAI, 5 janvier 2021
7 « Junction Tree Variational Autoencoder for Molecular Graph Generation », Proceedings of the 35th International Conference on Machine Learning, juillet 2018