Batch Normalization/es: Difference between revisions
(Force re-parse after Math source-mode rollout (v1.2.0)) Tags: ci-deploy Reverted |
([deploy-bot] Deploy from CI (8c92aeb)) Tags: ci-deploy Manual revert |
||
| (One intermediate revision by the same user not shown) | |||
| Line 98: | Line 98: | ||
[[Category:Intermediate]] | [[Category:Intermediate]] | ||
[[Category:Neural Networks]] | [[Category:Neural Networks]] | ||
Latest revision as of 07:09, 24 April 2026
| Article | |
|---|---|
| Topic area | Deep Learning |
| Difficulty | Intermediate |
| Prerequisites | Neural Networks, Backpropagation |
Batch normalization (frecuentemente abreviado BatchNorm o BN) es una tecnica para mejorar la velocidad, estabilidad y rendimiento de las redes neuronales profundas mediante la normalizacion de las entradas a cada capa. Introducida por Ioffe y Szegedy en 2015, se ha convertido en un componente estandar en la mayoria de las arquitecturas modernas de aprendizaje profundo.
Desplazamiento covariante interno
La motivacion original de batch normalization fue abordar el desplazamiento covariante interno — el fenomeno por el cual la distribucion de las entradas de cada capa cambia durante el entrenamiento a medida que se actualizan los parametros de las capas precedentes. Esta distribucion cambiante obliga a cada capa a adaptarse continuamente, ralentizando la convergencia y requiriendo una inicializacion cuidadosa y tasas de aprendizaje pequenas.
Aunque el papel preciso del desplazamiento covariante interno ha sido debatido (Santurkar et al., 2018, argumentaron que los beneficios de BatchNorm provienen mas del suavizado del paisaje de perdida), la efectividad practica de la tecnica esta bien establecida.
El algoritmo de batch normalization
Durante el entrenamiento
Para un mini-lote $ \mathcal{B} = \{x_1, \dots, x_m\} $ de activaciones en una capa dada, BatchNorm procede de la siguiente manera:
Paso 1. Calcular la media y varianza del mini-lote:
- $ \mu_{\mathcal{B}} = \frac{1}{m} \sum_{i=1}^{m} x_i, \qquad \sigma_{\mathcal{B}}^2 = \frac{1}{m} \sum_{i=1}^{m} (x_i - \mu_{\mathcal{B}})^2 $
Paso 2. Normalizar:
- $ \hat{x}_i = \frac{x_i - \mu_{\mathcal{B}}}{\sqrt{\sigma_{\mathcal{B}}^2 + \epsilon}} $
donde $ \epsilon $ es una constante pequena (por ejemplo, $ 10^{-5} $) para estabilidad numerica.
Paso 3. Escalar y desplazar con parametros aprendidos $ \gamma $ y $ \beta $:
- $ y_i = \gamma \hat{x}_i + \beta $
Los parametros $ \gamma $ y $ \beta $ se aprenden durante el entrenamiento. Restauran la capacidad de la red para representar la transformacion identidad si esta es optima, asegurando que la normalizacion no reduzca la expresividad del modelo.
Durante la inferencia
En el momento de la inferencia, las estadisticas de mini-lotes individuales no son fiables (la entrada puede ser un unico ejemplo). En su lugar, BatchNorm utiliza estimaciones acumuladas de la media y varianza poblacional acumuladas durante el entrenamiento mediante promedios moviles exponenciales:
- $ \mu_{\mathrm{running}} \leftarrow (1 - \alpha)\, \mu_{\mathrm{running}} + \alpha\, \mu_{\mathcal{B}} $
- $ \sigma^2_{\mathrm{running}} \leftarrow (1 - \alpha)\, \sigma^2_{\mathrm{running}} + \alpha\, \sigma^2_{\mathcal{B}} $
donde $ \alpha $ es el parametro de momento (tipicamente 0.1). Estas estadisticas fijas aseguran salidas deterministas en la inferencia.
Beneficios
- Tasas de aprendizaje mas altas: Al restringir las distribuciones de activacion, BatchNorm permite pasos mas grandes sin divergencia.
- Menor sensibilidad a la inicializacion: Las redes con BatchNorm son mas tolerantes a una inicializacion de pesos deficiente.
- Efecto regularizador: El ruido introducido por las estadisticas del mini-lote actua como un regularizador suave, a veces reduciendo la necesidad de Dropout.
- Convergencia mas rapida: El entrenamiento tipicamente requiere menos epocas para alcanzar un nivel dado de rendimiento.
Ubicacion
BatchNorm se aplica tipicamente antes de la funcion de activacion (como en el articulo original), aunque algunos profesionales lo colocan despues de la activacion. Para capas convolucionales, la normalizacion se realiza por canal a traves de las dimensiones espaciales y la dimension del lote.
Alternativas de normalizacion
| Metodo | Normaliza sobre | Caso de uso |
|---|---|---|
| Batch Norm | Dimensiones del lote y espaciales, por canal | CNN con lotes grandes |
| Layer Norm | Todos los canales y dimensiones espaciales, por muestra | Transformers, RNN, lotes pequenos |
| Instance Norm | Solo dimensiones espaciales, por muestra por canal | Transferencia de estilo, generacion de imagenes |
| Group Norm | Grupos de canales, por muestra | Deteccion de objetos, entrenamiento con lotes pequenos |
La normalizacion de capa (Ba et al., 2016) normaliza a traves de todas las caracteristicas dentro de una unica muestra, haciendola independiente del tamano del lote. Es la opcion estandar en las arquitecturas Transformer.
La normalizacion de grupo (Wu y He, 2018) divide los canales en grupos y normaliza dentro de cada grupo por muestra. Sirve de puente entre Layer Norm e Instance Norm y funciona bien cuando los tamanos de lote son demasiado pequenos para obtener estadisticas de lote fiables.
Limitaciones
- El rendimiento se degrada con tamanos de lote muy pequenos, ya que las estadisticas del lote se vuelven ruidosas.
- Introduce una discrepancia entre el comportamiento de entrenamiento (estadisticas de lote) y el de inferencia (estadisticas acumuladas).
- No es directamente aplicable a secuencias de longitud variable sin relleno o enmascaramiento.
- Las estadisticas acumuladas requieren un manejo cuidadoso cuando se utiliza entrenamiento distribuido en multiples dispositivos.
Vease tambien
Referencias
- Ioffe, S. and Szegedy, C. (2015). "Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift". ICML.
- Ba, J. L., Kiros, J. R. and Hinton, G. E. (2016). "Layer Normalization". arXiv:1607.06450.
- Wu, Y. and He, K. (2018). "Group Normalization". ECCV.
- Santurkar, S. et al. (2018). "How Does Batch Normalization Help Optimization?". NeurIPS.