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.