Saltar al contenido
Uso educativo. Sin validez clínica. No es un dispositivo médico: no sirve para diagnosticar ni para decidir tratamientos.

Caso BreastDCEDL · trabajo académico individual

¿Desaparecerá este tumor con la quimioterapia?

Una red neuronal propia intenta anticipar la respuesta de un tumor de mama a la quimioterapia a partir de una resonancia hecha antes de empezar. Esta página cuenta cómo se construyó, qué dio en test y hasta dónde se puede fiar de ella.

Cargando el corte…

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.

  1. Resonancia con contrasteantes de empezar
  2. Quimioterapiameses de tratamiento
  3. Cirugía y análisis del tejidose mira si queda tumor
  4. ¿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.

Pacientes por cohorte, con su reparto entre train y test.

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.

El mismo corte de una paciente de train en sus tres instantes.

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.

    Tamaño del tensor tras cada etapa (canales × alto × ancho) y parámetros de cada una.

    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.

    Un cuadrado de × píxeles sobre un corte de 256 × 256.

    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.

    Qué fold deja fuera cada modelo. Cada fold es una quinta parte de las pacientes de entrenamiento, separadas por paciente.
    ¿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.

    Cómo juntar las cinco probabilidades de un corte.
    AgregaciónQué haceSu problema
    MediaPromedia 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.
    MedianaToma la del modelo del medio.En cada corte usa un solo modelo y descarta lo que dicen los otros cuatro.
    MáximoToma 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, ).
    VotoCuenta 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.

    AUC medio de validación de cada configuración (punto grande) y de cada fold (puntos pequeños). Relleno: probada en 4 o 5 folds; aro: en 1 o 2.

    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 .

    AUC por paciente en cada época de los 5 folds, con la época elegida.

    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.

    Media ± desviación de los 5 folds, con el valor de cada fold.

    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.

    Sensibilidad y especificidad por paciente fuera de fold en función del umbral.
    Qué se obtendría con otros criterios (validación, fuera de fold, por paciente). Descriptivo: el umbral oficial no cambia.
    CriterioUmbralSensibilidadEspecificidadVPP

    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 pCRPredice no pCR
    pCR realverdaderos positivosfalsos negativos
    No pCR realfalsos positivosverdaderos negativos
    Matriz de confusión en test, por paciente, con el umbral .
    Curva ROC en test, con el punto del umbral.
    Métricas en test, por paciente, frente a decir siempre «no pCR».
    Este modeloSiempre «no pCR»
    AUC0,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 .

    AUC en test por cohorte, con su intervalo del 95 %.

    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 ().

    Pacientes con pCR frente a la probabilidad que el modelo les dio, en grupos de unas 17.

    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.

    AUC de este modelo frente a las referencias. Arriba, en test; abajo, en validación (solo comparación). Círculo: este trabajo y las líneas base; cuadrado: referencia de la asignatura (sin intervalo: no se conoce); rombo: publicado.

    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.

    Este modelo frente a las líneas base. Las cifras de validación son AUC por paciente medio de todas las épocas.
    ModeloDóndeAUCNota
    Este modelo (conjunto de 5)testEn validación, .
    Siempre «no pCR»testExactitud 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.

    Fracción de cortes de train con más de la mitad de la zona que más realza a 255, por cohorte.

    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/.

    Uso educativo. Sin validez clínica. Es un trabajo académico sobre el dataset BreastDCEDL: no es un dispositivo médico y no debe usarse para diagnosticar ni para decidir tratamientos.

    Probar el modelo