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.

Architecture d'un réseau d'autoencoder. Un encodeur crée une représentation latente de l'entrée. Cette représentation est ensuite transmise à un décodeur.

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).

Un autoencoder supprime le bruit (le r rouge) d'une image (arrière-plan constitué de points noirs avec un r rouge).

Figure 2 : suppression du bruit dans des images.

Un autoencoder détecte une anomalie (le r rouge) dans une image (arrière-plan constitué de points noirs avec un r rouge).

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).

Un sonnet de Shakespeare est utilisé comme texte d'entrée d'un autoencoder. Le texte de sortie est un sonnet généré.

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).

Un autoencoder détecte une erreur dans les données de fonctionnement normal (signal de série temporelle) d'une machine industrielle et supprime cette erreur.

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).

Un autoencoder détecte une erreur conséquente dans les données de fonctionnement anormal (signal de série temporelle) d'une machine industrielle.

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

FAQ sur les autoencodeurs

Un autoencodeur est un type de réseau de Deep Learning entraîné à reproduire ses données d’entrée. Il se compose d’un encodeur qui apprend les caractéristiques des données et d’un décodeur qui les reconstruit.

Un autoencodeur est constitué de deux sous-réseaux : un encodeur et un décodeur. Pendant l’entraînement, l’encodeur apprend une représentation latente des données d’entrée tandis que le décodeur reconstruit les données à partir de cette représentation. Cette approche permet à l’autoencodeur de généraliser à de nouvelles données qui n’ont pas été vues auparavant.

Les autoencodeurs sont utilisés pour la détection d’anomalies, la génération de texte, la génération d’images, le débruitage d’images, les communications numériques et la maintenance prédictive.

Les autoencodeurs sont des méthodes d’apprentissage non supervisé et ne nécessitent pas de données étiquetées pour l’entraînement.

Un encodeur est un composant d’un autoencodeur qui crée une représentation latente des données d’entrée, tandis qu’un autoencodeur est le réseau complet composé à la fois d’un encodeur et d’un décodeur.

Les types les plus courants incluent les autoencodeurs convolutifs pour le débruitage, les autoencodeurs variationnels pour la modélisation générative et la détection d’anomalies, ainsi que les autoencodeurs LSTM pour les applications basées sur des séries temporelles.

Les autoencodeurs apprennent naturellement à ignorer le bruit présent dans les données d’entrée pendant l’entraînement. Ils sont ainsi particulièrement adaptés au débruitage lorsqu’ils comparent les données d’entrée aux données reconstruites en sortie.

Oui. Les autoencodeurs basés sur des séries temporelles peuvent détecter des anomalies dans les données de signaux en étant entraînés sur des données correspondant à un fonctionnement normal. Des écarts importants observés dans de nouvelles données peuvent alors indiquer un comportement anormal.

Oui. Deep Learning Toolbox permet de développer des applications basées sur les autoencodeurs pour des cas d’usage tels que la détection d’anomalies, la génération de texte et le débruitage d’images.


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