Descubra cómo la normalización por lotes estabiliza los modelos de aprendizaje profundo. Aprenda cómo Ultralytics utiliza BatchNorm para acelerar el entrenamiento y mejorar la precisión de la IA.
La normalización por lotes, frecuentemente denominada BatchNorm, es una técnica utilizada en el aprendizaje profundo (DL) para estabilizar y acelerar el entrenamiento de redes neuronales artificiales. Introducida para resolver el problema del desplazamiento interno de covariables, en el que la distribución de las entradas a una capa cambia continuamente a medida que se actualizan los parámetros de las capas anteriores, BatchNorm estandariza las entradas a una capa para cada minilote. Al normalizar las entradas de la capa para que tengan una media de cero y una desviación estándar de uno, y luego escalarlas y desplazarlas con parámetros aprendibles, este método permite a las redes utilizar tasas de aprendizaje más altas y reduce la sensibilidad a la inicialización.
En una red neuronal convolucional (CNN) estándar, los datos fluyen a través de capas en las que cada capa realiza una transformación. Sin normalización, la escala de los valores de salida puede variar enormemente, lo que dificulta que el algoritmo de optimización encuentre los mejores pesos. La normalización por lotes se aplica normalmente justo antes de la función de activación (como ReLU o SiLU).
El proceso implica dos pasos principales durante la formación:
Este mecanismo actúa como una forma de regularización, reduciendo ligeramente la necesidad de otras técnicas como las capas de dropout al añadir una pequeña cantidad de ruido a las activaciones durante el entrenamiento.
La integración de la normalización por lotes en arquitecturas como ResNet o los detectores de objetos modernos ofrece varias ventajas claras:
La normalización por lotes es un elemento básico en casi todos los sistemas modernos de visión por computadora (CV).
Es útil distinguir la normalización por lotes de la normalización de datos estándar.
Los marcos de aprendizaje profundo como PyTorch incluyen implementaciones optimizadas de la Normalización por lotes. En lasYOLO Ultralytics , estas capas se integran automáticamente en los bloques de convolución.
Los siguientes Python El fragmento de código muestra cómo inspeccionar un modelo para ver
dónde BatchNorm2d Las capas se encuentran dentro de la arquitectura.
from ultralytics import YOLO
# Load the YOLO26n model (nano version)
model = YOLO("yolo26n.pt")
# Print the model structure to view layers
# You will see 'BatchNorm2d' listed after 'Conv2d' layers
print(model.model)
Comprender cómo interactúan estas capas ayuda a los desarrolladores cuando utilizan la Ultralytics para ajustar los modelos en conjuntos de datos personalizados, lo que garantiza que el entrenamiento se mantenga estable incluso con datos limitados.