Un autoencodeur est un type de réseau neuronal artificiel (NN) utilisé principalement pour les tâches d'apprentissage non supervisé, en particulier la réduction de la dimensionnalité et l'extraction de caractéristiques. Son objectif fondamental est d'apprendre une représentation comprimée (codage) des données d'entrée, généralement en entraînant le réseau à reconstruire ses propres entrées. Il se compose de deux parties principales : un encodeur qui cartographie les données d'entrée dans un espace latent de dimension inférieure, et un décodeur qui reconstruit les données d'origine à partir de cette représentation comprimée. Ce processus oblige l'autoencodeur à capturer les caractéristiques les plus saillantes des données d'apprentissage.
Types d'auto-codeurs
Il existe plusieurs variantes de l'architecture de base de l'autoencodeur, chacune étant conçue pour des tâches spécifiques :
- Autoencodeurs de débruitage : Formés pour reconstruire une version propre d'une entrée qui a été corrompue par du bruit. Cela les rend robustes pour des tâches telles que le débruitage d'images. En savoir plus sur les autoencodeurs de débruitage.
- Autoencodeurs épars : Introduisent une pénalité de sparsité (une forme de régularisation) sur la couche de goulot d'étranglement, forçant le réseau à apprendre des représentations où seuls quelques nœuds sont actifs à la fois.
- Autoencodeurs variationnels (VAE) : Un modèle d'IA génératif qui apprend une cartographie probabiliste de l'espace latent, ce qui lui permet de générer de nouveaux échantillons de données similaires aux données d'entraînement. Lire l'article sur les VAE.
- Autoencodeurs contractifs : Ajoute un terme de pénalité à la fonction de perte pour encourager l'encodeur à apprendre des représentations qui sont robustes aux petits changements dans l'entrée.
Applications dans le monde réel
Les autoencodeurs sont des outils polyvalents utilisés dans diverses applications d'apprentissage machine (ML) :
- Détection des anomalies : En apprenant les schémas normaux des données, les autoencodeurs peuvent identifier les valeurs aberrantes ou les anomalies. Si l'erreur de reconstruction pour un point de données spécifique est élevée, cela suggère que l'entrée est significativement différente des données d'apprentissage, indiquant potentiellement une anomalie comme des transactions frauduleuses dans la finance ou un équipement défectueux dans la fabrication. Explore davantage la détection des anomalies.
- Compression et débruitage d'images : Les autoencodeurs peuvent apprendre des représentations compactes d'images, ce qui permet d'effectuer une compression efficace. Les autoencodeurs de débruitage sont spécifiquement utilisés pour supprimer le bruit des images, ce qui est précieux dans l'analyse d'images médicales (par exemple, pour améliorer les IRM ou les tomodensitogrammes) ou pour restaurer de vieilles photographies. Voir les solutions d'imagerie médicale.
- Réduction de la dimensionnalité : Semblables à l'analyse en composantes principales (ACP), les autoencodeurs réduisent les dimensions des données mais peuvent capturer des relations complexes et non linéaires que l'ACP ne peut pas capturer. Cela est utile pour la visualisation des données et comme étape de prétraitement pour d'autres modèles ML.
- Apprentissage des caractéristiques : La partie encodeur peut être utilisée comme extracteur de caractéristiques pour des tâches en aval telles que la classification d'images ou la détection d'objets, fournissant souvent des caractéristiques plus robustes que les données brutes. Bien que des modèles comme Ultralytics YOLO utilisent des dorsales spécialisées, les principes de l'autoencodeur informent l'apprentissage de la représentation.
Autoencodeurs et concepts connexes
- ACP : Bien que les deux réduisent la dimensionnalité, l'ACP est limitée aux transformations linéaires. Les autoencodeurs, qui sont des réseaux neuronaux, peuvent apprendre des mappages non linéaires complexes, ce qui permet souvent d'obtenir de meilleures représentations pour des ensembles de données complexes.
- GANs : Les réseaux adversoriels génératifs (GAN) sont principalement conçus pour générer de nouvelles données très réalistes. Bien que les VAE (un type d'autoencodeur) puissent également générer des données, ils se concentrent souvent sur l'apprentissage d'un espace latent bien structuré, alors que les GAN excellent dans la fidélité des résultats, parfois au détriment de l'interprétabilité de l'espace latent.
- CNN et transformateurs : Les autoencodeurs définissent un modèle architectural (codeur-décodeur). Ils utilisent souvent d'autres types de réseaux comme les réseaux neuronaux convolutifs (CNN) pour les données d'image ou les transformateurs pour les données séquentielles comme blocs de construction au sein du codeur et du décodeur.
Outils et mise en oeuvre
Les autoencodeurs peuvent être mis en œuvre à l'aide de frameworks populaires d'apprentissage profond (DL) :
Des plateformes comme Ultralytics HUB facilitent le flux de travail global de ML, y compris la gestion des données et l'entraînement des modèles, bien qu'elles soient principalement axées sur des tâches supervisées comme la détection et la segmentation plutôt que sur l'entraînement d'autoencodeurs non supervisés.
Comment fonctionnent les autoencodeurs ?
Le fonctionnement d'un autoencodeur comporte deux étapes : l'encodage et le décodage.
La formation consiste à alimenter le réseau en données d'entrée et à comparer la sortie (données reconstruites) avec l'entrée originale à l'aide d'une fonction de perte, telle que l'erreur quadratique moyenne (EQM) pour les données continues ou l'entropie croisée binaire pour les données binaires. Les poids du réseau sont ajustés à l'aide de la rétropropagation et d'un algorithme d'optimisation comme Adam ou SGD pour minimiser cette erreur de reconstruction.