Neural Network Training Labs
Laboratorio 06 · Central · 7 / 31

🧬 Autoencoder para fraude

Autoencoder para fraude

Objetivo

Detectar transacciones fraudulentas mediante error de reconstrucción.

Dataset real

284.807 transacciones reales; el laboratorio evita reequilibrar el conjunto de test.

Fundamento matemático

Minimizar ||x-decoder(encoder(x))||² sobre transacciones normales.

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: Isolation Forest.
  7. Guardar configuración, entorno, métricas, predicciones, gráficos y modelo.

Ejecución

python labs/06_autoencoder_anomaly/train.py --quick
python labs/06_autoencoder_anomaly/train.py --config improved

Preparar únicamente el dataset:

python -m neural_labs.cli dataset --lab 06_autoencoder_anomaly

Inferencia y exportación:

neural-labs predict --lab 06_autoencoder_anomaly --run latest --input sample.json
neural-labs export --lab 06_autoencoder_anomaly --run latest --format onnx --verify

Métricas

precision, recall, f1, roc_auc, pr_auc.

Archivos

Ejercicios

Material formativo v3

Comandos profesionales

neural-labs quality --lab 06_autoencoder_anomaly --quick
neural-labs benchmark --lab 06_autoencoder_anomaly --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 — Autoencoder para fraude

Propósito

Detectar transacciones fraudulentas mediante error de reconstrucción.

Idea central

Este laboratorio estudia reconstrucción para detección de anomalías usando credit_card_fraud, un dataset público real procedente de Kaggle / ULB.

La idea rectora es entrenar un modelo que solo aprenda a describir bien lo normal. Un autoencoder es una red con forma de reloj de arena: un codificador comprime la entrada x a una representación latente z de baja dimensión (el "cuello de botella"), y un decodificador intenta reconstruir x a partir de z. Si únicamente mostramos transacciones legítimas durante el entrenamiento, la red se especializa en la geometría de esa mayoría y aprende a copiar sus regularidades. Cuando más tarde le presentamos una transacción fraudulenta —que vive fuera de esa variedad aprendida— el decodificador falla y el error de reconstrucción se dispara. Ese error es, en la práctica, un detector de anomalías: no clasificamos "fraude vs. no fraude" directamente, sino que medimos cuánto se desvía cada caso del patrón normal.

El cuello de botella es lo que hace que esto funcione: al forzar z a tener menos dimensiones que x, la red no puede memorizar la identidad y debe descubrir los factores latentes que explican las transacciones comunes. Esto es especialmente valioso en fraude, donde los positivos son rarísimos (≈0,17 % del total) y un clasificador supervisado clásico tiende a ignorarlos; el enfoque no supervisado por reconstrucción esquiva ese desbalance porque nunca necesita ejemplos de fraude para aprender.

Fundamento matemático

Formalmente, el codificador es una función f con parámetros θ que produce el código z = f(x; θ) ∈ ℝᵏ, y el decodificador g con parámetros φ produce la reconstrucción x̂ = g(z; φ) = g(f(x; θ); φ). Con k ≪ d (dimensión de x), la composición está obligada a ser una proyección con pérdida sobre una variedad de baja dimensión. El objetivo de entrenamiento minimiza el error cuadrático medio de reconstrucción sobre las transacciones normales:

ℒ(θ, φ) = 𝔼ₓ ‖ x − g(f(x; θ); φ) ‖²  ≈  (1/N) Σᵢ ‖ xᵢ − x̂ᵢ ‖²

El gradiente ∇_{θ,φ} ℒ se propaga por retropropagación a través de decodificador y codificador, y los pesos se actualizan con descenso de gradiente estocástico o Adam: θ ← θ − η ∇_θ ℒ. La conexión con los cuatro elementos del laboratorio es: la representación de entrada es el vector x de características de la transacción (28 componentes PCA anonimizadas más Time y Amount normalizados); la función del modelo es la composición g∘f; la función de pérdida es el MSE de reconstrucción arriba; y la regla de actualización es el paso de gradiente. El notebook muestra las dimensiones de los tensores en cada capa y conserva la misma implementación que el script de terminal.

¿Por qué el MSE minimizado sobre datos normales sirve como puntaje de anomalía? Si asumimos que la reconstrucción está sujeta a un ruido gaussiano isótropo, minimizar ‖x − x̂‖² equivale a maximizar la log-verosimilitud de x bajo el modelo. Tras entrenar, el error r(x) = ‖x − g(f(x))‖² es bajo para lo que la red sabe reconstruir (lo normal) y alto para lo que nunca vio (el fraude). La regla de decisión es un simple umbral: se marca anomalía cuando r(x) > τ. El umbral τ no se elige a ojo: se calibra en validation, por ejemplo tomando un percentil alto (p. ej. el 99) de la distribución de errores sobre datos legítimos, o el punto que optimiza F1/coste esperado. Variar τ recorre la curva precision–recall completa, y por eso el laboratorio reporta ROC-AUC y PR-AUC en lugar de una sola métrica puntual.

Una extensión conceptual importante es el autoencoder variacional (VAE): en lugar de un código puntual z, el codificador produce una distribución q(z|x) = 𝒩(μ(x), σ²(x)) y se optimiza el ELBO, que suma el término de reconstrucción y una regularización KL, ℒ = 𝔼_q[‖x − x̂‖²] + β·D_KL(q(z|x) ‖ 𝒩(0, I)). El término KL empuja el espacio latente hacia una gaussiana estándar y da un puntaje de anomalía probabilístico más estable; entender el autoencoder determinista de este laboratorio es el paso previo natural hacia esa formulación.

Protocolo científico

Riesgos de interpretación

284.807 transacciones reales; el laboratorio evita reequilibrar el conjunto de test.

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

¿Qué costo tiene priorizar recall frente a precision?

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

🔗 Referencias

🔬 Experimentos

Plan de experimentos — Autoencoder para fraude

Hipótesis principal

Detectar transacciones fraudulentas mediante error de reconstrucción. La hipótesis debe aceptarse o rechazarse comparando el modelo con Isolation Forest 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

Seleccionar el umbral usando validation y no test.

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 — Autoencoder para fraude

Evidencias obligatorias

Preguntas

  1. Explique con sus palabras: Minimizar ||x-decoder(encoder(x))||² sobre transacciones normales.
  2. ¿Qué información del dataset solo puede utilizarse durante entrenamiento?
  3. ¿Por qué la línea base Isolation Forest es una comparación razonable?
  4. ¿Qué costo tiene priorizar recall frente a precision?
  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.