1 El problema
Antes de operar, muchas pacientes con cáncer de mama reciben quimioterapia para reducir el tumor. En algunas, al analizar después el tejido extirpado, no queda tumor invasivo. Es la respuesta patológica completa, o pCR. En este dataset la alcanzan el de las pacientes.
Importa porque la pCR se asocia, en general, con mejor evolución, y porque saberlo antes podría permitir reducir tratamientos a quienes van a responder o replantearlos a quienes no. Hoy solo se sabe al final.
- Resonancia con contrasteantes de empezar
- Quimioterapiameses de tratamiento
- Cirugía y análisis del tejidose mira si queda tumor
- ¿pCR?sí o no
Lo que se predice: del primer paso al último, sin ver los dos de en medio
Pronóstico, no detección
Detectar un tumor es ver algo que ya está en la imagen. Aquí se pide anticipar qué ocurrirá meses después, con un tratamiento que todavía no ha empezado. La imagen previa tendría que contener señales de esa respuesta, y la respuesta depende también del tipo de tumor y del propio tratamiento. Por eso es un problema difícil, y por eso las cifras que verás más abajo son modestas.
2 Los datos
BreastDCEDL reúne pacientes de tres colecciones públicas y cortes de resonancia. Cada corte son tres imágenes de 256 × 256 píxeles en gris.
Tres hospitales, tres formas de procesar
Cada colección procesa sus imágenes a su manera y toma la fase tardía en un momento distinto. Es una trampa: la misma red, con las mismas imágenes, aprende a reconocer el hospital casi sin error (AUC para distinguir Duke del resto), así que podría usarlo como atajo para predecir pCR.
Tres fases que no son colores
Una resonancia con contraste toma el mismo corte varias veces: PRE antes de inyectar el contraste, EARLY poco después y LATE unos minutos más tarde. El tumor suele captar el contraste antes y con más fuerza que el tejido sano. Son tres instantes, no los canales rojo, verde y azul de una foto: por eso la red los recibe como tres canales de entrada, pero no se trata como una imagen en color.
Pocas pacientes responden
Solo el alcanza pCR. Un modelo que dijera siempre «no pCR» acertaría la mayoría de las veces sin haber aprendido nada, así que la exactitud engaña y hay que mirar el AUC, la sensibilidad y la especificidad.
Cómo se separaron
Todos los cortes de una paciente van siempre al mismo grupo: la partición es por paciente. Los pacientes de train se reparten en folds con la columna fold del dataset, para validar sin pacientes vistas. Las de test se usaron una sola vez, al final, con todo decidido antes.
3 El modelo
Una red convolucional pequeña (CNN), propia y entrenada desde cero: nada preentrenado. Tiene parámetros, que es poco: con ~ pacientes de entrenamiento, una red grande memoriza en vez de aprender.
El preprocesado va dentro de la red. El PNG entra tal cual, dividido entre 255, y la reducción de 256 a píxeles (media de bloques de × ) es la primera etapa. Así el entrenamiento y esta web no pueden preparar la imagen de forma distinta.
Lo que ve cada valor del mapa final
Tras los bloques, cada valor del mapa final depende de un cuadrado de × píxeles del corte original (campo receptivo): el de su superficie. La red resume todo el corte con la media de esos valores.
Cinco modelos, no uno
Se entrenaron cinco redes con la misma arquitectura y los mismos hiperparámetros. Cada una aprendió con cuatro quintas partes de las pacientes de entrenamiento y no vio la quinta. La probabilidad que muestra la web es la media de las cinco.
¿Por qué la media?
Hay dos niveles de agregación, y solo uno se pudo comparar.
Entre los cortes de una paciente (para evaluar por paciente) sí se compararon, en validación y fuera de fold: el AUC es con la media, con la mediana, con el máximo y con el voto.
Entre los cinco modelos no se comparó: el conjunto no se puede evaluar en validación, porque cada modelo aprendió con los folds que validan los otros cuatro, y el test se usó una sola vez. La media se eligió por principio, no por una comparación empírica.
| Agregación | Qué hace | Su problema |
|---|---|---|
| Media | Promedia las cinco probabilidades. | Ninguno grave. Para cada paciente, el error cuadrático (Brier) de la media nunca es mayor que la media de los errores de los cinco modelos (desigualdad de Jensen), y el resultado sigue siendo una probabilidad. |
| Mediana | Toma la del modelo del medio. | En cada corte usa un solo modelo y descarta lo que dicen los otros cuatro. |
| Máximo | Toma la más alta. | Lo decide el modelo más inflado: en test, cada modelo por separado pone entre y pacientes sobre el umbral (el conjunto, ). |
| Voto | Cuenta cuántos modelos superan el umbral. | Solo da valores (de 0 a 5 votos): muchas pacientes empatan, lo que penaliza el AUC, y deja de ser una probabilidad. |
4 Cómo se eligió
Se probaron configuraciones: más o menos bloques, más o menos filtros, otras resoluciones, otras formas de resumir el mapa, atención libre y atención guiada por la caja del tumor. Cada una se evaluó con la validación por paciente de los 5 folds.
Las probadas en 4 o 5 folds quedan entre y . Las probadas en 1 o 2 folds se mueven más, pero un mismo modelo cambia de un fold a otro más que eso (el elegido va de a ), así que esas diferencias no distinguen una configuración de otra. Se eligió la más pequeña, que memoriza menos.
Curvas de train y de validación
En ningún fold ni época la validación pasa de , mientras que train llega a : la red memoriza antes de generalizar. La época con mejor AUC de validación sale inflada, porque se eligió mirando esa misma validación: en la época elegida frente a ± de la media de todas las épocas. Por eso la cifra de referencia es la segunda. La diferencia entre train y validación en la época elegida es de .
Pérdida normal frente a ponderada
La pérdida ponderada da veces más peso a las pacientes con pCR. Eso desplaza las probabilidades hacia arriba sin cambiar el orden entre pacientes: el AUC es el mismo ( frente a ), pero con el corte en 0,5 la sensibilidad pasa de a ± . Se conservó la normal, con probabilidades sin desplazar, y el punto de corte lo fija el umbral.
El umbral y su criterio clínico
El error más grave es el falso positivo: decir «responderá» a quien no va a responder podría llevar a recortarle un tratamiento que necesita. Por eso el umbral se fijó para que, entre las pacientes sin pCR, no más de 1 de cada 10 se marque como pCR (especificidad de al menos ).
La regla es el percentil 90 de la probabilidad por paciente (media de sus cortes) de todas las pacientes sin pCR fuera de fold: . Con él, en validación, la especificidad es y la sensibilidad : se renuncia a casi todas las pCR para casi no equivocarse con las que no lo son.
Explora el umbral · validación, no test (las pacientes de validación fuera de fold).
| Predice pCR | Predice no pCR | |
|---|---|---|
| pCR real | verdaderos positivos | falsos negativos |
| No pCR real | falsos positivos | verdaderos negativos |
- Sensibilidad
- Especificidad
- VPP
| Criterio | Umbral | Sensibilidad | Especificidad | VPP |
|---|
5 Resultados en test
El test son pacientes ( con pCR) que ningún modelo vio y que no se usaron para elegir nada. Se evaluó una sola vez, con el conjunto de los 5 modelos, el umbral fijado antes y el SHA-256 de cada peso anotado en un plan previo. Las cifras son por paciente (media de sus cortes), con intervalos del 95 % por bootstrap.
AUC en test, con intervalo []. El intervalo incluye 0,5.
| Predice pCR | Predice no pCR | |
|---|---|---|
| pCR real | verdaderos positivos | falsos negativos |
| No pCR real | falsos positivos | verdaderos negativos |
| Este modelo | Siempre «no pCR» | |
|---|---|---|
| AUC | 0,5 | |
| Intervalo del 95 % del AUC | [] | — |
| Sensibilidad (recall de pCR) | ||
| Especificidad (recall de no pCR) | ||
| Precisión pCR / no pCR | / | — / |
| F1 pCR / no pCR | / | / |
| F1 macro | ||
| Exactitud |
La exactitud del modelo () queda por debajo de la de decir siempre «no pCR» (): el umbral exigente cuesta aciertos. Lo que sí hace es no marcar casi a ninguna paciente que no responderá (especificidad ).
Por cohorte
Con tan pocas pacientes por cohorte, los intervalos son enormes: ninguna cohorte permite una conclusión. I-SPY1 queda por debajo de 0,5 en test y Duke, la que menos señal tenía en validación, por encima, con un intervalo de .
Calibración
Si el modelo estuviera calibrado, de las pacientes a las que da un 30 % de probabilidad, el 30 % alcanzaría pCR. Aquí la pendiente de calibración es (1 sería perfecta) con un intervalo de : no se puede decir que sea mejor ni peor que dar a todas la tasa base. El Brier del modelo () es el mismo que el de un modelo constante ().
Cuánto fiarse, en lenguaje llano
Si se toma una paciente con pCR y otra sin pCR, el modelo da más probabilidad a la primera el de las veces. Al azar sería el 50 %, y el margen va del al .
de Casi nunca avisa: en test marcó como pCR a de las pacientes que sí la alcanzaron. De las que marca como pCR, unas de cada 10 lo son en validación ( de ) y de cada 10 en test ( de ), cuando sin modelo lo son de cada 10.
p = En test el modelo no se distingue del azar (prueba de permutación). Además la potencia es baja: con pacientes con pCR y sin ella, si el AUC real fuera , el intervalo excluiría el 0,5 solo el de las veces: este test no puede separar de 0,5.
No sirve para ninguna decisión clínica. Y el umbral se fijó por paciente, con la media de unos 10 cortes, mientras que la web recibe un solo corte: allí el resultado es algo más ruidoso.
6 Comparación y límites
Referencia de la asignatura: el material del curso incluye un modelo de referencia con AUC ≈ en test. El mío (; IC ) queda unos por debajo. No sé qué explica la diferencia. Mis experimentos descartan la arquitectura ( configuraciones, las confirmadas en 4-5 folds entre y ): lo más probable es que esté en el entrenamiento y el preprocesado.
Fridman et al. (autores del dataset) llegan a en el mismo test con un modelo preentrenado. No es comparable con una CNN desde cero: es una cota superior.
Líneas base
Como pide el enunciado, el modelo se compara con tres líneas base: no hacer nada (decir siempre «no pCR»), las variables clínicas y la red de partida.
| Modelo | Dónde | AUC | Nota |
|---|---|---|---|
| Este modelo (conjunto de 5) | test | En validación, . | |
| Siempre «no pCR» | test | Exactitud y F1 macro : acierta todas las no pCR y ninguna pCR. | |
| Modelo clínico (subtipo, edad y volumen) | validación, 5 folds | ± | Solo comparación: esta web no pide datos clínicos. |
| Red base de 4 bloques () | validación, fold | La primera configuración, con parámetros; solo un fold. |
Las variables clínicas
Con subtipo, edad y volumen del tumor se llega a en validación, bastante más que la imagen sola (). Añadir la imagen sube el AUC en (mejora en de 5 folds), pero el margen de esa mejora () incluye el cero. Solo se evaluó en validación, y esta web no pide datos clínicos.
El límite de lo probado
Con capacidad, resolución, entrada, resumen y localización variados, todas las configuraciones de 4 o 5 folds quedan entre y . Eso es lo que dio este planteamiento: una CNN 2D desde cero, un corte por paciente y ~ pacientes de entrenamiento. No probé otros planteamientos (varios cortes, 3D, más datos), así que no sé si pasarían de aquí. Que el modelo de referencia de la asignatura llegue a indica que había margen.
Las imágenes saturan
En la zona que más realza, el de los cortes de train tiene más de la mitad de los píxeles a 255 en EARLY (y el en LATE). Con el tumor al máximo, ni cuánto realza ni cómo cambia de EARLY a LATE queda en la imagen. Es una limitación de los PNG de 8 bits del dataset, no del modelo: afecta igual a cualquier modelo que use estos PNG.
Otros límites
- El umbral se eligió con modelos sueltos, y el conjunto de los 5 solo se evalúa en test.
- Duke es el del test y aporta poca señal en validación.
- Los cortes de una misma paciente se parecen mucho entre sí (ICC ): la web, con un corte, verá casi lo mismo que con la paciente entera, pero el de las pacientes tiene cortes a los dos lados del umbral.
7 Créditos
Dataset. Imágenes desidentificadas derivadas de (), construido a partir de las colecciones públicas . Licencia : uso docente y de investigación, sin fines comerciales y conservando esta atribución. No se permite la reidentificación, el diagnóstico ni la recomendación terapéutica.
Código. Todo el proyecto, con los pesos, los resultados y las pruebas, está en el repositorio.
Software incluido en esta web (sin cargar nada de fuera): ONNX Runtime Web (MIT), UPNG.js (MIT), pako (MIT y Zlib) y la tipografía Atkinson Hyperlegible (SIL OFL 1.1, Braille Institute). Sus licencias están en js/vendor/ y fonts/.