Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Batch Normalization

La normalización por lotes estandariza cada canal en un minilote y luego lo reescala con parámetros aprendidos. Incluye las matemáticas, el comportamiento durante la inferencia y sus límites.

La normalización por lotes, o BatchNorm, es una capa de red neuronal que normaliza cada canal de su entrada usando la media y la varianza del minilote actual y, después, vuelve a escalar el resultado con dos parámetros aprendidos. Sergey Ioffe y Christian Szegedy la presentaron en 2015, y permitió que su clasificador de imágenes Inception alcanzara la misma precisión con 14 veces menos pasos de entrenamiento. BatchNorm permite usar tasas de aprendizaje más altas, hace que el entrenamiento sea menos sensible a la inicialización de los pesos y se convirtió en un componente estándar de las redes neuronales convolucionales (CNNs), como ResNet.

Cómo funciona la normalización por lotes#

Para una capa convolucional, BatchNorm calcula una media μ y una varianza σ² por canal, agrupando todas las imágenes del lote y todas las posiciones espaciales. Después, cada activación x sigue dos pasos:

  1. Normalización: x̂ = (x − μ) / √(σ² + ε), donde un ε pequeño, 1e-5 por defecto en PyTorch, evita la división por cero.
  2. Escalado y desplazamiento: y = γ·x̂ + β, donde γ y β se aprenden para cada canal. Permiten que la red restaure la media y la dispersión que convengan a la capa siguiente, incluso deshaciendo por completo la normalización.

BatchNorm suele situarse entre una convolución y su función de activación. Como β ya añade un desplazamiento por canal, el sesgo de la convolución anterior es redundante y normalmente se desactiva.

Entrenamiento frente a inferencia#

Durante el entrenamiento, cada propagación hacia delante también actualiza una media móvil y una varianza móvil, calculadas como promedios móviles exponenciales de las estadísticas del lote. BatchNorm2d de PyTorch las acerca por defecto un 10 % a cada lote nuevo (momentum=0.1). Durante la inferencia, la capa normaliza con estas medias móviles, por lo que la predicción de una imagen ya no depende de qué otras imágenes haya en su lote. model.train() y model.eval() alternan entre ambos comportamientos:

import torch

torch.manual_seed(0)
bn = torch.nn.BatchNorm2d(num_features=3)

# A batch of 8 three-channel feature maps with mean 5 and standard deviation 2
x = 5 + 2 * torch.randn(8, 3, 16, 16)

# Training mode normalizes with this batch's per-channel mean and variance
out = bn(x)
print(f"train mode: output mean {out.mean():.3f}, std {out.std():.3f}")

# The same call nudges the running averages 10% of the way toward the batch statistics
print(f"running mean {bn.running_mean[0]:.3f}, running var {bn.running_var[0]:.3f}")

# Eval mode normalizes with the running averages instead of the batch statistics
bn.eval()
out = bn(x)
print(f"eval mode:  output mean {out.mean():.3f}, std {out.std():.3f}")

En modo de entrenamiento, la salida tiene una media de 0.000 y una desviación estándar de 1.000, aunque la entrada tenga una media de 5. Tras un lote, la media móvil solo ha pasado de 0 a 0.496 y la varianza móvil, de 1 a 1.294, por lo que el modo de evaluación genera salidas con una media de 3.920. Las medias móviles necesitan varias decenas de lotes para converger, y un modelo evaluado en el modo incorrecto, o antes de que sus estadísticas se estabilicen, obtiene una puntuación muy inferior a su precisión real.

Durante la inferencia, BatchNorm es una transformación lineal fija por canal, por lo que puede integrarse en la convolución anterior: los pesos de la convolución se multiplican por γ/√(σ² + ε), y el sesgo pasa a ser β − γμ/√(σ² + ε). El bloque de convolución estándar de YOLO26 consta de una convolución sin sesgo, seguida de BatchNorm y una activación SiLU. Ultralytics fusiona cada una de estas capas BatchNorm con su convolución antes de la predicción y la exportación, lo que elimina la capa y mantiene las mismas salidas.

Por qué ayuda la normalización por lotes#

El artículo original atribuyó el beneficio de BatchNorm a la reducción del cambio de covariables interno: el cambio en la distribución de entrada de cada capa a medida que se actualizan las capas anteriores. Más adelante, experimentos que introdujeron cambios aleatorios en la distribución tras las capas BatchNorm comprobaron que el entrenamiento apenas se veía afectado y atribuyeron el beneficio a una superficie de pérdida más suave, con gradientes más predecibles, que permite al optimizador dar pasos más grandes y estables. Mantener las preactivaciones cerca de una media cero y una varianza unitaria también evita que las activaciones saturantes entren en sus regiones planas, lo que ayuda a combatir los gradientes que desaparecen.

Como cada ejemplo se normaliza con las estadísticas de un lote elegido al azar, BatchNorm también añade ruido que actúa como un regularizador moderado. El artículo original señaló que, en algunos casos, podía eliminar la necesidad de usar dropout.

Limitaciones#

  • Lotes pequeños: Las estadísticas del lote se vuelven ruidosas cuando cada dispositivo procesa pocas imágenes. Con 2 imágenes por GPU, la normalización por grupos, que calcula las estadísticas para grupos de canales dentro de cada imagen, obtuvo un error en ImageNet un 10,6 % menor que BatchNorm en ResNet-50.
  • Entrenamiento con varias GPU: Cada GPU normaliza con su propia parte del lote, salvo que las capas se conviertan a SyncBatchNorm, que agrupa las estadísticas entre dispositivos a costa de una comunicación adicional.
  • Modelos secuenciales: Las secuencias de longitud variable y las estadísticas dependientes del lote no encajan bien, por lo que los transformers utilizan la normalización por capas.
  • Normalización de datos: Vuelve a escalar las entradas sin procesar una sola vez durante el preprocesamiento; por ejemplo, dividiendo los valores de los píxeles entre 255. BatchNorm normaliza las activaciones intermedias en cada capa y en cada paso de entrenamiento.
  • Normalización por capas: Normaliza cada ejemplo usando sus propias características, por lo que se comporta igual durante el entrenamiento y la inferencia y no depende del tamaño del lote. RMSNorm, una variante más sencilla que no resta la media, es habitual en los modelos de lenguaje grandes.
  • Normalización por grupos: Divide los canales de cada imagen en grupos y normaliza cada grupo, algo adecuado para modelos de detección y segmentación entrenados con lotes pequeños.
  • Normalización por instancias: Normaliza por separado cada canal de cada imagen y elimina el contraste propio de cada imagen. Sustituir BatchNorm por la normalización por instancias, tanto durante el entrenamiento como durante la prueba, mejoró notablemente la calidad de la transferencia de estilo neuronal rápida.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático