Detección de Melanomas con Vision Transformers — Competencia de Kaggle

Resumen

Clasificador binario de imágenes médicas (Melanoma / No Melanoma) desarrollado para una competencia de Kaggle, mediante transfer learning sobre un Vision Transformer (ViT) pre-entrenado, con foco en minimizar los falsos negativos dado el contexto clínico.

Qué hice

  • Entrené un clasificador binario mediante transfer learning sobre un ViT (vit_base_patch16_224) pre-entrenado en ImageNet, congelando el backbone y ajustando únicamente la cabeza de clasificación.
  • Optimicé los hiperparámetros (learning rate, batch size, dropout) con Ray Tune y un scheduler ASHA, paralelizando 10 pruebas en GPU.
  • Apliqué un pipeline de data augmentation (rotaciones, flips, ajustes de color) y early stopping para controlar el sobreajuste.
  • Evalué el modelo con F1-Score, matriz de confusión y reporte de clasificación, priorizando la reducción de falsos negativos por su criticidad clínica.
  • Interpreté las decisiones del modelo con Grad-CAM adaptado a ViT, verificando que las activaciones se concentran en bordes y zonas de contraste de las lesiones, en línea con criterios dermatológicos.

Resultados

Curvas de entrenamiento (loss y F1-Score) del modelo final, mostrando convergencia sin sobreajuste:

Curvas de loss y F1-Score en entrenamiento y validación

Matriz de confusión del mejor modelo sobre el conjunto de validación:

Matriz de confusión del mejor modelo

Interpretabilidad con Grad-CAM adaptado a ViT: el modelo concentra su atención en los bordes y zonas de contraste de la lesión, en línea con los criterios dermatológicos de evaluación (regla ABCD):

Mapas de activación Grad-CAM sobre lesiones cutáneas

Stack

Python, PyTorch, timm, Vision Transformers (ViT), Ray Tune, Grad-CAM, Scikit-learn.

Estado

Competencia de Kaggle, 2025.