Vai al contenuto
FRFederico Raponi
Tutti i lavori

Progettonov 2024 – feb 2025

Rilevamento della polmonite da radiografie del torace: metodi classici e deep learning a confronto tra dataset

Sei classificatori, dal k-NN a una ResNet-50 con fine-tuning, addestrati su tre dataset pubblici di radiografie del torace e testati sugli altri due. I modelli deep vincono ovunque, ma quelli più semplici perdono meno quando cambiano i dati.

Un classificatore di polmonite che ottiene ottimi risultati sul proprio test set può crollare sulle radiografie di un altro ospedale. Questo progetto lo ha misurato direttamente: ogni modello è stato addestrato su un dataset e testato sia sul proprio test set sia su dataset mai visti.

Dataset

  • Chest X-Ray Images (Kaggle): 5.863 immagini, 74% con polmonite, risuddivise 80/20 perché il set di validazione originale aveva solo 16 immagini.
  • CheXpert: filtrato a 12.509 immagini utilizzabili. Le etichette sono estratte dai referti con un modello NLP, quindi rumorose; le immagini con opacità polmonare esclusa sono state considerate negative per la polmonite.
  • RSNA Pneumonia Detection Challenge: 30.227 immagini, circa un terzo positive, ciascuna etichettata da un radiologo.

Modelli

  • Classici: k-NN, SVM, albero di decisione e regressione logistica, con undersampling casuale, standardizzazione e PCA, ottimizzati con ricerca casuale e cross-validation k-fold.
  • Una piccola CNN: sei blocchi convoluzionali, scelta fra 24 configurazioni con uno sweep su Weights & Biases, addestrata con cross-entropy pesata e data augmentation.
  • ResNet-50: pre-addestrata su ImageNet, congelata fino allo stage 3, con una nuova testa a due classi, loss pesata per classe e data augmentation.

Ogni modello è stato confrontato con un classificatore fittizio che predice sempre la classe maggioritaria, per verificare che imparasse qualcosa oltre la distribuzione delle classi. Per i modelli che restituiscono un punteggio, la soglia di decisione è stata fissata nel punto della curva ROC più vicino a (0, 1), con un miglioramento evidente.

Risultati

  • ResNet-50 è stato il modello migliore in tutti gli scenari, nettamente davanti alla piccola CNN: il pre-addestramento su ImageNet dà feature più robuste.
  • I modelli più semplici peggiorano meno cambiando dataset. k-NN e regressione logistica hanno punteggi più bassi, ma la differenza tra prestazioni sullo stesso dataset e su dataset diversi è minore rispetto ai modelli deep.
  • Il dataset conta quanto il modello. Il piccolo dataset Kaggle ha dato i punteggi migliori sullo stesso dataset e la generalizzazione peggiore; le etichette rumorose di CheXpert e lo squilibrio di RSNA hanno creato problemi diversi.

I passi successivi sarebbero affiancare dati clinici alle immagini, gestire in modo più diretto rumore nelle etichette e squilibrio delle classi, e rendere le predizioni spiegabili ai medici.