Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Normalización por lotes (Batch Normalization)

¡Mejore el rendimiento del deep learning con la normalización por lotes! Aprenda cómo esta técnica mejora la velocidad de entrenamiento, la estabilidad y la precisión en los modelos de IA.

La normalización por lotes, a menudo abreviada como BatchNorm, es una técnica fundamental en el aprendizaje profundo (deep learning, DL) diseñada para aumentar el rendimiento de los algoritmos de aprendizaje profundo. aprendizaje profundo (deep learning, DL) diseñada para la estabilidad y la velocidad de redes neuronales profundas. Introducida en un de investigación de 2015 de Sergey Ioffe y Christian Szegedy, este método Este método aborda el problema del "desplazamiento interno de covariables", un fenómeno en el que la distribución de las entradas a una capa de la red cambia continuamente a medida que los parámetros de las capas de la red cambian. una capa de la red cambia continuamente a medida que se actualizan los parámetros de las capas precedentes. Al normalizar las entradas de cada capa en un mini lote, BatchNorm permite a los modelos utilizar mayores de aprendizaje y reduce significativamente la sensibilidad a los pesos iniciales de los parámetros.

Cómo funciona la normalización por lotes

En una red neuronal convolucional (CNN), se inserta una capa de normalización por lotes inmediatamente después de una capa convolucional o de conexión completa y antes de la función de activación no lineal (como ReLU o la función de activación por lotes). función de activación no lineal (como ReLU o SiLU). El proceso consta de dos pasos principales que se realizan durante la fase de entrenamiento del modelo:

  1. Normalización: La capa calcula la media y la varianza de las activaciones dentro del tamaño de lote actual. actual. A continuación, resta la media del lote y divide por la desviación estándar del lote, estandarizando efectivamente las entradas para que tengan media cero y varianza unitaria.
  2. Escalado y desplazamiento: Para evitar que la normalización limite la capacidad expresiva de la red, la capa introduce dos parámetros aprendibles: un factor de escala (gamma) y un factor de desplazamiento (beta). Esto permite a la red red restablecer la transformación de identidad si es óptima, garantizando que los los pesos del modelo puedan seguir representando características complejas.

Durante la inferencia, la utilización de estadísticas por lotes es poco práctica porque las predicciones se hacen a menudo sobre elementos individuales. En su lugar, el modelo utiliza una media móvil de la media y la varianza acumuladas durante el entrenamiento para normalizar las entradas de forma determinista.

Principales ventajas del aprendizaje profundo

La integración de la normalización por lotes en el diseño de la arquitectura ofrece varias ventajas distintivas que la han convertido en un estándar en la IA moderna:

  • Convergencia acelerada: Al estabilizar la distribución de las entradas de capa, BatchNorm suaviza el paisaje de optimización. Esto permite que el algoritmo de descenso de gradiente converja converger más rápidamente, reduciendo el tiempo total de entrenamiento.
  • Mitigación de gradientes desvanecidos: En redes muy profundas, los gradientes pueden volverse insignificantemente insignificante, deteniendo el aprendizaje. BatchNorm ayuda a mantener las activaciones en una región no saturada, combatiendo eficazmente el problema del gradiente de fuga común en las redes sigmoidales. problema de gradiente evanescente común en las arquitecturas basadas en sigmoide o tanh. o tanh.
  • Efecto de regularización: El ruido introducido por la estimación de estadísticas en minilotes actúa como una leve forma de regularización. Esto puede reducir sobreajuste y, en algunos casos, disminuir la dependencia de otras técnicas como las capas de abandono.

Aplicaciones en el mundo real

La normalización por lotes es omnipresente en visión por computador (CV) y más allá, permitiendo el rendimiento de los modelos más avanzados.

  • Detección avanzada de objetos: Arquitecturas modernas como Ultralytics YOLO11 se basan en gran medida en capas BatchNorm. En estos modelos, la normalización garantiza que las características detectadas a varias escalas (como bordes o texturas) se mantengan a pesar de las variaciones en el contraste o la iluminación de la imagen. precisión en diversos entornos.
  • Análisis de imágenes médicas: En campos como AI en sanidad, los modelos que analizan tomografías computarizadas o resonancias magnéticas deben manejar datos de diferentes máquinas con distintos rangos de intensidad. BatchNorm ayuda a las redes neuronales redes neuronales a generalizar en estos ámbitos, lo que permite detección de tumores centrándose en las características estructurales en lugar de en la intensidad absoluta de los píxeles.

Distinciones de conceptos relacionados

Es importante distinguir la normalización por lotes de otras técnicas similares de preprocesamiento y arquitectura:

  • vs. Normalización de datos: La normalización de datos es un preprocesamiento de datos que se aplica al conjunto de datos (por ejemplo, escalar los valores de los píxeles a [0, 1]) antes de que entren en la red. BatchNorm, por el contrario, opera internamente entre las capas de la red.
  • frente a la normalización por capas: Mientras que BatchNorm normaliza a través de la dimensión del lote, la normalización por capas calcula las estadísticas de la dimensión de la característica para una sola muestra. Capa Norm suele preferirse en redes neuronales recurrentes (RNN) y los transformadores utilizados en procesamiento del lenguaje natural (PLN) donde las dependencias por lotes pueden ser problemáticas.

Ejemplo de aplicación

Frameworks populares como PyTorch y TensorFlow proporcionan implementaciones integradas (p. ej, torch.nn.BatchNorm2d o tf.keras.layers.BatchNormalization). El siguiente ejemplo muestra cómo inspeccionar un modelo YOLO11 para observar las capas BatchNorm integradas en su arquitectura.

from ultralytics import YOLO

# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")

# Display the model summary
# Look for 'BatchNorm2d' in the output to see where normalization is applied
model.info()

# Example output line from info():
# 0  -1  1  464  ultralytics.nn.modules.conv.Conv  [3, 16, 3, 2]
# The Conv module in Ultralytics typically includes Conv2d + BatchNorm2d + SiLU

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora