Les données bruyantes sont l'un des problèmes courants de l'apprentissage automatique, et les encodeurs automatiques sont une méthode efficace pour résoudre ces problèmes. Cet article présentera la structure et la méthode de formation correcte des auto-encodeurs.
Un auto-encodeur est un réseau neuronal artificiel d'apprentissage non supervisé utilisé pour apprendre l'encodage des données. Son objectif est de capturer les caractéristiques clés de l'image d'entrée en entraînant le réseau et en le convertissant en une représentation de faible dimension, souvent utilisée pour le traitement de réduction de dimensionnalité.
Autoencoder se compose de 3 parties :
1 Encodeur : un module qui compresse les données d'entrée de l'ensemble de test de validation dans une représentation codée, qui est généralement plus grande que l'entrée. données Plusieurs ordres de grandeur plus petits.
2. Goulot d'étranglement : Le module qui contient une représentation compressée des connaissances et constitue donc la partie la plus importante du réseau.
3. Décodeur : Un module qui aide le réseau à « décompresser » la représentation des connaissances et à reconstruire les données à partir de leur forme codée. Le résultat est ensuite comparé à la vérité terrain.
L'architecture entière ressemble à ceci, comme indiqué ci-dessous :
Encodeur
L'encodeur est un ensemble de blocs convolutifs suivi d'un module de mise en pool, qui compresse l'entrée du modèle dans une partie compacte appelée goulot d'étranglement.
Après le goulot d'étranglement se trouve le décodeur, qui consiste en une série de modules de suréchantillonnage pour restaurer les fonctionnalités compressées sous forme d'image. Dans le cas d'un simple auto-encodeur, la sortie devrait être la même que l'entrée à bruit réduit.
Cependant, pour les auto-encodeurs variationnels, il s'agit d'une toute nouvelle image formée à partir des informations fournies par le modèle en entrée.
Bottleneck
En tant que partie la plus importante du réseau neuronal, il limite le flux d'informations de l'encodeur vers le décodeur, ne laissant passer que les informations les plus importantes.
Étant donné que le goulot d'étranglement est conçu pour capturer les informations sur les caractéristiques possédées par l'image, nous pouvons dire que le goulot d'étranglement aide à former la représentation des connaissances de l'entrée. La structure codeur-décodeur nous aide à extraire plus d'informations de l'image sous forme de données et à établir des corrélations utiles entre les différentes entrées du réseau.
Le goulot d'étranglement de la représentation compressée en entrée empêche en outre le réseau neuronal de mémoriser l'entrée et de surajuster les données. Plus le goulot d’étranglement est petit, plus le risque de surapprentissage est faible. Mais de très petits goulots d'étranglement limitent la quantité d'informations pouvant être stockées, ce qui augmente le risque de fuite d'informations importantes hors de la couche de pooling de l'encodeur.
Decoder
Enfin, le décodeur est un ensemble de blocs de suréchantillonnage et de convolution utilisés pour reconstruire la sortie du goulot d'étranglement.
Étant donné que l'entrée du décodeur est une représentation de connaissances compressée, le décodeur agit comme un "décompresseur" et reconstruit l'image à partir de ses propriétés latentes.
Après avoir compris les résultats et les relations de l'auto-encodeur, voyons comment entraîner correctement l'auto-encodeur.
Il y a 4 hyperparamètres qui doivent être définis avant d'entraîner l'auto-encodeur :
1. Taille du code
La taille du code ou la taille du goulot d'étranglement est l'hyperparamètre le plus important pour régler l'auto-encodeur. La taille du goulot d'étranglement détermine la quantité de données qui doivent être compressées. Cela peut également être utilisé comme terme de régularisation.
2. Nombre de couches
Comme pour tous les réseaux de neurones, un hyperparamètre important pour le réglage des auto-encodeurs est la profondeur de l'encodeur et du décodeur. Alors que les profondeurs plus élevées augmentent la complexité du modèle, les profondeurs plus faibles traitent plus rapidement.
3. Nombre de nœuds par couche
Le nombre de nœuds par couche définit le poids que nous utilisons pour chaque couche. En règle générale, le nombre de nœuds diminue avec chaque couche suivante dans un auto-encodeur, car l'entrée de chacune de ces couches devient plus petite d'une couche à l'autre.
4. Perte de reconstruction
La fonction de perte que nous utilisons pour entraîner l'auto-encodeur dépend fortement des types d'entrée et de sortie auxquels nous voulons que l'auto-encodeur s'adapte. Si nous traitons de données d'image, les fonctions de perte de reconstruction les plus populaires sont la fonction de perte MSE et la fonction de perte L1. Nous pouvons également utiliser l'entropie croisée binaire comme perte de reconstruction si l'entrée et la sortie sont dans la plage [0,1], comme dans l'ensemble de données MNIST.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!