Introducción a la normalización por lotes

1 Por qué usar BatchNormalization

Para hacer que las redes profundas sean más fáciles de entrenar, existen dos enfoques:

        Utilice un mejor optimizador: como SDG+Momentun, etc.;

        Cambiar la estructura de la red, como agregar una capa BN, procesar los datos de la red y hacer que los datos de la red obedezcan la distribución gaussiana estándar con un valor medio de 0 y una varianza de 1;

2 ventajas de usar BatchNormalization

        Cada vez que se ingresa NN, se requiere un preprocesamiento de datos. Generalmente, los datos tienen media 0 y varianza unitaria, lo cual es bueno para el entrenamiento;

        Pero cuando los datos han pasado por varias capas, es básicamente imposible mantener esta característica. Lo que la capa BN debe hacer es agregar esta operación al comienzo de cada capa, pero algunos datos pueden perder información debido a esto, por lo que es necesario agregar beta y gama para restaurar los datos originales, donde se pueden aprender beta y gamma;

3 Proceso de datos de procesamiento de normalización por lotes

(1) Calcular el promedio

        mini-lote:  B=\{x_1,...,x_m\};

        \mu_B = \frac{1}{m}\sum_{i=1}^{m}x_i

(2) Encuentra la varianza

        \sigma_B^2 = \frac{1}{m}\sum_{i=1}^{m}(x_i - \mu_B)^2

(3) Normalización

        \widehat{x_i} = \frac{x_i - \mu _B}{\sqrt{\sigma_B^2 + \epsilon }}

(4) Salida de cálculo (escala y desplazamiento)

        y_i = \gamma \widehat{x_i} + \beta

        \gamay \betason dos hiperparámetros clave Escalar y traducir el denominador normalizado, y aprender la traducción y el escalado a través de la red para retener ciertas características;

La varianza y la media se pueden ajustar dinámicamente y se pueden ajustar a través del impulso (únase a la caída exponencial basada en el impulso para el ajuste dinámico)

Supongo que te gusta

Origin blog.csdn.net/qq_40671063/article/details/130431415
Recomendado
Clasificación