Normalización por Lotes (Batch Normalization)

 

Batch Normalization (Normalización por lotes) es una técnica utilizada en redes neuronales.

 

Para mejorar la estabilidad y la eficiencia del entrenamiento.

 

Fue introducida en 2015 por Sergey Ioffe y Christian Szegedy.

 

Ha demostrado ser una herramienta clave para entrenar redes profundas más rápido.

 

Con mayor precisión y mejor capacidad de generalización.

 

¿Qué problema resuelve?

 

En redes neuronales profundas, uno de los problemas recurrentes es que las distribuciones de los datos.

 

A medida que avanzan por las capas de la red pueden cambiar de forma significativa.

 

Un fenómeno conocido como Internal Covariate Shift.

 

Esto hace que el proceso de entrenamiento sea ineficiente.

 

Porque la red tiene que reajustarse constantemente para adaptarse a estas variaciones.

 

Los tiempos de entrenamiento pueden ser largo.

 

Se necesita ajustar cuidadosamente la tasa de aprendizaje.

 

Batch Normalization mitiga este problema normalizando las activaciones en cada capa de la red.

 

Estabiliza y acelera el entrenamiento.

 

¿Cómo funciona Batch Normalization?

 

Batch Normalization actúa normalizando la salida de una capa o de las activaciones.

 

Para que tengan una media y varianza fija durante el entrenamiento.

 

Esto se hace en dos pasos:

 

Normalización

 

Para cada activación de una capa, se calcula la media y la desviación estándar en un mini-lote.

 

Grupo de ejemplos que se procesan al mismo tiempo.

 

Luego, las activaciones se normalizan.

 

 

x(i)x^{(i)} es la activación original para la muestra ii.

 

μB\mu_B es la media de las activaciones del lote.

 

σB2\sigma_B^2 es la varianza de las activaciones del lote.

 

ϵ\epsilon es un valor pequeño que se añade para evitar divisiones por cero.

 

Donde mm es el tamaño del mini-lote.

 

Se normalizan las activaciones de acuerdo con estas estadísticas para obtener una distribución con media 0 y varianza 1:

 

 

Donde ϵ\epsilon es un valor pequeño añadido para evitar divisiones por cero.

 

Escalado y desplazamiento

 

Después de la normalización, Batch Normalization introduce dos nuevos parámetros entrenables.

 

Un factor de escalado (γ\gamma) y un desplazamiento (β\beta).

 

Para permitir que el modelo ajuste la escala y el sesgo de las activaciones normalizadas.

 

Esto permite que la red recupere cualquier información perdida en el proceso de normalización si es necesario.

 

Batch Normalization no restringe la red a tener activaciones con media 0 y varianza 1.

 

Permite aprender la distribución adecuada durante el entrenamiento.

 

Ventajas de Batch Normalization

 

Aceleración del entrenamiento

 

Al reducir el internal covariate shift, las redes neuronales se entrenan más rápido y con mayor estabilidad.

 

Uso de tasas de aprendizaje más altas

 

Batch Normalization permite el uso de tasas de aprendizaje más agresivas.

 

Estabiliza el proceso de ajuste de pesos.

 

Regularización

 

Actúa como una forma de regularización.

 

Introduce ruido durante el entrenamiento al normalizar los lotes.

 

Puede ayudar a reducir el sobreajuste.

 

Menor dependencia en la inicialización de los pesos

 

Los modelos que utilizan Batch Normalization son menos sensibles a la inicialización de los pesos.

 

Facilita el entrenamiento de redes profundas.

 

Aplicaciones y consideraciones

 

Redes profundas

 

Batch Normalization es particularmente útil en redes neuronales profundas.

 

Como las redes convolucionales (CNN) y redes recurrentes (RNN).

 

Puede estabilizar el entrenamiento y mejorar el rendimiento.

 

Entrenamiento en mini-lotes

 

Como su nombre lo indica, Batch Normalization depende de mini-lotes de datos.

 

En inferencia, cuando el modelo está en producción.

 

Se suelen usar estadísticas promedio calculadas durante el entrenamiento.

 

Ejemplo intuitivo

 

Imagina una red neuronal que debe clasificar imágenes.

 

Durante el entrenamiento, los pesos de la red cambian constantemente.

 

Sin Batch Normalization, la entrada de cada capa podría variar drásticamente.

 

Haría que la red necesite reajustarse con frecuencia.

 

Batch Normalization estabiliza estas entradas al asegurarse de que tengan una distribución consistente.

 

Media y varianza estables, facilitando el entrenamiento y permitiendo a la red aprender de manera más eficiente.

 

Batch Normalization es una técnica clave que ha revolucionado el entrenamiento de redes neuronales profundas.

 

Al mejorar la estabilidad y velocidad de convergencia.

 

 

Manu Duque
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal.

Puedes revisar nuestra política en la página de Política de Privacidad, Condiciones de Uso y Cookies.