¿Qué es el entrenamiento previo de una red neuronal?

22

Bueno, la pregunta lo dice todo.

¿Qué se entiende por "preentrenamiento de una red neuronal"? ¿Alguien puede explicar en inglés simple y puro?
Parece que no puedo encontrar ningún recurso relacionado con él. Sería genial si alguien me puede señalar a ellos.

Machina333
fuente
www.deeplearningbook.org tiene una buena introducción al tema.
mnagaraj

Respuestas:

22

La forma habitual de entrenar una red:

Desea entrenar una red neuronal para realizar una tarea (por ejemplo, clasificación) en un conjunto de datos (por ejemplo, un conjunto de imágenes). Empiezas a entrenar inicializando los pesos al azar. Tan pronto como comience a entrenar, se cambian los pesos para realizar la tarea con menos errores (es decir, optimización). Una vez que esté satisfecho con los resultados de la capacitación, guarde los pesos de su red en algún lugar.

Ahora está interesado en entrenar a una red para realizar una nueva tarea (por ejemplo, detección de objetos) en un conjunto de datos diferente (por ejemplo, imágenes también pero no las mismas que usó antes). En lugar de repetir lo que hizo para la primera red y comenzar el entrenamiento con pesas inicializadas al azar, puede usar las pesas que guardó de la red anterior como los valores de peso iniciales para su nuevo experimento. Inicializar los pesos de esta manera se conoce como usar una red pre-entrenada. La primera red es su red pre-entrenada. El segundo es la red que está ajustando.

La idea detrás del pre-entrenamiento es que la inicialización aleatoria es ... bueno ... aleatoria, los valores de los pesos no tienen nada que ver con la tarea que está tratando de resolver. ¿Por qué un conjunto de valores debería ser mejor que otro conjunto? Pero, ¿de qué otra manera inicializarías los pesos? Si supiera cómo inicializarlos correctamente para la tarea, también podría establecerlos en los valores óptimos (ligeramente exagerados). No hay necesidad de entrenar nada. Tienes la solución óptima a tu problema. El entrenamiento previo le da a la red una ventaja. Como si hubiera visto los datos antes.

A qué hay que tener cuidado cuando pre-entrenamiento:

La primera tarea utilizada en el entrenamiento previo de la red puede ser la misma que la etapa de ajuste. Los conjuntos de datos utilizados para el entrenamiento previo versus el ajuste fino también pueden ser los mismos, pero también pueden ser diferentes. Es realmente interesante ver cómo la capacitación previa en una tarea diferente y un conjunto de datos diferente todavía se pueden transferir a un nuevo conjunto de datos y una nueva tarea que son ligeramente diferentes. El uso de una red previamente capacitada generalmente tiene sentido si ambas tareas o ambos conjuntos de datos tienen algo en común. Cuanto mayor sea la brecha, menos efectiva será la capacitación previa. Tiene poco sentido entrenar previamente una red para la clasificación de imágenes al entrenarla primero en datos financieros. En este caso, hay demasiada desconexión entre las etapas de pre-entrenamiento y ajuste.

ypx
fuente
10

El entrenamiento previo / ajuste fino funciona de la siguiente manera:

  1. metro
  2. UNAmetro
  3. simetroUNA
  4. metrosi

UNAsi

Martin Thoma
fuente
Nota al margen: las personas pueden usar el término afinar solo si usted (no) congela los pesos. No estoy seguro si hay un uso consistente de este término
Martin Thoma
4

Las dos respuestas anteriores explican bien. Solo quiero agregar una cosa sutil con respecto al pre-entrenamiento para Deep Belief Nets (DBN). El entrenamiento previo para DBN es aprendizaje no supervisado (es decir, sin datos etiquetados) y el entrenamiento posterior es aprendizaje supervisado (es decir, con datos etiquetados).

Lamothy
fuente