La pérdida de entrenamiento aumenta con el tiempo [duplicado]

21

Estoy entrenando un modelo (red neuronal recurrente) para clasificar 4 tipos de secuencias. Mientras corro mi entrenamiento, veo que la pérdida de entrenamiento disminuye hasta el punto en que clasifico correctamente más del 90% de las muestras en mis lotes de entrenamiento. Sin embargo, un par de épocas después, noto que la pérdida de entrenamiento aumenta y que mi precisión disminuye. Esto me parece extraño ya que esperaría que en el conjunto de entrenamiento el rendimiento mejore con el tiempo y no se deteriore. Estoy usando la pérdida de entropía cruzada y mi tasa de aprendizaje es 0.0002.

Actualización: Resultó que la tasa de aprendizaje era demasiado alta. Con una tasa de aprendizaje lo suficientemente baja, no observo este comportamiento. Sin embargo, todavía encuentro esto peculiar. Cualquier buena explicación es bienvenida por qué sucede esto

La pérdida disminuye y luego aumenta

dins2018
fuente

Respuestas:

6

Tuve un comportamiento similar al entrenar un CNN, fue porque usé el descenso de gradiente con una tasa de aprendizaje en descomposición para el cálculo del error. ¿Ha aumentado significativamente el número de iteraciones y ha verificado si este comportamiento llega mucho más tarde con la nueva tasa baja de aprendizaje?

Freundlicher
fuente
En realidad sí, sin embargo, llega un punto en el que, para una tasa de aprendizaje lo suficientemente baja, nunca volverá a subir. Estoy buscando una explicación teóricamente sólida de por qué sucede esto
dins2018
¿Qué algoritmo de optimización usas?
Freundlicher
Uso el optimizador Adam con lr = 0.00001, betas = (0.5, 0.999)
dins2018
1
Creo que usted es aproximado con esta pequeña tasa de aprendizaje tan lentamente al mínimo local que el punto donde el valor de pérdida aumenta ligeramente nuevamente (porque excede el mínimo) requiere demasiadas iteraciones. Este aumento en el valor de la pérdida se debe a Adam, en el momento en que se excede el mínimo local y un cierto número de iteraciones, un número pequeño se divide por un número aún menor y el valor de la pérdida explota.
Freundlicher
2
Puede configurar beta1 = 0.9 y beta2 = 0.999. Esos son los valores comunes que deben funcionar en contra de este comportamiento.
Freundlicher
1

Porque como la tasa de aprendizaje es demasiado grande, divergerá y no podrá encontrar el mínimo de la función de pérdida. Usar un programador para disminuir la tasa de aprendizaje después de ciertas épocas ayudará a resolver el problema

Yawen Zheng
fuente
0

Con tasas de aprendizaje más altas, se está moviendo demasiado en la dirección opuesta al gradiente y puede alejarse de los mínimos locales, lo que puede aumentar la pérdida. La programación de la tasa de aprendizaje y el recorte de gradiente pueden ayudar.

namuchan95
fuente
Bienvenido a CV. Para obtener un voto positivo , lo mejor es proporcionar una respuesta más completa, consulte stats.stackexchange.com/help/how-to-answer para obtener orientación.
ReneBt