1 votos

¿Cuál es el problema de evaluar una métrica global al final de cada época en una red neuronal profunda?

Estoy interesado en evaluar la puntuación f ponderada al final de cada época mientras se entrena una red neuronal profunda. Sin embargo, he encontrado que en Keras 2.0 han eliminado este tipo de métricas porque pueden ser engañosas. Citando esto tema en GitHub:

Básicamente se trata de métricas globales aproximadas por lotes, lo que resulta más engañoso que útil. Esto se mencionó en los documentos, pero es mucho más limpio eliminarlas por completo. Fue un error fusionarlas en primer lugar.

Realmente no lo entiendo; ¿cómo puede ser esto engañoso (más detalles)?

3voto

user777 Puntos 10934

La pregunta del título es un poco diferente de lo que aborda la cita. Usted pregunta

¿Cuál es el problema de evaluar una métrica global al final de cada época en una red neuronal profunda?

La respuesta es que no hay ninguna -- evaluar alguna métrica al final de una epoch, después de que se hayan aplicado todas las actualizaciones, te da una estimación no sesgada del rendimiento del modelo dados esos datos para los parámetros obtenidos al final de esa epoch. Esto es lo que quieres, y es lo que Keras intentaba anteriormente. aproximado utilizando una media móvil de la pérdida de minilotes.

(Sin embargo, esto no es gratis, ya que requiere introducir los datos de entrenamiento en el modelo una vez para calcular las actualizaciones de los parámetros y otra para calcular la pérdida, es decir, evaluar la red neuronal dos veces con los datos de entrenamiento).

La cita de Keras se refiere a cómo las métricas de fin de lote fueron aproximada. De este modo, cada minilote calculaba una pérdida, que se utilizaba para calcular una media por episodio. (¿Te has dado cuenta de que al principio de una época las pérdidas fluctúan más que al final? Esta es la razón).

El problema es que cada minilote se calcula para un conjunto diferente de parámetros (porque el modelo se está entrenando). Por tanto, los minilotes $i$ tiene su pérdida calculada con los parámetros $\theta_i$ y minilotes $i+1$ se calcula con los parámetros $\theta_{i+1}$ etc. Esto es tendencioso, en el sentido de que si tu modelo sigue aprendiendo, eso implica que la pérdida será estocásticamente decreciente, por lo que no te importa el minitramo $i$ La derrota de $\theta_i$ te importa cómo lo hizo usando $\theta_M$ la estimación final del parámetro para la época (porque estos parámetros deberían ser "mejores" que en épocas anteriores si su modelo está mejorando).

Otra fuente de sesgo en este procedimiento es que el uso de la regularización durante el entrenamiento tenderá a inflar la pérdida de entrenamiento en cada minilote. Esto se debe a que se utiliza algún tipo de penalización de peso, de modo que la función de pérdida se parece a

$$ \mathcal{L}(\theta | x, y, \lambda) = \text{Loss}(x,y | \theta) + \lambda \text{Penalty}(\theta) $$

o porque el uso de algo como el abandono está perturbando sistemáticamente la capacidad del modelo para ajustarse bien a los datos. El registro de la pérdida de cada lote de entrenamiento incluirá estos sesgos y tenderá a inflar la pérdida de entrenamiento notificada.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X