Normalización
Descubra cómo la normalización mejora el entrenamiento y la precisión de los modelos. Obtenga información sobre el escalado Min-Max, la estandarización de la puntuación Z y su función en los proyectos Ultralytics .
La normalización es una técnica fundamental en el
preprocesamiento de datos que implica reescalar
los atributos numéricos a un rango estándar. En el contexto del
aprendizaje automático (ML), los conjuntos de datos suelen contener
características con escalas variables, como rangos de edad (0-100) frente a niveles de ingresos (0-100 000). Si no se tratan, estas
disparidades pueden hacer que el
algoritmo de optimización se incline
hacia los valores más altos, lo que ralentiza la convergencia y da lugar a un rendimiento subóptimo. Al normalizar los datos, los ingenieros se aseguran de
que cada característica contribuya de manera proporcional al resultado final, lo que permite que
las redes neuronales aprendan de manera más eficiente.
Técnicas habituales de normalización
Existen varios métodos estándar para transformar datos, cada uno adecuado para diferentes distribuciones y requisitos de algoritmos
.
-
Escalado mínimo-máximo:
Esta es la forma más intuitiva de normalización. Reescala los datos a un rango fijo, normalmente [0, 1]. Esta
transformación se realiza restando el valor mínimo y dividiendo por el rango (máximo menos mínimo). Se
utiliza ampliamente en el
procesamiento de imágenes
, donde se sabe que las intensidades de los píxeles están limitadas entre 0 y 255.
-
Estandarización de la puntuación Z: Aunque a menudo
se utiliza indistintamente con la normalización, la estandarización transforma específicamente los datos para que tengan una media de 0 y una
desviación estándar de 1. Esto es especialmente útil cuando los datos siguen una
distribución gaussiana y es esencial para
algoritmos como
las máquinas de vectores de soporte (SVM), que
asumen datos distribuidos normalmente.
-
Escalado logarítmico:
Para datos que contienen valores atípicos extremos o que siguen una ley de potencias, la aplicación de una transformación logarítmica puede comprimir
el rango de valores. Esto hace que la distribución sea más manejable para que el
motor de inferencia la interprete de manera eficaz
sin verse sesgado por picos de valores masivos.
Aplicaciones en el mundo real
La normalización es un paso estándar en los procesos de los sistemas de IA de alto rendimiento en diversos sectores.
-
Visión artificial (CV): En tareas como la
detección de objetos y la
clasificación de imágenes, las imágenes digitales se
componen de valores de píxeles que van de 0 a 255. Introducir estos grandes números enteros directamente en una red puede ralentizar el
descenso del gradiente. Un paso de preprocesamiento estándar
consiste en dividir los valores de píxeles por 255,0 para normalizarlos al rango [0, 1]. Esta práctica garantiza entradas consistentes
para modelos avanzados como YOLO26, lo que mejora la estabilidad del entrenamiento
en la Ultralytics .
-
Análisis de imágenes médicas: Las exploraciones médicas, como las que se utilizan en la
IA en el ámbito sanitario, suelen proceder de
diferentes máquinas con escalas de intensidad variables. La normalización garantiza que las intensidades de los píxeles de una resonancia magnética o una tomografía computarizada
sean comparables entre diferentes pacientes y equipos. Esta coherencia es fundamental para la detección precisa de
tumores, ya que
permite al modelo centrarse en las anomalías estructurales en lugar de en las variaciones de brillo.
Distinguir conceptos relacionados
Es importante diferenciar la normalización de términos similares de preprocesamiento y arquitectura que se encuentran en el aprendizaje profundo
.
-
vs. Normalización por lotes:
La normalización de datos es un paso de preprocesamiento que se aplica al conjunto de datos de entrada sin procesar antes de que entre en la red.
Por el contrario, la normalización por lotes opera internamente entre capas a lo largo de la red durante
el entrenamiento del modelo. Normaliza la salida de una
capa de activación anterior para estabilizar el proceso de aprendizaje.
-
vs. Aumento de imágenes:
Mientras que la normalización cambia la escala de los valores de los píxeles, el aumento cambia el contenido o la
geometría de la imagen (por ejemplo, volteando, rotando o cambiando colores) para aumentar la diversidad del conjunto de datos. Herramientas como
Albumentations se utilizan para el aumento,
mientras que la normalización es una operación matemática de escalado.
Ejemplo de aplicación
En la visión por computadora, la normalización suele ser el primer paso del proceso. El siguiente
Python muestra cómo normalizar manualmente datos de imagen utilizando la
NumPy , un proceso que se realiza automáticamente en el
cargador de datos Ultralytics durante el entrenamiento.
import numpy as np
# Simulate a 2x2 pixel image with values ranging from 0 to 255
raw_image = np.array([[0, 255], [127, 64]], dtype=np.float32)
# Apply Min-Max normalization to scale values to [0, 1]
# This standardizes the input for the neural network
normalized_image = raw_image / 255.0
print(f"Original Range: {raw_image.min()} - {raw_image.max()}")
print(f"Normalized Range: {normalized_image.min()} - {normalized_image.max()}")