¿Hay alguna diferencia entre entrenar un autoencoder apilado y una red neuronal de 2 capas?

14

Digamos que estoy escribiendo un algoritmo para construir un autoencoder apilado de 2 capas y una red neuronal de 2 capas. ¿Son las mismas cosas o diferencias?

Lo que entiendo es que cuando construyo un codificador automático apilado, construiría capa por capa. Para la red neuronal, inicializaría todos los parámetros en el trabajo neto, y luego para cada punto de datos, lo pasaría a través de la red y calcularía la pérdida (por ejemplo, la distancia eucleana) y realizaría la propagación hacia atrás.

RockTheStar
fuente

Respuestas:

16

Los autoencoders apilados y las redes neuronales multicapa son diferentes. En la práctica, las dos redes compartirán pesos y posiblemente compartirán memorias intermedias. Entonces, en su implementación, las dos redes se entrelazan.

Por lo general, los codificadores automáticos se entrenan de manera no supervisada, codiciosa y en capas. (Sin etiquetas, comience a entrenar solo con la primera capa de la red y luego agregue nuevas capas a medida que avanza). Los pesos se pueden aprender usando una variedad de técnicas que van desde el descenso de gradiente "por lotes" (no haga eso), al descenso de gradiente estocástico mini-lote (SGD), a métodos cuasi-Newton como L-BFGS.

La idea es que los pesos aprendidos de manera no supervisada para minimizar el error de reconstrucción para la tarea de aprendizaje de representación ofrecen un buen punto de partida para inicializar una red para una tarea discriminatoria supervisada como la clasificación o similitud. Es decir, la red aprende algo sobre la distribución subyacente al observar los datos no etiquetados, lo que le permite discriminar entre datos etiquetados. Sin embargo, los pesos aún deben "ajustarse" para esta nueva tarea. Por lo tanto, agregue una capa de regresión logística en la parte superior de la red y luego realice el aprendizaje supervisado con un conjunto de datos etiquetado. El paso de ajuste fino hará un descenso de gradiente y ajustará los pesos para todos capas en la red simultáneamente.

Las ventajas de esta forma de entrenar redes neuronales son:

  1. La capacitación no supervisada le permite mostrar a la red más datos porque es mucho más fácil obtener grandes conjuntos de datos no supervisados ​​que obtener etiquetas.
  2. Puede utilizar la red pre-entrenada como un "punto de partida" para entrenar a nuevos clasificadores para que no tenga que comenzar desde cero cada vez.

Para el artículo, vea Autoencoders de eliminación de ruido apilados: Aprendizaje de representaciones útiles en una red profunda con un criterio de eliminación de ruido local .

sabalaba
fuente
Estoy confundido sobre el segundo paso donde entrenas la capa de codificación con una capa de clasificación (por ejemplo, capa softmax) para una tarea de clasificación. ¿Vuelve a usar el conjunto de datos de entrenamiento nuevamente para esta parte para aprender las etiquetas? Esto me parece extraño porque el conjunto de entrenamiento solo se usó para aprender una aproximación de sí mismo.
chico
No tiene mucho sentido si tiene todos los datos etiquetados de todos modos. Es más para las situaciones en las que tiene muchos más datos sin etiquetar para entrenar previamente y luego usar los datos etiquetados de "entrenamiento" para afinar.
miau