← Volver
Práctica universitariaDeep Learning — Proyecto finalProyecto en grupo

Clasificación de neumonía en radiografías de tórax

De una red densa a transfer learning con MobileNetV2 y datos sintéticos con GAN, con evaluación única en test

Problema

Clasificar radiografías como normales o con neumonía comparando, de forma controlada, las técnicas vistas en el curso.

Datos

Chest X-Ray Images (Pneumonia), Kaggle (paultimothymooney/chest-xray-pneumonia), descargado con kagglehub.

Fuente de datos →

Métodos

  • Manifiesto y auditoría de imágenes (dimensiones, corruptas, hashes)
  • Eliminación de duplicados y protección del conjunto de test
  • Pesos de clase
  • Red densa, CNN, optimizadores, regularización y normalización
  • Transfer learning con MobileNetV2 (fine-tuning de las últimas 30 capas)
  • GAN para generar radiografías normales y comparación controlada
  • Selección por ROC-AUC de validación y umbral por índice de Youden

Resultados

  • Modelo ganador (por ROC-AUC de validación): MobileNetV2 con fine-tuning de las últimas 30 capas; umbral 0.6474 fijado con validación.
  • Test reservado (618 imágenes, evaluado una sola vez): ROC-AUC 96.31 %, sensibilidad 99.74 % (386 de 387 neumonías), especificidad 51.95 %, accuracy 81.88 %.
  • La caída de especificidad frente a validación (97.78 %) se documenta como brecha de generalización; el umbral no se reajustó con el test.
  • GAN: 500 radiografías normales sintéticas subieron la especificidad de la CNN de 91.85 % a 93.70 % (falsos positivos de 22 a 17).
  • Batch Normalization colapsó a la clase mayoritaria (100 % recall, 0 % especificidad): ejemplo documentado de por qué no basta el recall.

Herramientas

PythonTensorFlow / Kerasscikit-learnDatabrickskagglehub

Trabajo universitario; no se afirma autoría individual exclusiva.