Fondamentaux de lâIA
Qu’est-ce qu’un Autoencodeur ?
Si vous avez lu des articles sur les techniques dâapprentissage non supervisÃĐ, vous avez peut-Être dÃĐjà entendu parler du terme âautoencodeurâ. Les autoencodeurs sont lâun des principaux moyens par lesquels les modÃĻles dâapprentissage non supervisÃĐ sont dÃĐveloppÃĐs. Mais quâest-ce quâun autoencodeur exactement ?
En rÃĐsumÃĐ, les autoencodeurs fonctionnent en prenant des donnÃĐes, en les compressant et en les codant, puis en reconstruisant les donnÃĐes à partir de la reprÃĐsentation codÃĐe. Le modÃĻle est entraÃŪnÃĐ jusquâà ce que la perte soit minimisÃĐe et que les donnÃĐes soient reproduites aussi fidÃĻlement que possible. à travers ce processus, un autoencodeur peut apprendre les caractÃĐristiques importantes des donnÃĐes. MÊme si câest une dÃĐfinition rapide dâun autoencodeur, il serait bÃĐnÃĐfique de prendre un regard plus approfondi sur les autoencodeurs et de mieux comprendre comment ils fonctionnent. Cet article tentera de dÃĐmystifier les autoencodeurs, en expliquant lâarchitecture des autoencodeurs et leurs applications.
Quâest-ce quâun Autoencodeur ?
Les autoencodeurs sont des rÃĐseaux de neurones. Les rÃĐseaux de neurones sont composÃĐs de plusieurs couches, et lâaspect dÃĐfinissant dâun autoencodeur est que les couches dâentrÃĐe contiennent exactement autant dâinformations que la couche de sortie. La raison pour laquelle la couche dâentrÃĐe et la couche de sortie ont le mÊme nombre dâunitÃĐs est que lâautoencodeur vise à reproduire les donnÃĐes dâentrÃĐe. Il produit une copie des donnÃĐes aprÃĻs les avoir analysÃĐes et reconstruites de maniÃĻre non supervisÃĐe.
Les donnÃĐes qui passent à travers un autoencodeur ne sont pas simplement mappÃĐes directement de lâentrÃĐe à la sortie, ce qui signifie que le rÃĐseau ne copie pas simplement les donnÃĐes dâentrÃĐe. Il y a trois composants dans un autoencodeur : une partie de codage (entrÃĐe) qui comprime les donnÃĐes, un composant qui gÃĻre les donnÃĐes compressÃĐes (ou goulet dâÃĐtranglement), et une partie de dÃĐcodage (sortie). Lorsque les donnÃĐes sont introduites dans un autoencodeur, elles sont codÃĐes, puis compressÃĐes pour atteindre une taille plus petite. Le rÃĐseau est ensuite entraÃŪnÃĐ sur les donnÃĐes codÃĐes et compressÃĐes, et il produit une recrÃĐation de ces donnÃĐes.
Pourquoi voudriez-vous entraÃŪner un rÃĐseau pour simplement reconstruire les donnÃĐes qui lui sont fournies ? La raison est que le rÃĐseau apprend lâÂŦ essence Âŧ ou les caractÃĐristiques les plus importantes des donnÃĐes dâentrÃĐe. Une fois que vous avez entraÃŪnÃĐ le rÃĐseau, un modÃĻle peut Être crÃĐÃĐ pour synthÃĐtiser des donnÃĐes similaires, avec lâajout ou la soustraction de certaines caractÃĐristiques ciblÃĐes. Par exemple, vous pourriez entraÃŪner un autoencodeur sur des images granuleuses, puis utiliser le modÃĻle entraÃŪnÃĐ pour supprimer le grain/le bruit de lâimage.
Architecture de lâAutoencodeur
Examinons lâarchitecture dâun autoencodeur. Nous allons discuter de lâarchitecture principale dâun autoencodeur ici. Il existe des variations de cette architecture gÃĐnÃĐrale que nous allons discuter dans la section ci-dessous.

Photo : Michela Massi via Wikimedia Commons,(https://commons.wikimedia.org/wiki/File:Autoencoder_schema.png)
Comme mentionnÃĐ prÃĐcÃĐdemment, un autoencodeur peut essentiellement Être divisÃĐ en trois composants diffÃĐrents : lâencodeur, un goulet dâÃĐtranglement et le dÃĐcodeur.
La partie encodeur de lâautoencodeur est gÃĐnÃĐralement un rÃĐseau feedforward, densÃĐment connectÃĐ. Le but des couches dâencodage est de prendre les donnÃĐes dâentrÃĐe et de les compresser dans une reprÃĐsentation de lâespace latent, en gÃĐnÃĐrant une nouvelle reprÃĐsentation des donnÃĐes qui a une dimensionnalitÃĐ rÃĐduite.
Les couches de code, ou le goulet dâÃĐtranglement, traitent de la reprÃĐsentation compressÃĐe des donnÃĐes. Le code du goulet dâÃĐtranglement est soigneusement conçu pour dÃĐterminer les parties les plus pertinentes des donnÃĐes observÃĐes, ou pour le dire autrement, les caractÃĐristiques des donnÃĐes qui sont les plus importantes pour la reconstruction des donnÃĐes. Lâobjectif est de dÃĐterminer quels aspects des donnÃĐes doivent Être prÃĐservÃĐs et lesquels peuvent Être ÃĐliminÃĐs. Le code du goulet dâÃĐtranglement doit ÃĐquilibrer deux considÃĐrations diffÃĐrentes : la taille de la reprÃĐsentation (à quel point la reprÃĐsentation est compacte) et la pertinence des variables/caractÃĐristiques. Le goulet dâÃĐtranglement effectue une activation ÃĐlÃĐment par ÃĐlÃĐment sur les poids et les biais du rÃĐseau. La couche du goulet dâÃĐtranglement est ÃĐgalement parfois appelÃĐe reprÃĐsentation latente ou variables latentes.
La couche dÃĐcodeur est responsable de prendre les donnÃĐes compressÃĐes et de les convertir en une reprÃĐsentation avec les mÊmes dimensions que les donnÃĐes dâorigine non modifiÃĐes. La conversion est effectuÃĐe avec la reprÃĐsentation de lâespace latent qui a ÃĐtÃĐ crÃĐÃĐe par lâencodeur.
Lâarchitecture la plus basique dâun autoencodeur est une architecture feed-forward, avec une structure similaire à un perceptron à une seule couche utilisÃĐ dans les perceptrons multicouches. Tout comme les rÃĐseaux de neurones feed-forward rÃĐguliers, lâauto-encodeur est entraÃŪnÃĐ Ã lâaide de la rÃĐtropropagation.
Attributs de lâAutoencodeur
Il existe diffÃĐrents types dâautoencodeurs, mais ils partagent tous certaines propriÃĐtÃĐs.
Les autoencodeurs apprennent automatiquement. Ils nâont pas besoin dâÃĐtiquettes, et sâils reçoivent suffisamment de donnÃĐes, il est facile dâobtenir un autoencodeur qui atteint de hautes performances sur un type spÃĐcifique de donnÃĐes dâentrÃĐe.
Les autoencodeurs sont spÃĐcifiques aux donnÃĐes. Cela signifie quâils ne peuvent compresser que des donnÃĐes qui sont trÃĻs similaires à celles sur lesquelles lâautoencodeur a dÃĐjà ÃĐtÃĐ entraÃŪnÃĐ. Les autoencodeurs sont ÃĐgalement perdus, ce qui signifie que les sorties du modÃĻle seront dÃĐgradÃĐes par rapport aux donnÃĐes dâentrÃĐe.
Lors de la conception dâun autoencodeur, les ingÃĐnieurs en apprentissage automatique doivent prÊter attention à quatre hyperparamÃĻtres de modÃĻle diffÃĐrents : la taille du code, le nombre de couches, les nÅuds par couche et la fonction de perte.
La taille du code dÃĐtermine le nombre de nÅuds qui commencent la partie mÃĐdiane du rÃĐseau, et moins de nÅuds compressent les donnÃĐes davantage. Dans un autoencodeur profond, le nombre de couches peut Être nâimporte quel nombre que lâingÃĐnieur juge appropriÃĐ, mais le nombre de nÅuds par couche doit diminuer à mesure que lâencodeur progresse. Inversement, le nombre de nÅuds par couche doit augmenter à mesure que les couches du dÃĐcodeur sâapprochent de la derniÃĻre couche. Enfin, la fonction de perte dâun autoencodeur est gÃĐnÃĐralement soit lâentropie croisÃĐe binaire, soit lâerreur quadratique moyenne. Lâentropie croisÃĐe binaire est appropriÃĐe pour les cas oÃđ les valeurs dâentrÃĐe des donnÃĐes sont dans une plage de 0 à 1.
Types dâAutoencodeurs
Comme mentionnÃĐ prÃĐcÃĐdemment, il existe des variations de lâarchitecture classique de lâautoencodeur. Examinons les diffÃĐrentes architectures dâautoencodeurs.
Peu dense

Photo : Michela Massi via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Autoencoder_sparso.png)
Alors que les autoencodeurs ont gÃĐnÃĐralement un goulet dâÃĐtranglement qui comprime les donnÃĐes en rÃĐduisant le nombre de nÅuds, les autoencodeurs peu denses sont une alternative à ce format de fonctionnement typique. Dans un rÃĐseau peu dense, les couches cachÃĐes maintiennent la mÊme taille que les couches dâencodeur et de dÃĐcodeur. Au lieu de cela, les activations au sein dâune couche donnÃĐe sont pÃĐnalisÃĐes, de sorte que la fonction de perte capture mieux les caractÃĐristiques statistiques des donnÃĐes dâentrÃĐe. Pour le dire autrement, alors que les couches cachÃĐes dâun autoencodeur peu dense ont plus dâunitÃĐs quâun autoencodeur traditionnel, seuls un certain pourcentage dâentre eux sont actifs à un moment donnÃĐ. Les fonctions dâactivation les plus impactantes sont prÃĐservÃĐes et les autres sont ignorÃĐes, et cette contrainte aide le rÃĐseau à dÃĐterminer les caractÃĐristiques les plus saillantes des donnÃĐes dâentrÃĐe.
Contractif
Les autoencodeurs contractifs sont conçus pour Être rÃĐsistants aux petites variations des donnÃĐes, en maintenant une reprÃĐsentation cohÃĐrente des donnÃĐes. Cela est rÃĐalisÃĐ en appliquant une pÃĐnalitÃĐ Ã la fonction de perte. Cette technique de rÃĐgularisation est basÃĐe sur la norme de Frobenius de la matrice jacobienne pour les activations de lâencodeur dâentrÃĐe. Lâeffet de cette technique de rÃĐgularisation est que le modÃĻle est forcÃĐ de construire un codage oÃđ les entrÃĐes similaires auront des codages similaires.
Convolutionnel
Les autoencodeurs convolutionnels codent les donnÃĐes dâentrÃĐe en les divisant en sous-sections, puis en les convertissant en signaux simples qui sont additionnÃĐs pour crÃĐer une nouvelle reprÃĐsentation des donnÃĐes. Semblable aux rÃĐseaux de neurones convolutionnels, un autoencodeur convolutionnel se spÃĐcialise dans lâapprentissage de donnÃĐes dâimage, et il utilise un filtre qui est dÃĐplacÃĐ sur toute la section dâimage section par section. Les codages gÃĐnÃĐrÃĐs par la couche dâencodeur peuvent Être utilisÃĐs pour reconstruire lâimage, la reflÃĐter ou modifier sa gÃĐomÃĐtrie. Une fois que les filtres ont ÃĐtÃĐ appris par le rÃĐseau, ils peuvent Être utilisÃĐs sur nâimporte quelle entrÃĐe suffisamment similaire pour extraire les caractÃĐristiques de lâimage.
Denoising

Photo : MAL via Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:ROF_Denoising_Example.png)
Les autoencodeurs de dÃĐbruitage introduisent du bruit dans le codage, aboutissant à un codage qui est une version corrompue des donnÃĐes dâentrÃĐe originales. Cette version corrompue des donnÃĐes est utilisÃĐe pour entraÃŪner le modÃĻle, mais la fonction de perte compare les valeurs de sortie avec les donnÃĐes dâentrÃĐe originales et non avec les donnÃĐes dâentrÃĐe corrompues. Lâobjectif est que le rÃĐseau sera capable de reproduire la version originale non corrompue de lâimage. En comparant les donnÃĐes corrompues avec les donnÃĐes originales, le rÃĐseau apprend quelles caractÃĐristiques des donnÃĐes sont les plus importantes et lesquelles sont des corruptions/non importantes. En dâautres termes, pour que le modÃĻle dÃĐbruite les images corrompues, il doit avoir extrait les caractÃĐristiques importantes des donnÃĐes dâimage.
Variationnel
Les autoencodeurs variationnels fonctionnent en faisant des hypothÃĻses sur la façon dont les variables latentes des donnÃĐes sont distribuÃĐes. Un autoencodeur variationnel produit une distribution de probabilitÃĐ pour les diffÃĐrentes caractÃĐristiques des images dâentraÃŪnement/les attributs latents. Lors de lâentraÃŪnement, lâencodeur crÃĐe des distributions latentes pour les diffÃĐrentes caractÃĐristiques des images dâentrÃĐe.
Â

Lors de lâentraÃŪnement du rÃĐseau, les donnÃĐes codÃĐes sont analysÃĐes et le modÃĻle de reconnaissance produit deux vecteurs, en tirant les moyennes et les ÃĐcarts types des images. Une distribution est crÃĐÃĐe sur la base de ces valeurs. Cela est fait pour les diffÃĐrents ÃĐtats latents. Le dÃĐcodeur prend ensuite des ÃĐchantillons alÃĐatoires de la distribution correspondante et les utilise pour reconstruire les entrÃĐes initiales du rÃĐseau.
Applications des Autoencodeurs
Les autoencodeurs peuvent Être utilisÃĐs pour une grande variÃĐtÃĐ dâapplications, mais ils sont gÃĐnÃĐralement utilisÃĐs pour des tÃĒches comme la rÃĐduction de dimension, le dÃĐbruitage de donnÃĐes, lâextraction de caractÃĐristiques, la gÃĐnÃĐration dâimages, la prÃĐdiction de sÃĐquence à sÃĐquence et les systÃĻmes de recommandation.
Le dÃĐbruitage de donnÃĐes consiste à utiliser les autoencodeurs pour supprimer le grain/le bruit des images. De mÊme, les autoencodeurs peuvent Être utilisÃĐs pour rÃĐparer dâautres types de dommages dâimage, comme les images floues ou les images manquantes. La rÃĐduction de dimension peut aider les rÃĐseaux de haute capacitÃĐ Ã apprendre des caractÃĐristiques utiles des images, ce qui signifie que les autoencodeurs peuvent Être utilisÃĐs pour amÃĐliorer lâentraÃŪnement dâautres types de rÃĐseaux de neurones. Câest ÃĐgalement vrai pour lâutilisation des autoencodeurs pour lâextraction de caractÃĐristiques, car les autoencodeurs peuvent Être utilisÃĐs pour identifier les caractÃĐristiques dâautres ensembles de donnÃĐes pour entraÃŪner dâautres modÃĻles.
En termes de gÃĐnÃĐration dâimages, les autoencodeurs peuvent Être utilisÃĐs pour gÃĐnÃĐrer de fausses images humaines ou des personnages animÃĐs, ce qui a des applications dans la conception de systÃĻmes de reconnaissance faciale ou lâautomatisation de certains aspects de lâanimation.
Les modÃĻles de prÃĐdiction de sÃĐquence à sÃĐquence peuvent Être utilisÃĐs pour dÃĐterminer la structure temporelle des donnÃĐes, ce qui signifie quâun autoencodeur peut Être utilisÃĐ pour gÃĐnÃĐrer la prochaine ÃĐvÃĐnement dans une sÃĐquence. Pour cette raison, un autoencodeur pourrait Être utilisÃĐ pour gÃĐnÃĐrer des vidÃĐos. Enfin, les autoencodeurs profonds peuvent Être utilisÃĐs pour crÃĐer des systÃĻmes de recommandation en dÃĐtectant des modÃĻles relatifs à lâintÃĐrÊt de lâutilisateur, lâencodeur analysant les donnÃĐes dâengagement de lâutilisateur et le dÃĐcodeur crÃĐant des recommandations qui correspondent aux modÃĻles ÃĐtablis.












