La normalización es una técnica fundamental de preprocesamiento de datos muy utilizada en el aprendizaje automático (AM) y la ciencia de datos. Su objetivo principal es reescalar las características numéricas de los datos a un rango estándar común, a menudo entre 0 y 1 o -1 y 1, sin distorsionar las diferencias en los rangos de valores. Este proceso garantiza que todas las características contribuyan de forma más equitativa al entrenamiento del modelo, evitando que las características con valores inherentemente mayores (como el salario en un conjunto de datos) influyan desproporcionadamente en el resultado en comparación con las características con valores menores (como los años de experiencia). La normalización es especialmente crucial para los algoritmos sensibles al escalado de características, como los métodos basados en el descenso de gradiente utilizados en el aprendizaje profundo (AD) y diversos algoritmos de optimización.
Por qué es importante la normalización
Los conjuntos de datos del mundo real suelen contener características con escalas y unidades muy diferentes. Por ejemplo, en un conjunto de datos para predecir la pérdida de clientes, el "saldo de cuenta" puede oscilar entre cientos y millones, mientras que el "número de productos" puede variar entre 1 y 10. Sin normalización, los algoritmos de ML que calculan distancias o utilizan gradientes, como las máquinas de vectores de soporte (SVM) o las redes neuronales (NN), podrían percibir incorrectamente la característica con el rango mayor como más importante simplemente debido a su escala. La normalización nivela el campo de juego, asegurando que la contribución de cada característica se basa en su poder predictivo, no en su magnitud. Esto conduce a una convergencia más rápida durante el entrenamiento (como se observa en la reducción de las épocas), a una mayor precisión del modelo y a modelos más estables y robustos. Esta estabilidad es beneficiosa cuando se entrenan modelos como Ultralytics YOLO para tareas como la detección de objetos o la segmentación de instancias, mejorando potencialmente métricas como la Precisión Media Media (mAP).
Técnicas comunes de normalización
Existen varios métodos para reescalar datos, cada uno adecuado para situaciones diferentes:
- Escala Mín-Máx: Reescala las características a un intervalo fijo, normalmente [0, 1]. Se calcula como (valor - mín) / (máx - mín). Este método conserva la forma de la distribución original, pero es sensible a los valores atípicos.
- Estandarización de la puntuación Z (Escala estándar): Reescala los rasgos para que tengan una media de 0 y una desviación típica de 1. Se calcula como: (valor - media) / desviación típica. A diferencia del escalado Mín-Máx, no vincula los valores a un intervalo específico, lo que puede ser un inconveniente para los algoritmos que requieren entradas dentro de un intervalo acotado, pero maneja mejor los valores atípicos. Puedes encontrar más información sobre estos y otros métodos en la documentación de Preprocesamiento de Scikit-learn.
- Escala robusta: Utiliza estadísticos robustos a los valores atípicos, como el rango intercuartílico (IQR), en lugar de mín/máx o media/desv. std. Es especialmente útil cuando el conjunto de datos contiene valores atípicos significativos. Más información sobre Escala robusta.
La elección entre estas técnicas suele depender del conjunto de datos específico (como los que se encuentran en Ultralytics Datasets) y de los requisitos del algoritmo de ML que se utilice. Las guías sobre preprocesamiento de datos anotados suelen cubrir los pasos de normalización relevantes para tareas específicas.
Normalización vs. Estandarización vs. Normalización por lotes
Es importante distinguir la normalización de los conceptos relacionados:
- Estandarización: A menudo utilizada indistintamente con la normalización de puntuación Z, esta técnica transforma los datos para que tengan media cero y varianza unitaria. Mientras que la normalización suele ajustar los datos a un intervalo fijo (por ejemplo, de 0 a 1), la normalización centra los datos en torno a la media y los ajusta en función de la desviación típica, sin limitarlos necesariamente a un intervalo específico.
- Normalización por lotes: Es una técnica que se aplica dentro de una red neuronal durante el entrenamiento, concretamente a las entradas de las capas o activaciones. Normaliza las salidas de una capa de activación anterior para cada minilote, estabilizando y acelerando el proceso de entrenamiento al reducir el problema del desplazamiento interno de las covariables. A diferencia de la normalización de características (Min-Max o Z-score), que es un paso de preprocesamiento aplicado al conjunto de datos inicial, la Normalización por Lotes forma parte de la propia arquitectura de la red, adaptándose dinámicamente durante el entrenamiento del modelo.
Aplicaciones de la normalización
La normalización es un paso omnipresente en la preparación de datos para diversas tareas de Inteligencia Artificial (IA) y ML:
- Visión por ordenador (CV): Los valores de los píxeles de las imágenes (que suelen ir de 0 a 255) suelen normalizarse a [0, 1] o [-1, 1] antes de introducirlos en las Redes Neuronales Convolucionales (RNC). Esto garantiza la coherencia entre las imágenes y ayuda a la red a aprender características de forma más eficaz para tareas como la clasificación de imágenes, la detección de objetos mediante modelos como YOLO11 y la segmentación de imágenes. Muchos conjuntos de datos CV estándar se benefician de este paso de preprocesamiento.
- Análisis de imágenes médicas: En aplicaciones como la detección de tumores mediante modelos YOLO , es crucial normalizar los valores de intensidad de las resonancias magnéticas o las tomografías computarizadas. Diferentes equipos de escaneado o configuraciones pueden producir imágenes con escalas de intensidad distintas. La normalización garantiza que el análisis sea coherente y comparable en diferentes exploraciones y pacientes, lo que conduce a modelos de diagnóstico más fiables. Esto es vital en áreas como la IA en la asistencia sanitaria.
- Modelización predictiva: Cuando se construyen modelos para predecir resultados basados en diversas características (por ejemplo, predecir el precio de la vivienda basándose en el tamaño, el número de habitaciones y las coordenadas de ubicación), la normalización garantiza que las características con rangos numéricos mayores (como los metros cuadrados) no dominen los cálculos basados en la distancia (por ejemplo, en k-Nearest Neighbors) o las actualizaciones de gradiente durante el entrenamiento. Esto es habitual en los análisis financieros y comerciales.
- Procesamiento del Lenguaje Natural (PLN): Aunque es menos común para el texto en bruto, la normalización puede aplicarse a características numéricas derivadas, como las frecuencias de palabras o las puntuaciones TF, especialmente cuando se combinan con otros tipos de características en un modelo más amplio.
En resumen, la normalización es un paso vital del preprocesamiento que escala las características de los datos a un rango consistente, mejorando el proceso de entrenamiento, la estabilidad y el rendimiento de muchos modelos de aprendizaje automático, incluidos los desarrollados y entrenados con herramientas como Ultralytics HUB. Garantiza una contribución justa de las características y es esencial para los algoritmos sensibles a la escala de entrada, contribuyendo a soluciones de IA más robustas y precisas.