¿Por qué un cambio interno de covariable ralentiza el procedimiento de entrenamiento?

Digamos que tiene un objetivo que alcanzar, que es más fácil, ¿un objetivo fijo frente a un objetivo que sigue avanzando? Está claro que un objetivo estático es mucho más fácil de alcanzar que un objetivo dinámico.

Cada capa en una red neuronal tiene un objetivo simple, modelar la entrada de la capa debajo de ella, por lo que cada capa intenta adaptarse a su entrada, pero para las capas ocultas, las cosas se complican un poco. La distribución estadística de la entrada cambia después de unas pocas iteraciones, por lo que si la distribución estadística de la entrada sigue cambiando, llamada desplazamiento covariable interno, las capas ocultas seguirán intentando adaptarse a esa nueva distribución, lo que ralentizará la convergencia. Es como un objetivo que sigue cambiando por capas ocultas.

Por lo tanto, el algoritmo de normalización por lotes (BN) intenta normalizar las entradas a cada capa oculta para que su distribución sea bastante constante a medida que avanza el entrenamiento. Esto mejora la convergencia de la red neuronal. Mirando tu comentario:

Creo que es porque cuando los datos fluyen a través de las partes no lineales, se saturan a medida que los parámetros de las capas anteriores cambian y causan la desaparición del gradiente.

La normalización también hace que las neuronas trabajen en las regiones lineales de sus funciones de activación mejorando aún más el rendimiento de aprendizaje y reconocimiento. Sí, BN evita el problema de gradiente de fuga, por lo que sigmoid y tanh se pueden usar sin muchos problemas.

Espero que esto ayude.

Esencialmente, hacer BN “ralentiza el procedimiento de entrenamiento” porque agregas capas que hacen un montón de cosas como calcular valores normalizados y calcular estadísticas de movimiento que lleva tiempo hacer algo cercano a O (tamaño de lote).

Además, tenga en cuenta que la hipótesis es que la distribución de activación intermedia estabilizadora conduce a una convergencia más rápida, como se muestra (empíricamente) en el documento. Creo que la idea general es que BN mantiene el modelo en un buen régimen de aprendizaje que no está tan saturado. Además, dado que las distribuciones internas no son tan locas, se supone que ayuda a aprender, ya que la optimización no tiene que adaptarse a la distribución cambiante. Esencialmente, siempre está aprendiendo la misma distribución en cada iteración en lugar de tener que adaptarse. Sin embargo, esa es la idea, no creo que haya mucho análisis teórico / garantías para ello. Pero por lo que sé, funciona muy bien por leer en línea y chatear con compañeros de laboratorio.


Como comentario adicional, tenga en cuenta que el desplazamiento de covariable no es lo mismo que la normalización por lotes. La normalización por lotes logra el cambio de covariable, esencialmente a través del teorema del límite central y porque los productos internos son una suma de muchas variables aleatorias. En teoría, podrían existir otras operaciones que logren esa propiedad, pero esperaría que sea muy dependiente del tipo de función de preactivación que intentamos estabilizar y el tipo de normalización que utilizamos para lograr esta estabilización.

El cambio de covariable describe lo que sucede cuando su distribución de entrada (la X_i) que entra en su modelo cambia entre lo que entrenó el modelo y lo que prueba o implementa.

En su red neuronal típica, lo que hace es escalar sus datos a media 0 y varianza unitaria. Luego propagas los datos a través de las capas ocultas. En cada capa oculta, realiza el Wx + b lineal habitual y luego lo ejecuta a través de la activación. Una vez que hace esto, la salida A que va a la siguiente capa ya no tiene 0 media y varianza unitaria. Esta salida A es como el nuevo conjunto de datos que es la entrada para su próxima capa oculta (o submodelo) para aprender. Dado que estos nuevos datos ya no tienen varianza unitaria y 0 significa que son datos de entrada, es como si hubiera cambiado la distribución de sus datos, lo que no es bueno para su modelo.

La normalización por lotes aborda este problema para las redes neuronales. Suponga que alimenta un lote o subconjunto de los datos de entrenamiento. En cada capa, siempre cambia la escala de los datos a media 0 y varianza unitaria con respecto a las muestras.