Que yo sepa, lo más parecido a lo que podría estar buscando es este artículo reciente de investigadores de Google: Normalización de lotes: Acelerar el entrenamiento de redes profundas al reducir el cambio interno de covariables .
Normalización de lote
Considere la salida de activación de una capa donde es la no linealidad (ReLU, tanh, etc.), son los pesos y los sesgos respectivamente y es el minibatch de datos.lyl=f(Wx+b)fW,bx
Lo que hace Batch Normalization (BN) es lo siguiente:
- Estandarice para tener media cero y varianza uno. Lo hacemos a través del minibatch. Supongamos que denota los valores de activación intermedios estandarizados, es decir, es la versión normalizada de .Wx+bx^x^Wx+b
- Aplique una transformación afín parametrizada (aprendible)x^→γx^+β.
- Aplique la no linealidad: .y^l=f(γx^+β)
Por lo tanto, BN estandariza las salidas de activación "en bruto" (léase: antes de aplicar la no linealidad) para tener media cero, varianza 1, y luego aplicamos una transformación afín aprendida, y finalmente aplicamos la no linealidad. En cierto sentido, podemos interpretar que esto permite que la red neuronal aprenda una distribución de entrada parametrizada apropiada a la no linealidad.
Como cada operación es diferenciable, podemos aprender parámetros través de la retropropagación.γ,β
Motivación de transformación afina
Si no realizáramos una transformación afín parametrizada, cada no linealidad tendría como distribución de entrada una distribución media de cero y varianza 1. Esto puede o no ser subóptimo. Tenga en cuenta que si la distribución de entrada media cero, varianza 1 es óptima, entonces la transformación afín puede recuperarla teóricamente estableciendo igual a la media del lote y igual a la desviación estándar del lote. Tener esta transformación afinada parametrizada también tiene la ventaja adicional de aumentar la capacidad de representación de la red (más parámetros que se pueden aprender).βγ
Estandarizando Primero
¿Por qué estandarizar primero? ¿Por qué no solo aplicar la transformación afín? Teóricamente hablando, no hay distinción. Sin embargo, puede haber un problema de condicionamiento aquí. Al estandarizar primero los valores de activación, tal vez sea más fácil aprender parámetros óptimos . Esto es puramente una conjetura de mi parte, pero ha habido análogos similares en otras arquitecturas de red recientes y modernas. Por ejemplo, en el reciente informe técnico de Microsoft Research, Deep Residual Learning for Image Recognitionγ,β, en efecto, aprendieron una transformación donde usaron la transformación de identidad como referencia o línea de base para la comparación. Los coautores de Microsoft creían que tener esta referencia o línea de base ayudó a precondicionar el problema. No creo que sea demasiado descabellado preguntarse si algo similar está ocurriendo aquí con BN y el paso inicial de estandarización.
Aplicaciones BN
Un resultado particularmente interesante es que al usar Batch Normalization, el equipo de Google pudo obtener una red de inicio tanh para entrenar en ImageNet y obtener resultados bastante competitivos. Tanh es una no linealidad saturante y ha sido difícil lograr que este tipo de redes aprendan debido a su problema de gradientes de saturación / desaparición. Sin embargo, usando Batch Normalization, uno puede suponer que la red pudo aprender una transformación que mapea los valores de salida de activación en el régimen no saturado de tan no linealidades.
Notas finales
Incluso hacen referencia al mismo hecho de Yann LeCun que mencionaste como motivación para la Normalización de lotes.