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.
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 neuronaux 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.
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 :
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é.
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.
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.
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).
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 :
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.
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
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. 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.
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.
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.
Découvrez comment choisir le modèle de fondation d’IA le mieux adapté à votre cas d’utilisation.
Découvrez comment les PDG peuvent trouver un équilibre entre la valeur que l’IA générative peut créer, l’investissement qu’elle exige et les risques qu’elle introduit.
Vous voulez obtenir un meilleur retour sur vos investissements dans l’IA ? Découvrez comment la mise à l’échelle de l’IA générative dans des domaines clés favorise le changement en aidant vos meilleurs éléments à créer et à fournir de nouvelles solutions innovantes.
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 « 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