¿Detención anticipada en la pérdida de validación o en la precisión?


10

Actualmente estoy entrenando una red neuronal y no puedo decidir qué usar para implementar mis criterios de detención temprana: pérdida de validación o una métrica como precisión / f1score / auc / lo que se calcule en el conjunto de validación.

En mi investigación, encontré artículos que defienden ambos puntos de vista. Keras parece tener la pérdida de validación predeterminada, pero también he encontrado respuestas convincentes para el enfoque opuesto (por ejemplo, aquí ).

¿Alguien tiene instrucciones sobre cuándo usar preferiblemente la pérdida de validación y cuándo usar una métrica específica?

Respuestas:


5

TLDR; Monitoree la pérdida en lugar de la precisión

Contestaré mi propia pregunta, ya que creo que las respuestas recibidas perdieron el punto y alguien podría tener el mismo problema algún día.

Primero, permítanme aclarar rápidamente que usar la detención temprana es perfectamente normal al entrenar redes neuronales (consulte las secciones relevantes en el libro Deep Learning de Goodfellow et al., La mayoría de los documentos de DL y la documentación para la devolución de llamada de EarlyStopping de keras).

Ahora, con respecto a la cantidad a monitorear: prefiera la pérdida a la precisión. ¿Por qué? La pérdida cuantifica qué tan seguro es el modelo acerca de una predicción (básicamente tiene un valor cercano a 1 en la clase correcta y cercano a 0 en las otras clases). La precisión simplemente explica el número de predicciones correctas. Del mismo modo, cualquier métrica que use predicciones difíciles en lugar de probabilidades tiene el mismo problema.

Obviamente, cualquiera que sea la métrica que elija, debe calcularse en un conjunto de validación y no en un conjunto de entrenamiento (de lo contrario, se está perdiendo por completo el punto de usar EarlyStopping en primer lugar)


Si los valores están entre 0 y 1, la cross_entropypérdida es un candidato más preferible que MSEo MAE. Consulte la sección de Resumen de este artículo y esta publicación sobre estadísticas .
Esmailian

@Esmailian no es una cuestión de preferencia; para problemas de clasificación , MSE y MAE simplemente no son apropiados.
desertnaut

4

En mi opinión, esto es subjetivo y específico del problema. Debe usar lo que sea el factor más importante en su mente como métrica de manejo, ya que esto podría tomar sus decisiones sobre cómo alterar el modelo mejor enfocado.

L1

Por ejemplo, si informará una puntuación F1 en su informe / a su jefe, etc. (y suponiendo que eso es lo que realmente les importa), entonces usar esa métrica podría tener más sentido. La puntuación F1, por ejemplo, tiene en cuenta la precisión y la recuperación , es decir, describe la relación entre dos métricas más detalladas .

Al unir esas cosas, calcular puntuaciones distintas de la pérdida normal puede ser bueno para la descripción general y para ver cómo se optimiza su métrica final en el transcurso de las iteraciones de entrenamiento. Esa relación quizás podría darle una visión más profunda del problema,

Sin embargo, generalmente es mejor probar varias opciones, ya que la optimización para la pérdida de validación puede permitir que el entrenamiento se ejecute por más tiempo, lo que eventualmente también puede producir una puntuación F1 superior . La precisión y el recuerdo podrían influir en algunos mínimos locales, produciendo una puntuación F1 casi estática, por lo que dejaría de entrenar. Si hubiera estado optimizando para pérdida pura, podría haber registrado suficiente fluctuación en la pérdida para permitirle entrenar por más tiempo.


¿Por qué usar la pérdida de validación permitiría un entrenamiento más largo que usar una métrica? Además, ¿puedes explicar la diferencia entre las dos opciones? ¿Ves un caso en el que sería una mala idea usar una métrica en lugar de la pérdida?
qmeeus

@ id-2205: consulte mi respuesta editada.
n1k31t4

punto interesante! Actualmente estoy usando la precisión para la detención temprana, pero intentaré usar la pérdida de validación. ¡Sin embargo, no espero ningún cambio en el proceso de capacitación! Gracias por su respuesta
qmeeus

1

Actualmente estoy entrenando una red neuronal y no puedo decidir qué usar para implementar mis criterios de detención temprana: pérdida de validación o una métrica como precisión / f1score / auc / lo que se calcule en el conjunto de validación.

Si está entrenando una red profunda, le recomiendo que no use la parada temprana. En el aprendizaje profundo, no es muy habitual. En cambio, puede emplear otras técnicas como abandonar para generalizar bien. Si insiste en eso, el criterio de elección depende de su tarea. Si tiene datos desequilibrados, debe emplear la F1puntuación y evaluarla en sus datos de validación cruzada. Si tiene datos equilibrados, intente utilizar la precisión en sus datos de validación cruzada. Otras técnicas dependen en gran medida de su tarea.

Le recomiendo que encuentre un modelo que se adapte muy bien a sus datos y que lo abandone después de eso. Esto es lo más habitual que usan las personas para los modelos profundos.


2
Estoy usando la deserción escolar también. Sin embargo, no puedo encontrar una razón por la cual no debería usarse la parada temprana ...
qmeeus

La parada temprana intenta resolver problemas de aprendizaje y generalización. Por otro lado, abandonar solo intenta superar el problema de generalización.
Medios de comunicación

1
No respondes mi pregunta ... No niego el hecho de que la deserción es útil y debe usarse para proteger contra el sobreajuste, no podría estar más de acuerdo. Mi pregunta es: ¿por qué dice que la parada temprana no debe usarse con ANN? (vea su primera oración: Si está entrenando una red profunda, le recomiendo que no use la parada temprana).
qmeeus

¿Leíste mi último comentario? Responde exactamente tu pregunta. Es una famosa cita de pr. Ng en su clase de aprendizaje profundo, segundo curso. El último caso es una tarea más fácil debido a que no tiene problemas para resolver tareas múltiples de forma simultánea.
Medios de comunicación

3
Y para encontrarlo y encontrar el conjunto correcto de hiperparámetros, estoy empleando algún tipo de búsqueda de cuadrícula dirigida con parada temprana por las razones que expliqué anteriormente. Sin embargo, se ha tomado un punto y una vez que haya seleccionado el modelo final y lo entrene, no usaré la parada temprana. Gracias por esta interesante discusión y por tu consejo
Qmeeus
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.