La aumentación de datos es una técnica estadística que genera nuevas muestras de entrenamiento aplicando transformaciones o perturbaciones a los datos existentes. En el aprendizaje automático, se utiliza ampliamente para reducir el sobreajuste y mejorar la generalización entrenando modelos en varias copias ligeramente modificadas del conjunto de datos original. El enfoque es particularmente valioso cuando los datos son escasos o están desequilibrados, ya que puede simular un conjunto de datos más grande y diverso, y mejorar la robustez del modelo.
En su forma estadística general, la aumentación de datos permite la estimación de máxima verosimilitud a partir de datos incompletos mediante la introducción de variables latentes o componentes de datos faltantes, un método con aplicaciones importantes en el análisis bayesiano. En el contexto del Machine learning, la técnica se ha convertido en una práctica estándar en diversos dominios, desde la clasificación de imágenes hasta el procesamiento de señales, debido a su capacidad para mejorar el rendimiento del modelo sin recopilar datos adicionales del mundo real.
Antecedentes históricos y primeros usos
Las raíces de la aumentación de datos en el aprendizaje automático se remontan a mediados de la década de 1990, cuando las redes neuronales convolucionales (CNN) comenzaron a crecer en tamaño. En ese momento, no había suficientes datos para entrenar estas redes de manera efectiva, especialmente porque una parte del conjunto de datos debía reservarse para pruebas. Los investigadores propusieron perturbar los datos existentes con transformaciones afines - como rotaciones, traslaciones y escalados - para crear nuevos ejemplos que compartieran las mismas etiquetas que los originales. Este enfoque se complementó con distorsiones elásticas en 2003, que introdujeron variaciones más sutiles y realistas. Para la década de 2010, la aumentación de datos se adoptó ampliamente en el entrenamiento de CNN, mejorando su rendimiento y sirviendo como contramedida contra ataques adversarios, como el perfilado.
Sobremuestreo sintético para datos desequilibrados
En el aprendizaje automático tradicional, un desafío común son los conjuntos de datos desequilibrados, donde una clase tiene significativamente menos muestras que otra. Por ejemplo, considere un conjunto de datos de diagnóstico médico con 90 muestras que representan individuos sanos y solo 10 muestras que representan individuos con una enfermedad específica. En tales casos, los algoritmos a menudo fallan al clasificar la clase minoritaria debido al sesgo hacia la clase mayoritaria.
La Técnica de Sobremuestreo Sintético de Minorías (SMOTE) aborda este problema generando muestras sintéticas para la clase minoritaria. SMOTE funciona seleccionando aleatoriamente una muestra de la clase minoritaria, encontrando sus vecinos más cercanos y creando nuevas muestras a lo largo de los segmentos de línea que conectan estos vecinos. Por ejemplo, si hay 100 muestras en la clase mayoritaria y 10 en la clase minoritaria, SMOTE puede producir muestras minoritarias sintéticas que aumenten la minoría a, digamos, 100 muestras, equilibrando así el conjunto de datos. Esta técnica, que surgió a principios de la década de 2000, mejora el rendimiento del modelo y es una piedra angular de la aumentación de datos para datos tabulares.
Técnicas para imágenes
La clasificación de imágenes ha sido uno de los principales beneficiarios de la aumentación de datos, especialmente con el auge del aprendizaje profundo. La práctica ha evolucionado para incluir una amplia gama de transformaciones, enriqueciendo los datos de entrenamiento para ayudar a los modelos a generalizar mejor. Las categorías comunes incluyen transformaciones geométricas, ajustes de espacio de color e inyección de ruido.
Transformaciones geométricas
Las transformaciones geométricas alteran las propiedades espaciales de las imágenes, simulando diferentes perspectivas, orientaciones y escalas. Las técnicas incluyen:
- Transformación afín (que combina rotación, reflexión, traslación y escalado)
- Rotación: rotar imágenes en un grado especificado para ayudar a los modelos a reconocer objetos en varios ángulos.
- Reflexión: reflejar imágenes horizontal o verticalmente para introducir variabilidad en la orientación.
- Traslación: desplazar imágenes en diferentes direcciones para enseñar a los modelos la invariancia posicional.
- Escalado: ajustar el tamaño de los objetos dentro de la imagen.
- Cizallamiento: inclinar imágenes para imitar diferentes ángulos de visión.
- Recorte: eliminar secciones de la imagen para enfocarse en características particulares o simular vistas más cercanas.
- Distorsión elástica: deformar la imagen de manera no lineal, propuesta en 2003 y efectiva en tareas como el reconocimiento de escritura a mano.
- Morfismo dentro de la misma clase: generar nuevas muestras aplicando técnicas de morfismo entre dos imágenes que pertenecen a la misma clase, aumentando así la diversidad intraclase.
Transformaciones de espacio de color
Las transformaciones de espacio de color modifican las propiedades de color de las imágenes, abordando variaciones en iluminación, saturación y contraste. Estas incluyen:
- Ajuste de brillo: variar el brillo de la imagen para simular diferentes condiciones de iluminación.
- Ajuste de contraste: cambiar el contraste para ayudar con diferentes niveles de claridad.
- Ajuste de saturación: alterar la saturación para preparar modelos para imágenes con intensidades de color diversas.
- Perturbación de color: ajustar aleatoriamente brillo, contraste, saturación y tono para introducir variabilidad de color, un estándar para mejorar la robustez en CNN.
Inyección de ruido
La inyección de ruido en imágenes simula imperfecciones del mundo real, enseñando a los modelos a ignorar variaciones irrelevantes. Las técnicas comunes incluyen:
- Ruido gaussiano: agregar ruido gaussiano para imitar el grano del sensor o el ruido electrónico.
- Ruido sal y pimienta: introducir píxeles blancos o negros aleatorios para simular polvo del sensor o píxeles muertos.
Estos métodos han sido fundamentales para hacer que los clasificadores sean robustos a las distorsiones del mundo real y se han utilizado ampliamente desde la década de 1990.
Aumentación de datos para procesamiento de señales
La aumentación de datos también es aplicable a series temporales y procesamiento de señales. Para series temporales, se pueden usar métodos de remuestreo residual o bootstrap para generar secuencias aumentadas, lo que ayuda a mejorar la robustez de los modelos que operan con datos temporales.
Señales biológicas
En el dominio de las señales biológicas, la aumentación de datos es de suma importancia debido a la alta dimensionalidad y escasez de dichos datos. Las aplicaciones en control robótico, y en sujetos discapacitados y no discapacitados, a menudo dependen de análisis específicos del sujeto debido al número limitado de muestras. Sin embargo, la generación de datos sintéticos puede expandir estos conjuntos de datos significativamente.
Los investigadores han notado la dificultad de obtener señales como la electromiografía (EMG) para la enfermedad de Parkinson. Zanini et al. demostraron el uso de una red generativa adversarial (en particular, una GAN convolucional profunda) para realizar transferencia de estilo, generando señales EMG sintéticas que corresponden a las de los pacientes con Parkinson. Este enfoque muestra cómo las técnicas de IA generativa pueden apoyar la aumentación de datos.
De manera similar, en datos de electroencefalografía (EEG), Wang et al. exploraron el uso de redes neuronales convolucionales profundas para el reconocimiento de emociones basado en EEG, y los resultados mostraron que la precisión del reconocimiento de emociones mejoró cuando se aplicó aumentación de datos.
Un método común para la generación de señales sintéticas implica reordenar componentes de datos reales. Lotte propuso un método llamado "Generación de Ensayos Artificiales Basada en Analogía", donde tres ejemplos de datos x₁, x₂ y x₃ proporcionan una base; por analogía, se construye una muestra sintética artificial x_sintética. Para hacer esto, se define una transformación que cambia x₁ para hacerlo más similar a x₂, y luego se aplica esta transformación a x₃, generando así la muestra sintética. Este enfoque se ha utilizado en aplicaciones de interfaz cerebro-computadora, donde la escasez de datos es severa.
La década de 2010 vio el auge del aprendizaje profundo, que ha amplificado la necesidad de aumentación de datos, ya que las redes neuronales requieren grandes cantidades de datos. Técnicas como SMOTE y métodos basados en GAN se han integrado en las herramientas para abordar desequilibrios y escasez en dominios especializados como imágenes médicas y señales biológicas.
Relación con otros métodos
La aumentación de datos a menudo se compara con otras formas de regularización, como el abandono (dropout) o la disminución de peso (weight decay), pero es distinta en que modifica los datos en lugar del modelo. Es un componente clave en el éxito de los modelos de aprendizaje profundo en visión por computadora (por ejemplo, en ImageNet), procesamiento de lenguaje natural y reconocimiento de voz.
En el campo de los transformadores, la aumentación de datos es típicamente menos común porque esos modelos se entrenan con corpus masivos, pero aún tiene aplicaciones, por ejemplo, en ajuste fino y aprendizaje con pocos ejemplos.
En los últimos años, los propios modelos generativos se han utilizado como aumentadores de datos, como el uso de redes generativas adversariales para producir imágenes realistas, pero las técnicas originales y ligeras siguen siendo populares debido a su bajo costo computacional.
Limitaciones y consideraciones
Si bien la aumentación de datos es efectiva, las transformaciones deben elegirse para preservar la etiqueta. Por ejemplo, un volteo horizontal de un dígito escrito a mano puede convertir un '6' en un '9', lo que podría engañar al modelo. Por lo tanto, la aumentación específica del dominio es crucial. Diferentes conjuntos de datos a menudo requieren diferentes estrategias de aumentación, y usar una aumentación inapropiada puede reducir la precisión del modelo.
En la clasificación de imágenes, la línea de investigación también se ha extendido desde transformaciones hechas a mano hasta políticas de aumentación aprendidas, como las que se encuentran en AutoAugment, que fue desarrollado en Google en 2019 para buscar estrategias de aumentación óptimas.
Además, en todos los dominios, la aumentación de datos siempre debe validarse en un conjunto de prueba separado, porque los datos sintéticos pueden introducir sesgos poco realistas. No obstante, la técnica se ha convertido en una herramienta fundamental en el arsenal del profesional del aprendizaje automático.
Dado el uso extenso en una variedad de campos, desde imágenes médicas hasta conducción autónoma, la aumentación de datos es fundamental en la IA moderna. Su adopción por parte de los principales proveedores de servicios en la nube, como Amazon Web Services, Azure y Google Cloud, ha permitido que los algoritmos estándar se integren en sus tuberías automatizadas de aprendizaje automático, permitiendo a los usuarios beneficiarse de estas técnicas sin escribir código personalizado.
La efectividad de la técnica para reducir el sobreajuste la hace esencial para modelos que se entrenan con conjuntos de datos limitados, y continúa siendo un área de investigación dinámica, con avances en modelos generativos que ofrecen nuevas posibilidades para crear datos sintéticos que imitan fielmente distribuciones reales.
En resumen, la aumentación de datos es un método versátil y poderoso que aborda la escasez de datos, el desequilibrio y el sobreajuste, con aplicaciones desde la visión por computadora hasta el procesamiento de lenguaje natural.