Pourquoi avons-nous besoin d'encodeurs automatiques?

17

Récemment, j'ai étudié les encodeurs automatiques. Si j'ai bien compris, un autoencodeur est un réseau neuronal où la couche d'entrée est identique à la couche de sortie. Ainsi, le réseau neuronal essaie de prédire la sortie en utilisant l'entrée comme standard d'or.

Quelle est l'utilité de ce modèle? Quels sont les avantages d'essayer de reconstruire certains éléments de sortie, en les rendant aussi égaux que possible aux éléments d'entrée? Pourquoi utiliser toute cette machinerie pour arriver au même point de départ?

larry
la source

Réponses:

17

Les encodeurs automatiques ont une couche d'entrée, une couche cachée et une couche de sortie. L'entrée est forcée d'être identique à la sortie, c'est donc la couche cachée qui nous intéresse.

La couche cachée forme une sorte d' encodage de l'entrée. "Le but d'un auto-encodeur est d'apprendre une représentation compressée et distribuée (encodage) pour un ensemble de données." Si l'entrée est un vecteur à 100 dimensions et que vous avez 60 neurones dans la couche cachée, l'algorithme de l'encodeur automatique répliquera l'entrée en tant que vecteur à 100 dimensions dans la couche de sortie, ce qui vous donnera un vecteur à 60 dimensions qui code votre entrée .

Le but des encodeurs automatiques est donc la réduction de la dimensionnalité , entre autres.

Madhulika Mukherjee
la source
Merci @Madhulika, j'ai peut-être compris. L'algorithme fonctionne comme suit: il a une couche d'entrée, il forme le réseau neuronal afin d'avoir une couche de sortie identique à la couche d'entrée. Ensuite, il compare la couche d'entrée avec la couche de sortie, et s'ils sont différents, il continue de recycler le réseau neuronal. Il s'arrête quand ils sont identiques. Une fois terminé, nous prenons la dernière couche masquée comme la meilleure approximation de réduction de dimensionnalité de la couche d'entrée, et nous l'utilisons pour tout objectif dont nous avons besoin. Est-ce correct?
larry
Oui, vous avez presque raison. :) Lisez plus de documentation à ce sujet.
Madhulika Mukherjee
5

Il peut également modéliser votre population de sorte que lorsque vous entrez un nouveau vecteur, vous pouvez vérifier la différence entre la sortie de l'entrée. S'ils sont "assez" identiques, vous pouvez supposer que l'entrée correspond à la population. S'ils sont "assez" différents, alors l'entrée n'appartient probablement pas à la population que vous avez modélisée.

Je le vois comme une sorte de "régression par les réseaux de neurones" où vous essayez d'avoir une fonction décrivant vos données: sa sortie est la même que l'entrée.

Matthieu
la source
3

Peut-être que ces images vous donnent une certaine intuition. Comme commentateur ci-dessus, les encodeurs automatiques essaient d'extraire des fonctionnalités de haut niveau des exemples de formation. Vous pouvez voir comment l'algorithme de pronostic est utilisé pour entraîner chaque niveau caché séparément pour le NN profond sur la deuxième image.

entrez la description de l'image ici

entrez la description de l'image ici

Les photos sont prises à partir de wikipedia russe.

Marat Zakirov
la source
2
Un commentaire sur les photos serait utile.
Tim