/ Proyectos / Salud / Robustez adversarial en cáncer de próstata
Detección de cáncer de próstata con CNN: robustez ante ataques adversarios
Clasificación de significancia histológica en imágenes de próstata con ResNet50, puesta a prueba con ataques adversarios FGSM y defendida con entrenamiento adversarial y fine-tuning.
El objetivo era clasificar la significancia clínica de una región de tejido prostático a partir de imágenes histológicas, usando una CNN con transfer learning (ResNet50). El problema real, sin embargo, no era solo lograr buen accuracy: era demostrar que ese accuracy no basta. Un modelo de diagnóstico por imagen puede tener un desempeño excelente en el set de prueba y aun así ser vulnerable a perturbaciones invisibles al ojo humano, capaces de voltear la predicción de "significativo" a "no significativo" sin dejar rastro visual.
Se diseñó un pipeline que primero entrena un modelo base, luego lo ataca con FGSM (Fast Gradient Sign Method) para exponer esa vulnerabilidad, y después construye y compara dos estrategias de defensa: entrenamiento con datos mixtos (originales + atacados) y fine-tuning posterior. El hallazgo más importante no fue de accuracy, fue de qué se mide: reportar solo accuracy y AUC-ROC oculta el problema real. Hubo que traer métricas propias del área de robustez adversarial, como loss sensitivity y empirical robustness, para responder la pregunta que de verdad importa en un entorno clínico: ¿qué tan fácil es engañar a este modelo?
Mapa del casoContenido
- Diagrama de la solución. Los bloques del pipeline, del dataset original y atacado hasta el diagnóstico robusto
- Construcción de la solución. Cómo la pregunta de seguridad, no solo de accuracy, dirigió cada decisión
- Condiciones del proyecto. Restricciones reales y opciones descartadas antes de construir
- Pasos. Qué se dejó al agente y qué criterio se aplicó en cada uno
- Proceso de iteración. El ajuste documentado entre versiones del modelo con defensa
- Descargables. Notebook, diagrama y repositorio del proyecto
- Lecciones importantes. La lección concreta que deja este caso
Estructura de alto nivelDiagrama de la solución
Pasa el cursor sobre cada bloque para ver qué hace ese paso.
Las ramas sin defensa y con defensa se evaluaron por separado antes de compararlas, porque mezclar los resultados desde el inicio habría ocultado justo lo que se necesitaba medir: cuánto se recupera el modelo cuando sí se le entrena para resistir el ataque.
De la idea al pipelineConstrucción de la solución
Condiciones del proyecto
| Restricción | Dato |
|---|---|
| Objetivo inicial | Trabajo de tesis: no exigía despliegue en un entorno hospitalario real, pero sí demostrar viabilidad de un demo funcional |
| Dataset | Imágenes histológicas públicas de corte transversal de próstata (Kaggle), en dos clases: significant / notsignificant |
| Riesgo central a estudiar | Modelos con alta accuracy pero vulnerables a perturbaciones imperceptibles (ataques adversarios) |
| Cómputo disponible | Google Colab con GPU gratuita, con límites de tiempo y memoria por sesión |
| Opción | Por qué se descartó |
|---|---|
| Reportar solo accuracy y AUC-ROC del modelo base como resultado final | No dice nada sobre qué tan fácil es engañar al modelo con una perturbación diseñada para eso |
| Entrenar una arquitectura CNN desde cero | Con el tamaño del dataset, transfer learning con ResNet50 preentrenado en ImageNet era más eficiente y estable |
| Aplicar una sola estrategia de defensa | No permitía saber cuál aportaba más: entrenamiento con datos mixtos o fine-tuning posterior |
| Medir robustez con métricas del área (ART: loss sensitivity, empirical robustness), no solo con accuracy | Es la única forma de cuantificar qué tan sensible es el modelo a una perturbación mínima, que es la pregunta real del proyecto |
Pasos
Preprocesamiento de imágenes
Agente: propuso normalizar directo con un simple reescalado de píxeles (rescale 1/255).
Criterio aplicado: además probar una conversión RGB→HSV con ecualización del canal de valor, para evaluar si mejoraba el contraste del tejido antes de fijar el pipeline de preprocesamiento definitivo.
Generación del ataque adversario FGSM
Agente: propuso un valor de epsilon fijo, sin justificar la elección.
Criterio aplicado: elegir epsilon balanceando imperceptibilidad visual y efectividad del ataque, verificando manualmente que la perturbación no fuera evidente a simple vista antes de aplicarla a todo el dataset.
Diseño de la estrategia de defensa
Agente: sugirió reentrenar el modelo desde cero solo con las imágenes atacadas.
Criterio aplicado: combinar imágenes originales y atacadas en el mismo set de entrenamiento, para no sacrificar el desempeño sobre el caso "limpio" al ganar robustez frente al ataque.
Medición de robustez, no solo de accuracy
Agente: propuso reportar solo accuracy y AUC-ROC como criterio final de éxito.
Criterio aplicado: incorporar las métricas del Adversarial Robustness Toolbox (loss sensitivity, empirical robustness) para cuantificar qué tan sensible es el modelo a una perturbación, en vez de conformarse con qué tan bien clasifica en el caso limpio.
Proceso de iteración
Ajuste documentado, no forzado
Las primeras corridas del modelo con defensa, entrenadas con 100 épocas sobre el set combinado, mostraron señales claras de sobreajuste: el modelo mejoraba su desempeño frente al ataque, pero perdía precisión sobre las imágenes limpias. Se ajustó el fine-tuning a menos épocas y a un número reducido de steps por época sobre el set combinado, lo que dio un mejor balance entre accuracy en el caso limpio y robustez ante el ataque. La lección quedó documentada: "más entrenamiento" no es sinónimo de "más robusto", y cada estrategia de defensa se evaluó por separado en el mismo set de imágenes atacadas para poder comparar de forma justa.
CierreLecciones importantes
El trabajo de mayor impacto de este proyecto no ocurrió al ajustar arquitecturas, ocurrió al decidir qué preguntas hacerle al modelo. Un accuracy alto en el set de prueba dice muy poco sobre qué tan seguro es un modelo en el mundo real: la robustez ante perturbaciones deliberadas es una dimensión distinta, y en dominios como salud, donde una predicción incorrecta tiene consecuencias directas sobre personas, ignorarla no es una opción académica menor.
Si quieres ver un enfoque publicado con una idea similar, ataques adversarios y robustez aplicados a patología computacional, este paper es una buena referencia del nivel de la contribución: Adversarial attacks and adversarial robustness in computational pathology (Nature Communications).
Termina ya tu proyecto
¿Tienes un proyecto similar y no sabes por dónde empezar? Yo te ayudo a diseñarlo.
El 92% de los profesionales de datos desbloquea sus proyectos al ver ejemplos completos resueltos.
Sin registro. Acceso inmediato