enero 22, 2022
Que es el pre entreno

Que es el pre entreno

Pre-entrenamiento en nlp

Estoy tratando de entender por qué el preentrenamiento de una red neuronal profunda mejora el rendimiento de la clasificación. Al inicializar los pesos de la red desde una etapa de preentrenamiento, y luego entrenar con los datos para la clasificación, el rendimiento suele ser mejor que si los pesos se inicializan al azar.
Pero, ¿por qué la inicialización aleatoria no iba a encontrar finalmente este mismo mínimo de la función de pérdida? La función de pérdida utiliza los mismos datos en ambos casos, y ambos enfoques deberían converger al mismo mínimo global, ¿verdad?
Esta cuestión se ha estudiado ampliamente en la literatura. El preentrenamiento encuentra un buen punto de pesos en la superficie de error. Intuitivamente, se trata de encontrar un buen conjunto de pesos para comprimir los datos de entrada en la fase de preentrenamiento. Idealmente, esta representación comprimida es buena para resolver tareas genéricas.

Entrenamiento previo

No estoy seguro de que esto responda exactamente a tu pregunta, pero por lo que tengo entendido, la razón por la que no ves a la gente preentrenando (lo digo en el sentido de preentrenamiento no supervisado) las redes conv es porque ha habido varias innovaciones en el entrenamiento puramente supervisado que han hecho innecesario el preentrenamiento no supervisado (por ahora, ¿quién sabe qué problemas y cuestiones deparará el futuro?).
Una de las principales innovaciones fue el abandono de las unidades de activación sigmoidales (sigmoid, tanh), que pueden saturar/tener regiones de curvatura casi plana y, por tanto, se propaga muy poco gradiente hacia atrás, por lo que el aprendizaje es increíblemente lento, si no se detiene por completo a todos los efectos prácticos. El artículo de Glorot, Bordes y Bengio Deep Sparse Rectifier Neural Networks utiliza unidades lineales rectificadas (ReLUs) como funciones de activación en lugar de las tradicionales unidades sigmoidales. Las ReLUs tienen la siguiente forma: $f(x) = \max(0, x)$. Obsérvese que no tienen límites y que, para la parte positiva, tienen gradiente constante 1.

Ejemplo de pre-entrenamiento

Me confunde el término «preentrenamiento». ¿Qué significa en el autoencoder profundo? ¿Y cómo ayuda a mejorar el rendimiento del autoencoder? (Sé que este término viene del documento de Hinton 2006: «Reducing the dimensionality of Data with Neural Networks»).
En realidad, si preentrenas todas las capas para aprender las activaciones de la anterior, he descubierto que puede tener un rendimiento subóptimo durante el ajuste fino posterior. Obtengo un rendimiento mucho mejor cuando configuro la última capa durante el preentrenamiento para que intente reconstruir la entrada original (la alimentada a la primera capa) en lugar de las activaciones de la capa oculta anterior. De este modo, el autocodificador multicapa resultante durante el ajuste fino reconstruirá realmente la imagen original en la salida final.

Pre-entrenamiento o pre-entrenamiento

Se desea entrenar una red neuronal para que realice una tarea (por ejemplo, la clasificación) sobre un conjunto de datos (por ejemplo, un conjunto de imágenes). Se empieza el entrenamiento inicializando los pesos de forma aleatoria. En cuanto se empieza a entrenar, los pesos se modifican para realizar la tarea con menos errores (es decir, la optimización).
Ahora está interesado en entrenar una red para realizar una nueva tarea (por ejemplo, la detección de objetos) en un conjunto de datos diferente (por ejemplo, imágenes también pero no las mismas que utilizó antes). En lugar de repetir lo que hiciste para la primera red y empezar el entrenamiento con pesos inicializados al azar, puedes utilizar los pesos que guardaste de la red anterior como valores de peso iniciales para tu nuevo experimento. Inicializar los pesos de esta manera se denomina utilizar una red pre-entrenada. La primera red es tu red pre-entrenada. La segunda es la red que estás ajustando.
La idea detrás del preentrenamiento es que la inicialización aleatoria es… bueno… aleatoria, los valores de los pesos no tienen nada que ver con la tarea que estás tratando de resolver. ¿Por qué un conjunto de valores debería ser mejor que otro? Pero, ¿de qué otra forma podrías inicializar los pesos? Si supieras cómo inicializarlos adecuadamente para la tarea, también podrías ponerlos en los valores óptimos (ligeramente exagerado). No hace falta entrenar nada. Tienes la solución óptima para tu problema.

Te pueden interesar

Prueba casera embarazo aceite
5 min de lectura
Sujetador para escotes pronunciados
5 min de lectura
Peluqueria low cost ceuta
4 min de lectura
Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad