Aumento de datos (data augmentation) es una técnica en aprendizaje automático y visión por computadora
Consiste en ampliar artificialmente el conjunto de datos de entrenamiento.
Mediante la creación de nuevas muestras a partir de las ya existentes.
Se logra mediante la aplicación de transformaciones
Que aunque modifiquen las instancias de datos.
Mantengan las características clave de la clase a la que pertenecen.
Este enfoque es especialmente útil en problemas con conjuntos de datos limitados.
Donde mejorar la generalización del modelo.
Sin obtener más datos reales es fundamental.
¿Cómo funciona el aumento de datos?
En lugar de recopilar datos adicionales, el aumento de datos permite crear versiones modificadas de las muestras originales
Aplicando técnicas de transformación que dependen del tipo de datos.
Estas transformaciones suelen ser aleatorias.
De modo que el modelo no vea siempre las mismas versiones.
De los datos durante el entrenamiento.
La idea es hacer que el modelo sea más robusto frente a variaciones en los datos.
Técnicas Comunes de Aumento de Datos
Las técnicas de aumento de datos dependen del tipo de datos.
Imágenes, texto, audio, etc. siendo las más comunes en visión por computadora
Rotación y Escalado
Las imágenes pueden rotarse en distintos ángulos o escaladas aumentadas o reducidas.
Ayuda al modelo a reconocer objetos desde distintas orientaciones y tamaños.
Mejorando la invariancia del modelo frente a cambios de orientación y escala.
Desplazamiento y Recorte
El desplazamiento o recorte de una imagen implica moverse.
En direcciones horizontales o verticales recortar secciones.
Ayuda al modelo a generalizar y ser menos sensible.
A la posición exacta del objeto dentro de la imagen.
Ajuste de Brillo, Contraste y Color
Modificaciones en brillo, contraste y color.
Simulan variaciones en las condiciones de iluminación.
Permite que el modelo sea más robusto frente a distintas condiciones de luz.
Ruido y Desenfoque
Agregar ruido por ejemplo, ruido gaussiano.
Desenfoque simula imperfecciones en la captura de las imágenes.
Ayuda a que el modelo generalice en escenarios con datos ruidosos o desenfocados.
Flipping y Espejado (Reflexión Horizontal y Vertical)
Girar o girar horizontal o verticalmente una imagen es útil.
Especialmente cuando se espera que los objetos aparezcan en diversas orientaciones.
Corte Aleatorio y Ocultamiento de Píxeles (Cutout)
Este método consiste en cubrir áreas específicas de una imagen con píxeles en blanco o negro.
Desafiando al modelo a realizar predicciones cuando parte de la información está oculta.
Interpolación o Aumento Sintético
Para datos tabulares y de series temporales.
Se puede usar interpolación, creación de muestras sintéticas.
Técnicas como SMOTE (Synthetic Minority Over-sampling Technique)
Para crear nuevas muestras en clases menos representadas.
Aumento de Datos en Texto y Audio
El aumento de datos también se aplica a texto y audio.
Para texto
Se incluyen reemplazo de sinónimos, traducción a otro idioma y vuelta al original.
Permutación de palabras o eliminación de palabras no esenciales.
Para audio
Se realizan técnicas como cambio de tono.
Modificación de velocidad, inversión o adición de ruido de fondo.
Ventajas del Aumento de Datos
Mejora la Generalización
Ayuda a evitar el sobreajuste (overfitting).
El modelo y variaciones de los datos originales.
Generalizando mejor a datos no vistos.
Reduce la Necesidad de Datos
Permite una cantidad de datos efectivos mayor sin necesidad de recopilar datos adicionales.
Es especialmente útil en contextos donde la obtención de datos es costosa o difícil.
Aumenta la Robustez del Modelo
Al exponer el modelo a diferentes variaciones y perturbaciones.
Se vuelve más robusto frente a condiciones adversas o variaciones en los datos reales.
Desafíos del Aumento de Datos
Desbalance de Clases
Si se generan muestras adicionales de forma uniforme.
No puede abordar el problema del desbalance de clases.
Esto se resuelve aplicando aumento de datos.
De manera focalizada en las clases menos representadas.
Ruido y Desviación
El aumento excesivo puede introducir ruido que desoriente al modelo.
La calidad del aumento debe controlarse cuidadosamente.
Costos Computacionales
Generar y entrenar modelos con datos aumentados.
Puede requerir más tiempo de procesamiento y almacenamiento.
Aplicaciones del Aumento de Datos
El aumento de datos es ampliamente utilizado.
En áreas donde los datos etiquetados son limitados o difíciles de obtener.
Visión por Computadora
Reconocimiento de imágenes, clasificación y segmentación.
Procesamiento de Lenguaje Natural (PNL)
Clasificación de texto, análisis de sentimientos, traducción.
Reconocimiento de Voz y Sonido
Para mejorar la detección en ambientes ruidosos o con acentos variados.
Detección de Fraude y Seguridad
En análisis de datos transaccionales y comportamiento inusual en redes.
Ejemplos de herramientas para aumento de datos
Existen bibliotecas varias y herramientas que simplifican la aplicación.
De aumento de datos en diferentes tipos de datos.
Imagen
Albumentaciones, Augmentor, y Keras ImageDataGenerator.
Texto
NLPaug, TextAttack y Snorkel.
Audio
librosa, torchaudio y audiomentations.
El aumento de datos es una técnica esencial en el entrenamiento de modelos de IA.
En casos con datos limitados o costosos de obtener.
A través de la creación de variaciones de los datos originales.
Permite que los modelos se vuelvan más robustos.
Generalicen mejor y sean menos sensibles a variaciones.
En las condiciones de los datos reales.
Cuando se aplica correctamente, el aumento de datos es una estrategia potente