¿Por qué necesitamos autoencoders?

17

Recientemente, he estado estudiando autoencoders. Si entendí correctamente, un autoencoder es una red neuronal donde la capa de entrada es idéntica a la capa de salida. Entonces, la red neuronal intenta predecir la salida utilizando la entrada como estándar dorado.

¿Cuál es la utilidad de este modelo? ¿Cuáles son los beneficios de tratar de reconstruir algunos elementos de salida, haciéndolos lo más iguales posible a los elementos de entrada? ¿Por qué debería uno usar toda esta maquinaria para llegar al mismo punto de partida?

larry
fuente

Respuestas:

17

Los codificadores automáticos tienen una capa de entrada, una capa oculta y una capa de salida. La entrada se ve obligada a ser tan idéntica a la salida, por lo que nos interesa la capa oculta.

La capa oculta forma una especie de codificación de la entrada. "El objetivo de un codificador automático es aprender una representación (codificación) comprimida y distribuida de un conjunto de datos". Si la entrada es un vector de 100 dimensiones, y tiene 60 neuronas en la capa oculta, entonces el algoritmo del codificador automático replicará la entrada como un vector de 100 dimensiones en la capa de salida, en el proceso le dará un vector de 60 dimensiones que codifica su entrada .

Entonces, el propósito de los codificadores automáticos es la reducción de dimensionalidad , entre muchos otros.

Madhulika Mukherjee
fuente
Gracias @Madhulika, tal vez lo he entendido. El algoritmo funciona de la siguiente manera: tiene una capa de entrada, entrena la red neuronal para tener una capa de salida idéntica a la capa de entrada. Luego, compara la capa de entrada con la capa de salida, y si son diferentes, continúa entrenando la red neuronal. Se detiene cuando son idénticos. Cuando termina, tomamos la última capa oculta como la mejor aproximación de reducción de dimensionalidad de la capa de entrada, y la usamos para cualquier objetivo que necesitemos. ¿Es esto correcto?
larry
Sí, lo tienes casi bien. :) Lea más literatura al respecto.
Madhulika Mukherjee
5

También puede modelar su población para que cuando ingrese un nuevo vector, pueda verificar cuán diferente es la salida de la entrada. Si son "bastante" iguales, puede suponer que la entrada coincide con la población. Si son "bastante" diferentes, entonces la entrada probablemente no pertenezca a la población que modeló.

Lo veo como una especie de "regresión por redes neuronales" donde intentas tener una función que describa tus datos: su salida es la misma que la entrada.

Matthieu
fuente
3

Tal vez estas imágenes te den algo de intuición. Como comentador anterior, los codificadores automáticos intentan extraer algunas características de alto nivel de los ejemplos de entrenamiento. Puede ver cómo se utiliza el algoritmo de pronóstico para entrenar cada nivel oculto por separado para el NN profundo en la segunda imagen.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Las imágenes están tomadas de la wikipedia rusa.

Marat Zakirov
fuente
2
Sería útil comentar las imágenes.
Tim