autoencoder

Les Autoencoders – modèles d’apprentissage non supervisé

Théophile L

Théophile L

3 min

Aujourd’hui nous nous intéressons à une famille de méthodes d’apprentissage non supervisé, les autoencoders.

Autoencoder : Définition

Les auto encodeurs sont des réseaux de neurones un peu particuliers qui possèdent exactement le même nombre de neurones sur leur couche d’entrée et leur couche de sortie. Le but pour un auto encodeur est d’avoir une sortie la plus proche de l’entrée !

L’apprentissage est donc « auto-supervisé » car la loss à minimiser est le coût de reconstruction entre la sortie et l’entrée. Les données n’ont donc pas à être étiquetées, car elles sont leurs propres étiquettes, ce qui fait donc de ce modèle un modèle non supervisé.

Architecture d’un autoencoder

Un autoencoder a une architecture très spécifique, car les couches cachées sont plus petites que les couches d’entrée. On appelle ce type d’architecture une architecture « bottleneck ». On peut décomposer un auto encodeur en deux parties à gauche et à droite de ce « bottleneck ».

La partie gauche s’appelle l’encodeur. L’encodeur transforme l’entrée en une représentation dans un espace de dimension plus faible appelé espace latent. L’encodeur compresse donc l’entrée dans une représentation moins coûteuse.

La partie droite est appelée décodeur, car elle doit reconstruire à l’aide de la représentation latente de l’entrée, une sortie la plus fidèle à l’entrée.

autoencoder
Schéma inspiré d’un cours de Fabien Moutarde - Mines de Paris (2021)

Lors de l’apprentissage, l’auto encodeur va donc apprendre à chercher à garder le plus d’information possible entre l’entrée et l’espace latent, afin que le décodeur ait les informations les plus essentielles pour reconstruire l’image. Ainsi, l’encodeur apprend les composantes les plus importantes d’une entrée pour avoir la meilleure compression possible.

À première vue, cela ressemble fortement à l’analyse en composantes principales (ACP ou PCA en anglais). Cependant, les auto encodeurs permettent d’ajouter des non-linéarités grâce aux fonctions d’activation et à leur structure de réseau de neurones, ce qui distingue un auto encodeur simple d’une ACP.

Généralisation : autoencodeurs débruiteurs

Ce principe d’auto encodeur a été généralisé à des tâches plus variées, en particulier dans les tâches de débruitage (on parle de denoising AE en anglais). Après avoir appris comment représenter de manière optimale les entrées, en fournissant à l’auto encodeur des entrées bruitées, il est capable de donner en sortie des données débruitées qui sont très proches de l’entrée originale.

Modèles génératifs : l’espace latent

Les auto encodeurs sont aussi très utilisés pour la création de nouvelles entrées. Dans ce cas- là on utilise la partie décodeur pour créer des sorties à partir de vecteurs de l’espace latent. En choisissant des vecteurs « proches » d’entrée, la sortie y ressemblera fortement. Par exemple, en moyennant des vecteurs correspondant à des entrées du même type, la sortie sera de ce type-là. 

Distribution dans l’espace latent

Cette arithmétique est une des caractéristiques de l’espace latent et l’on a des résultats encore plus intéressants. Comme on peut associer les vecteurs de l’espace latent à leur sortie du décodeur, cette arithmétique se transmet à la sortie ! Par exemple, en additionnant un vecteur correspondant à un homme avec lunettes dans l’espace avec un correspondant à une femme sans lunettes et en soustrayant le vecteur correspondant à un homme sans lunettes, on obtient des images de femmes avec lunettes. 

Il y a également une transformation continue entre l’espace latent et la sortie. Si on fait varier continûment un vecteur de l’espace latent, on obtient une transformation continue dans l’espace de sortie.

Interpolating

L’intérêt des autoencodeurs que nous avons découvert ici est que ces derniers ne nécessitent pas de données étiquetées. Ces dernières sont très souvent longues à créer, car il faut qu’une personne labellise des centaines voir des milliers de données une à une.

De plus, comme on vient de le voir, la partie décodeur peut servir de modèle génératif, ce qui peut être utile pour faire de la data augmentation pour entraîner d’autres modèles.

 En dehors de ces exemples d’utilisation, le champ d’applications des autoencoders est très vaste et très prometteur.

Si cet article vous a intéressé et que vous souhaitez en découvrir plus sur les possibilités du Deep Learning, notre formation Data Scientist vous apportera tous les outils et connaissances nécessaires pour vous former au métier de Data Scientist.

Si vous vous interrogez sur nos formations, n’hésitez  pas à nous contacter et à prendre rendez-vous avec notre équipe.