¿Cómo y por qué Batch Normalization usa promedios móviles para rastrear la precisión del modelo mientras se entrena?


21

Estaba leyendo el documento de normalización de lotes (BN) (1) y no entendía la necesidad de usar promedios móviles para rastrear la precisión del modelo e incluso si aceptaba que era lo correcto, no entiendo qué están haciendo exactamente.

Según tengo entendido (que puede estar equivocado), el documento menciona que usa las estadísticas de población en lugar del mini lote, estadísticas una vez que el modelo ha terminado la capacitación. Después de una discusión sobre estimaciones imparciales (que me parece tangencial y no entiendo por qué habla de eso), van y dicen:

En su lugar, utilizando promedios móviles, rastreamos la precisión del modelo a medida que entrena.

Esa es la parte que me confunde. ¿Por qué hacen promedios móviles para estimar la precisión del modelo y sobre qué conjunto de datos?

Por lo general, lo que las personas hacen para estimar la generalización de su modelo, simplemente rastrean el error de validación de su modelo (y potencialmente detienen su descenso de gradiente para regularizarse). Sin embargo, parece que la normalización por lotes está haciendo algo completamente diferente. ¿Alguien puede aclarar qué y por qué está haciendo algo diferente?


1 : Ioffe S. y Szegedy C. (2015),
"Normalización de lotes: acelerar la capacitación en redes profundas mediante la reducción del cambio de covariable interno",
Actas de la 32ª Conferencia Internacional sobre Aprendizaje Automático , Lille, Francia, 2015.
Journal of Machine Learning Research: W&CP volumen 37


¿Estás satisfecho con la respuesta votada? No es una "respuesta" en absoluto, si me preguntas; si aún es relevante, puedo proporcionar una mejor respuesta.
OverLordGoldDragon

@OverLordGoldDragon proporciona su propia respuesta :)
Pinocho

Respuestas:


8

Al usar batch_normalization lo primero que tenemos que entender es que funciona de dos maneras diferentes cuando se está en Entrenamiento y Pruebas .

  1. En Entrenamiento necesitamos calcular la media del mini lote para normalizar el lote

  2. En la inferencia solo aplicamos estadísticas de mini lotes precalculados

Entonces, en la segunda cosa, cómo calcular esta estática de mini lotes

Aquí viene el promedio móvil

running_mean = momentum * running_mean + (1 - momentum) * sample_mean
running_var = momentum * running_var + (1 - momentum) * sample_var

Esto no responde a la pregunta en absoluto; Se preguntó "por qué" y "cómo", y se dio un "qué" superficial. No debería ser votado.
OverLordGoldDragon

1

Están hablando de la normalización de lotes, que han descrito para el procedimiento de entrenamiento pero no para inferencia.

Este es un proceso de normalización de las unidades ocultas utilizando medias de muestra, etc.

En esta sección explican qué hacer para la etapa de inferencia, cuando solo está haciendo predicciones (es decir, después de completar el entrenamiento).

Sin embargo, en la validación detenida, intercala la predicción en el conjunto de validación con entrenamiento para estimar su error de validación.

Entonces, durante este proceso, no tiene un promedio de población (los promedios siguen cambiando a medida que entrena), por lo que usa un promedio de ejecución para calcular los parámetros de la norma de lote para calcular el rendimiento en el conjunto de validación.

Es en este sentido que

En su lugar, utilizando promedios móviles, rastreamos la precisión del modelo a medida que se entrena.

nada que ver con el uso literal de los medios de ejecución como una métrica para el rendimiento de la red neuronal.

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.