Autoencoders

Autoencoder

Un autoencoder est un type de réseau de Deep Learning entraîné pour répliquer ses données d'entrée. Les autoencoders surpassent les techniques d'ingénierie traditionnelles en précision et en performances sur de nombreuses applications, notamment la détection d'anomalies, la génération de texte, la génération d'images, le débruitage d'images et les communications numériques.

Vous pouvez utiliser Deep Learning Toolbox™ de MATLAB pour implémenter les exemples d'applications d'autoencoders présentées ci-dessous.

Comment les autoencoders fonctionnent-ils?

Les autoencoders produisent en sortie une reconstruction de l'entrée. Un autoencoder est constitué de deux sous-réseaux : un encodeur et un décodeur. Lors de l'apprentissage, l'encodeur apprend un ensemble de caractéristiques à partir des données d'entrées qu'on appelle la représentation latente. Dans le même temps, le décodeur est entraîné à reconstruire les données à partir de ces caractéristiques. L'autoencoder peut alors être appliqué afin de prédire des entrées qui n'ont pas été précédemment observées. Les autoencoders sont très faciles à généraliser et peuvent être utilisés sur différents types de données, notamment des images, des séries temporelles et du texte.

Figure 1 : un autoencoder est constitué d'un encodeur et d'un décodeur.

Quelles applications utilisent des autoencoders?

Les autoencoders ignorent naturellement tout bruit d'entrée lors de l'apprentissage de l'encodeur. Cette caractéristique est idéale pour la suppression du bruit ou la détection d'anomalies via la comparaison des entrées et des sorties (voir les figures 2 et 3).

Figure 2 : suppression du bruit dans des images.

Figure 3 : détection d'anomalies à partir d'images.

La représentation latente peut également être utilisée pour générer des données synthétiques. Par exemple, vous pouvez créer automatiquement une écriture manuscrite ou un texte avec des phrases d'apparence réaliste (Figure 4).

Figure 4 : génération de phrases pour un nouveau texte à partir d'un texte existant.

Les autoencoders basés sur des séries temporelles peuvent également être utilisés pour détecter des anomalies dans des signaux. Par exemple, pour la maintenance prédictive, un autoencoder peut être entraîné sur des données de fonctionnement normal provenant d'une machine industrielle (Figure 5).

Figure 5 : apprentissage sur des données de fonctionnement normal pour la maintenance prédictive.

L'autoencoder entraîné est ensuite testé sur de nouvelles données d'entrée. Une variation importante dans la sortie de l'autoencoder indique un fonctionnement anormal, qui peut nécessiter une investigation (Figure 6).

Figure 6 : une erreur importante traduit la présence d'anomalies dans les données d'entrées, ce qui peut indiquer qu'une maintenance est nécessaire.

Points clés

  • Les autoencoders ne nécessitent pas de données d'entrées labellisées pour l'apprentissage : ils sont non supervisés
  • Il existe différents types d'autoencoders conçus pour différentes tâches d'ingénierie, en particulier :
    • Les autoencoders convolutifs : la sortie du décodeur tente de refléter l'entrée de l'encodeur, ce qui est utile pour le débruitage
    • Les autoencoders variationnels : ils créent un modèle génératif, utile pour la détection d'anomalies
    • Les autoencoders LSTM : ils créent un modèle génératif pour les applications utilisant des séries temporelles

Voir aussi: introduction au Deep Learning, réseaux LSTM (Long Short-Term Memory), introduction aux réseaux de neurones à convolution, détection d'anomalies