
Une introduction douce aux auto-encodeurs et à l’espace latent
Les calculs lourds sont aujourd’hui un problème bien connu dans divers algorithmes de ML, en particulier lorsque l’IA générative est appliquée au texte, aux images et à d’autres données non structurées.
L’une des principales approches pour atténuer ce problème consiste à compresser les données d’entrée dans une représentation de dimension inférieure tout en préservant le contexte principal. Il existe différentes méthodes pour atteindre cet objectif, notamment les auto-encodeurs, dont nous parlerons dans cet article.
Par souci de simplicité, dans cet article, nous nous concentrerons sur les encodeurs automatiques basés sur des images, mais n’oubliez pas qu’ils peuvent également être appliqués à d’autres types de données.
Idée
Les auto-encodeurs sont un type de réseau neuronal utilisé pour l’apprentissage non supervisé. Leur architecture se compose de trois composants principaux :
- Encodeur. La première partie du réseau neuronal qui prend les données d’entrée et réduit progressivement sa dimensionnalité à travers ses couches, atteignant finalement le goulot d’étranglement.
- Goulot. Couche réseau avec la plus petite dimensionnalité qui contient la représentation latente des données d’entrée.
- Décodeur. Partie du réseau connectée à la sortie du goulot d’étranglement qui élargit progressivement la dimensionnalité des données. En conséquence, au niveau de sa dernière couche, il renvoie des données de la même taille que celles initialement transmises à l’encodeur.

Pour les images, l’encodeur et le décodeur sont généralement présentés comme des réseaux de neurones convolutifs.
Dans les auto-encodeurs, notre objectif ultime lors de la formation est de faire en sorte que le réseau transforme les données d’entrée en une représentation plus compressée dans le goulot d’étranglement sans perdre trop d’informations. Lors de l’inférence, nous pouvons transmettre les données à l’encodeur, extraire l’intégration résultante du goulot d’étranglement, puis l’utiliser à nos propres fins.
Comprenons comment fonctionne la formation dans les auto-encodeurs.
Entraînement
L’avantage des auto-encodeurs est qu’ils ne nécessitent aucune donnée étiquetée ! Voyons comment ils fonctionnent.
Comme mentionné précédemment, une image d’entrée est transmise au réseau, où elle est compressée à une taille plus petite, puis reconstruite à sa dimension d’origine. La question que nous devrions nous poser est de savoir ce que nous voulons que le décodeur restitue.
Comme vous l’avez peut-être deviné, le décodeur peut simplement essayer de reconstruire l’image originale à partir de la représentation compressée dans le goulot d’étranglement. Pourquoi le faire ?
L’idée derrière cela est simple :
- Si la représentation compressée du goulot d’étranglement capture bien les principales caractéristiques de l’entrée de l’encodeur, il devrait alors être relativement facile pour le décodeur d’utiliser ces informations pour reconstruire l’image originale.
- Si le goulot d’étranglement ne parvient pas à capturer les principales caractéristiques, le décodeur ne sera pas en mesure de reconstruire de manière fiable l’image originale. Ainsi, le modèle sera pénalisé pour une mauvaise représentation compressée.
De cette façon, en demandant au décodeur de reconstruire l’image originale, nous forçons implicitement l’encodeur à produire une représentation latente riche mais compressée, aidant ainsi le décodeur à accomplir efficacement sa tâche.
L’espace dans lequel les données d’entrée sont projetées dans le goulot d’étranglement est appelé le espace latent.
Perte de reconstruction
Étant donné l’image originale et l’image reconstruite à partir du décodeur, quelle est la manière la plus simple de comparer la qualité générée ? La réponse évidente est de comparer les deux images au niveau des pixels à l’aide de la méthode Perte MSEqui, dans le contexte des auto-encodeurs, est appelé le perte de reconstruction.

La valeur de perte calculée est ensuite utilisée pour effectuer une rétropropagation afin de mettre à jour les pondérations du modèle.
Dimension de l’espace latent
La dimension de l’espace latent est un hyperparamètre important qui affecte directement les performances du décodeur.
D’une part, la dimension de l’espace latent doit être suffisante pour coder efficacement les principales caractéristiques d’entrée. En revanche, il ne doit pas être trop important pour conserver un taux de compression élevé.
Un exemple bien connu est la diffusion stable. Il utilise un auto-encodeur pour transformer l’image d’entrée, 512 x 512 x 3contenant 786 432 valeurs, dans un 64x64x4 image avec 16 384 valeurs, ce qui donne un taux de compression de 48x.
Autres applications d’encodeur automatique
Une astuce pour former les auto-encodeurs consiste à leur apprendre à supprimer le bruit des images. L’idée est simple : puisque les auto-encodeurs sont efficaces pour reconstruire les images originales, nous pourrions ajouter un léger bruit aux images d’entrée, puis leur demander de reconstruire les images originales.
L’avantage de cette méthode est que pour la formation, il suffit de disposer uniquement des images originales, auxquelles vous appliquerez ensuite du bruit.

Une autre application intéressante des encodeurs automatiques est l’inpainting d’images, qui consiste à transmettre des images avec des correctifs masqués à un modèle afin qu’il puisse démasquer et remplir les parties manquantes de l’image.
De même, les auto-encodeurs peuvent être entraînés pour supprimer des objets spécifiques des images. Ceci est particulièrement utile pour supprimer les filigranes.

Problème de bleuissement
En réalité, malgré sa simplicité, la perte MSE n’est pas parfaite pour les auto-encodeurs. Un problème courant lors de son utilisation est la tendance du décodeur à générer des images avec des pixels flous.
Par exemple, on pourrait imaginer une image de taille 512 x 512 avec deux régions verticales en noir et blanc qui ne se chevauchent pas. Nous prenons ensuite une ligne horizontale de cette image dont les pixels ressemblent à ceci :
[… 0 0 255 255 255 …]
Le modèle n’a aucune connaissance de la structure de l’image ; il essaie seulement de minimiser la perte MSE. Même si, pour cette image, un modèle faisait une prédiction comme [… 0 0 0 255 255 …]ce qui est quand même très bon car la région est décalée d’un seul pixel, la perte MSE dans ce cas serait plus élevée que dans le cas ci-dessous, ce qu’un modèle pourrait préférer :
[… 0 0 127 255 255 …]

Dans ce dernier scénario, malgré le MSE inférieur, le pixel du milieu représente un bord flou, visuellement peu attrayant.
Ce problème est résolu dans des variantes d’auto-encodeur plus avancées avec des fonctions de perte ajustées.
Conclusion
Comme nous pouvons le constater, les auto-encodeurs sont un concept simple mais puissant. En entraînant le décodeur à reconstruire l’image originale à partir de données compressées, nous ajustons progressivement l’encodeur pour produire des fonctionnalités plus informatives qui peuvent ensuite être extraites pour des tâches en aval.
En plus de la compression des données, nous avons vu que les encodeurs automatiques ont d’autres applications, telles que le débruitage des images, l’inpainting d’images et la suppression d’objets des images.
Toutes les images, sauf indication contraire, sont de l’auteur



