Neural Network Training Labs
Laboratorio 20 · Central · 21 / 31

🔄 Aumento de datos

Aumento de datos

Objetivo

Comparar recortes, volteos y perturbaciones sobre imágenes reales.

Dataset real

La evaluación usa imágenes de test sin aumento.

Fundamento matemático

Invariancias y regularización por transformaciones.

Protocolo experimental

  1. Descargar y verificar la procedencia.
  2. Conservar o crear una partición reproducible.
  3. Ajustar transformaciones únicamente con train.
  4. Seleccionar modelo e hiperparámetros usando validation.
  5. Evaluar test una sola vez tras congelar la decisión.
  6. Comparar con la línea base: CNN sin aumento.
  7. Guardar configuración, entorno, métricas, predicciones, gráficos y modelo.

Ejecución

python labs/20_data_augmentation/train.py --quick
python labs/20_data_augmentation/train.py --config improved

Preparar únicamente el dataset:

python -m neural_labs.cli dataset --lab 20_data_augmentation

Inferencia y exportación:

neural-labs predict --lab 20_data_augmentation --run latest --input sample.json
neural-labs export --lab 20_data_augmentation --run latest --format onnx --verify

Métricas

accuracy, macro_f1, robust_accuracy.

Archivos

Ejercicios

Material formativo v3

Comandos profesionales

neural-labs quality --lab 20_data_augmentation --quick
neural-labs benchmark --lab 20_data_augmentation --quick --split-seed 42 --training-seeds 41 42 43
neural-labs leaderboard

Sellado del experimento

La partición se controla con split_seed; la inicialización y el entrenamiento con training_seed. El conjunto test se abre solamente después de seleccionar el checkpoint mediante validación y escribir experiment.lock.json.

🧠 Teoría

Teoría — Aumento de datos

Propósito

Comparar recortes, volteos y perturbaciones sobre imágenes reales.

Idea central

Este laboratorio estudia aumento de datos seleccionado por validation usando cifar10, un dataset público real procedente de Torchvision / University of Toronto.

El aumento de datos (data augmentation) genera, sobre la marcha, variantes transformadas de cada imagen de entrenamiento —recortes, volteos horizontales, cambios de brillo o color— manteniendo su etiqueta. La motivación es sencilla y profunda: si sabemos que la clase "gato" no cambia porque la imagen se desplace unos píxeles o se refleje en espejo, entonces exponer a la red a esas versiones le enseña una invariancia que de otro modo tendría que descubrir por sí sola (o no aprendería nunca). Efectivamente, ampliamos el conjunto de entrenamiento con ejemplos plausibles y así reducimos el sobreajuste sin recolectar más datos.

La clave metodológica es que las transformaciones codifican conocimiento previo sobre qué variaciones son irrelevantes para la tarea, y ese conocimiento debe ser correcto: un volteo horizontal es inocuo para reconocer animales, pero destruiría la etiqueta de un dígito o de un texto. Por eso el catálogo y la intensidad del aumento se eligen con validation, no con test, y la evaluación final se hace siempre sobre imágenes de test sin aumentar. Sobre cifar10 (60.000 imágenes a color de 32×32 en 10 clases) comparamos una CNN con y sin aumento para aislar su contribución.

Fundamento matemático

Invariancias y regularización por transformaciones.

Sea T una transformación (recorte, volteo, jitter de color) muestreada de una distribución p(T) que preserva la etiqueta: si (x, y) es un par imagen–clase, queremos que el modelo cumpla f(T(x)) ≈ f(x) para toda T. El aumento de datos convierte el objetivo de entrenamiento en una esperanza sobre transformaciones: en lugar de minimizar ℒ(f(x), y) minimizamos 𝔼_{T∼p(T)}[ ℒ(f(T(x)), y) ]. En la práctica esa esperanza se aproxima con Monte Carlo: cada época, cada imagen se ve bajo una T distinta muestreada al azar, de modo que el modelo nunca recibe exactamente el mismo ejemplo dos veces. El efecto es que la red aprende a asignar la misma etiqueta a toda una órbita de versiones de x, es decir, aprende invariancia (o al menos robustez) frente a esa familia de transformaciones.

Visto como regularización, el aumento suaviza la función aprendida: promediar la pérdida sobre pequeñas perturbaciones de la entrada penaliza que f cambie bruscamente ante variaciones que la etiqueta considera irrelevantes, lo que empuja hacia fronteras de decisión más estables. Frente a la regularización explícita (weight decay, que actúa sobre los pesos) o al dropout (que actúa sobre las activaciones), el aumento actúa sobre el espacio de entrada e inyecta el sesgo inductivo de forma directa e interpretable. Técnicas como Cutout borran una región rectangular de la imagen para forzar el uso de múltiples pistas, mientras que estrategias aprendidas como AutoAugment buscan la política de transformaciones p(T) que maximiza la exactitud de validación, en lugar de fijarla a mano.

El riesgo es que una transformación demasiado agresiva rompa la premisa de invariancia y cambie de hecho la etiqueta (un recorte que elimina el objeto, un giro que convierte un 6 en un 9): entonces se inyecta ruido de etiqueta y el rendimiento cae. La condición de validez es siempre la misma: T debe preservar la semántica de la clase. La medición sobre imágenes de test sin aumento garantiza que la mejora reportada refleje generalización real y no un artefacto del procedimiento de evaluación.

Protocolo científico

Riesgos de interpretación

La evaluación usa imágenes de test sin aumento.

El dataset refleja su proceso de recolección y no representa automáticamente otros períodos, países o poblaciones. Una asociación predictiva no demuestra causalidad.

Pregunta crítica

¿La mejora proviene de invariancias coherentes?

🔗 Referencias

Las referencias apuntan a las obras; no se reproduce su contenido, la redacción es original.

🔬 Experimentos

Plan de experimentos — Aumento de datos

Hipótesis principal

Comparar recortes, volteos y perturbaciones sobre imágenes reales. La hipótesis debe aceptarse o rechazarse comparando el modelo con CNN sin aumento y no solo observando que la pérdida disminuye.

Experimento mínimo

  1. Ejecutar baseline.yaml con tres semillas.
  2. Ejecutar improved.yaml con las mismas semillas.
  3. Mantener fija la partición de datos dentro de cada semilla.
  4. Elegir la variante con validation.
  5. Comparar la variante elegida contra la línea base en test.
  6. Revisar intervalos de confianza, errores y costo computacional.

Experimento específico

Medir precisión limpia y robustez.

Variables controladas

Tabla que debe completarse

Variante Semilla Métrica validation Métrica test Tiempo Parámetros Observación
baseline 41
baseline 42
baseline 43
improved 41
improved 42
improved 43

Criterio de conclusión

La conclusión debe declarar magnitud de la mejora, incertidumbre, costo adicional, errores relevantes y condiciones bajo las cuales el resultado podría no repetirse.

📝 Evaluación

Evaluación — Aumento de datos

Evidencias obligatorias

Preguntas

  1. Explique con sus palabras: Invariancias y regularización por transformaciones.
  2. ¿Qué información del dataset solo puede utilizarse durante entrenamiento?
  3. ¿Por qué la línea base CNN sin aumento es una comparación razonable?
  4. ¿La mejora proviene de invariancias coherentes?
  5. ¿Qué cambiaría antes de usar este modelo fuera del laboratorio?

Rúbrica

Criterio Insuficiente Adecuado Excelente Peso
Integridad de datos mezcla particiones separación correcta auditoría, hashes y justificación 20%
Implementación no ejecuta entrena y evalúa código claro, reusable y probado 20%
Diseño experimental resultado aislado comparación controlada multi-semilla e incertidumbre 20%
Análisis repite métricas interpreta errores identifica sesgos, límites y costo 25%
Comunicación incompleta reporte entendible model card y conclusiones verificables 15%

La aprobación exige al menos 70% y cero errores críticos de fuga de datos.