tesi -sara - Multisites Network of DMF

UNIVERSITA` DEL SALENTO
FACOLTA` DI SCIENZE MATEMATICHE, FISICHE, NATURALI
CORSO DI LAUREA IN FISICA
ORDINAMENTO TRIENNALE
TESI DI LAUREA
RETI NEURALI
PER LA DIAGNOSI DI NODULI PLEURICI
IN SCANSIONI TAC TORACICHE
Relatore:
Ch.mo Dott. GIORGIO DE NUNZIO
Correlatore:
Ch.ma Dott.ssa GABRIELLA PASTORE
Laureanda:
Sara De Dominicis
Anno Accademico 2009-2010
"La preoccupazione dell'uomo e del suo
destino devono sempre costituire l'interesse
principale di tutti gli sforzi tecnici.
Non dimenticatelo mai in mezzo a tutti
i vostri diagrammi ed alle vostre equazioni."
Albert Einstein
SOMMARIO
Introduzione
1
1. Tumore al polmone, noduli pleurici e loro identificazione
3
1.1 Sviluppo di una patologia neoplastica
3
1.2 La neoplasia polmonare
3
1.2.1
Noduli polmonari
1.3 Tomografia Assiale Computerizzata
4
6
1.3.1
Principi ed evoluzione della TAC
6
1.3.2
Ricostruzione di un’immagine tomografica
8
1.3.3
Profilo di attenuazione, sinogramma
10
1.3.4
Ricostruzione dell’immagine bidimensionale: Retroproiezione e
Retroproiezione filtrata
11
2. Sistemi di Computer Assisted Detection (CAD) per noduli juxtapleurici
14
2.1 Sistemi CAD
15
2.2 Premessa: struttura di un’immagine TAC
16
2.3 Database “Gold standard”
19
2.4 Struttura di un sistema CAD
20
2.5 Preprocessamento
21
2.6 Segmentazione polmonare
21
2.7 Il problema dei noduli pleurici
22
2.8 Individuazione delle concavità del bordo del polmone
24
2.8.1
Chiusura delle concavità tramite closing morfologico
24
2.8.2
Chiusura delle concavità tramite α-hull
27
2.8.3
Chiusura delle concavità – Active Contour Model
28
2.8.4
Detection delle concavità
28
2.9 Individuazione delle feature e creazione del file dei candidati noduli
30
2.10 Analisi delle feature: potere discriminante
32
2.11 Applicazione di filtro a soglia per la riduzione dei FP
34
i
2.12 Classificazione e riduzione di FP mediante rete neurale artificiale, ANN
34
2.12.1 Allenamento della rete
35
2.12.2 Valutazione dell’efficienza della rete
37
2.12.3 Curve ROC e FROC
40
3. Codice realizzato e Risultati
43
3.1 Il codice
43
3.2 Risultati
49
Conclusioni
58
A. Appendice: Le reti neurali
61
A.1 Struttura del neurone biologico
61
A.2 Struttura del neurone artificiale
62
A.3 Tassonomia e architettura delle reti neurali
65
A.4 Apprendimento supervisionato
66
A.5 Classificazione
70
A.6 Backpropagation
74
A.7 Problemi e punti di forza di una rete neurale artificiale
78
Bibliografia
79
Ringraziamenti
81
ii
Introduzione
Il mio lavoro di Tesi si propone la trattazione e il confronto di reti neurali artificiali per la classificazione di
candidati noduli juxtapleurici da immagini TAC toraciche, nell’ambito dello sviluppo di un sistema CAD
(Computer Assisted Detection).
La rivelazione automatica dei noduli polmonari a contatto pleurico rappresenta un problema aperto e di
grande interesse. Infatti, un sistema CAD realizzato per l’individuazione di noduli polmonari interni può
ignorare i noduli juxtapleurici, a causa della loro posizione ed elevata densità simile a quella dei tessuti
esterni al polmone.
Un sistema CAD per l’identificazione di tali noduli può rappresentare un importante strumento di ausilio
per il medico, sia nella normale prassi clinica, che in una politica di screening.
La Tesi si inserisce nelle linee di ricerca del Progetto MAGIC-5 (Medical Applications on a Grid Infrastucture
Connection) dell’Istituto Nazionale di Fisica Nucleare (INFN). Partendo dai risultati ottenuti in una
precedente Tesi di laurea, in cui sono stati individuati i candidati noduli in immagini TAC toraciche, è
effettuato il calcolo di feature ritenute potenzialmente discriminanti per la classificazione dei candidati in
noduli veri e falsi positivi, ed è adoperata per la suddetta classificazione una rete neurale artificiale
variamente strutturata. Si confrontano, infine, i risultati ottenuti nella classificazione dei noduli sia
mediante due diversi metodi di chiusura delle concavità (α-hull e closing morfologico), sia variando i
parametri per la realizzazione della rete neurale.
Il mio contributo è consistito, oltre che nel necessario studio alla base del lavoro:
1)
nel partecipare attivamente alla creazione del codice, sviluppato dal mio Relatore, intervenendo
personalmente dove fossero necessarie piccole modifiche al software alla portata delle mie
conoscenze di programmazione in Matlab, ancora incomplete.
2)
nell’utilizzo e nell’ottimizzazione del software: variando i parametri utilizzati nell’impostazione
della rete neurale artificiale, ho osservato e confrontato i risultati ottenuti, al fine di migliorare
la qualità della classificazione e quindi della detection dei noduli.
La Tesi è strutturata come segue:
o
Nel primo capitolo, si fa una breve trattazione della neoplasia polmonare e dei diversi tipi di nodulo
polmonare, focalizzando l’attenzione su quelli pleurici, alla base di questo lavoro. Si descrive la
struttura, e il funzionamento di un apparato TAC, approfondendo i principi matematici e fisici
basilari.
1
o
Il secondo capitolo introduce il sistema CAD per la rilevazione di noduli juxtapleurici,
sottolineandone l’utilità dal punto di vista diagnostico. Si descrivono rapidamente le fasi di
preprocessamento e di segmentazione, si trattano diverse tecniche di chiusura delle concavità per
l’individuazione dei noduli pleurici (closing morfologico, α-hull, ACM). Si prosegue con
l’individuazione delle feature e la valutazione del loro potere discriminante. Si tratta la fase di
classificazione, facendo particolare attenzione alla realizzazione e all’allenamento della rete neurale
artificiale. Infine, si introducono i parametri di valutazione dell’efficienza della rete e del CAD: le
curve ROC e FROC.
o
Il terzo capitolo descrive il codice utilizzato nella fase di classificazione, e presenta i risultati
ottenuti.
o
Seguono le Conclusioni.
o
Completa la tesi un’appendice sulle reti neurali artificiali, necessaria per comprendere l’importanza
dei parametri della rete utilizzata.
2
1 Tumore al polmone: noduli pleurici, e loro individuazione
1.1
Sviluppo di una patologia neoplastica
Una neoplasia (dal greco neo, nuovo, e plasìa, formazione), anche detta tumore (dal latino tumor,
rigonfiamento) è una neoformazione cellulare di natura patologica. Si tratta di una malattia che interessa i
geni, le cellule, e i tessuti. In particolare sono proprio le lesioni ad alcuni tipi di geni (oncosoppressori) che
causano un’incontrollata proliferazione di alcune cellule dell'organismo. Esse smettono di rispondere ai
meccanismi fisiologici di controllo cellulare, sovvertendo gradualmente l’organizzazione del tessuto.
Il tumore rappresenta oggi una delle principali cause di morte nei Paesi industrializzati, quali Europa1, Stati
Uniti2 e Giappone, seconda soltanto alle malattie cardiovascolari.
I tumori sono suddivisi3, da un punto di vista clinico, in:
o
Tumori benigni
La proliferazione cellulare è circoscritta, le cellule tumorali comprimono quelle vicine sane, senza
distruggerle e infiltrarsi nel tessuto; il tumore benigno rimane dunque isolato, e limitato all'organo
in cui si è sviluppato (abituale assenza di metastasi). È caratterizzato da un accrescimento piuttosto
lento, e dalla non recidività, dopo che sia stata applicata un’asportazione totale dell’area malata.
o
Tumori maligni (cancro)
Sono caratterizzati da una proliferazione cellulare incontrollata. I tessuti circostanti il tumore
vengono infiltrati e distrutti dalle cellule tumorali, che si sostituiscono a quelle normali. Il tumore,
nel corso di un processo dalla durata estremamente variabile (anni), invade l’organismo, fino a
colpire e compromettere organi vitali (metastatizzazione). È alto il rischio che nel paziente si
ripresenti il tumore, anche dopo la totale asportazione della zona patologica.
1.2
La neoplasia polmonare
Il tumore al polmone 4 rappresenta il 20% di tutti i tumori maligni per il sesso maschile. In questi ultimi anni,
però, si sta registrando un progressivo aumento anche tra le donne (per le quali la neoplasia più diffusa è il
tumore alla mammella). Secondo l'ultimo rapporto ISTAT, la mortalità per tumore diminuisce del 2% circa
l'anno, ma nel caso del cancro polmonare tale diminuzione riguarda solo gli uomini mentre nelle donne i
decessi sono aumentati dell'1,5%. Il motivo di tale cambiamento potrebbe concernere l’abitudine al fumo
che riguarda in modo crescente anche le donne. In Italia muoiono, per tumore al polmone, circa 35.000
persone l'anno (circa 27.000 uomini e 6.000 donne), rappresentando la prima causa di decesso oncologico
3
negli uomini e la seconda nelle donne. L’andamento di queste mortalità è sicuramente preoccupante, se si
pensa che, prima del 1950, le probabilità di ammalarsi di tumore polmonare erano davvero minime.5
Causa6 principale dell’insorgenza è il fumo di sigaretta; un ruolo importante rivestono anche l’esposizione
ad inquinamento ambientale o industriale, a radiazioni ionizzanti, ad uranio, radon, amianto, a prodotti
derivati dal petrolio, a gas di scarico e l’esposizione ad altre situazioni simili.
In termini macroscopici,7 si delineano tre differenti quadri di sviluppo della neoplasia polmonare:
o
Tumori centrali e carcinomi in prossimità dell’iloI (70-80%). Hanno origine in prossimità della
periferia delle diramazioni bronchiali intermedie, nelle regioni fra bronchi segmentali e
subsegmentali.
o
Tumori periferici (20-30%). Sono ben definiti, e individuabili mediante semplice radiografia del
torace, in fase precoce.
o
Tumori che si sviluppano all’interno del parenchima polmonareII o multifocali nella regione
bronchiolo-alveolare del polmone (1,5-2,5%)
Un tumore polmonare può essere ulteriormente classificato, secondo la sede effettiva di origine, in
primitivo, se è d'origine polmonare, e in secondario se si tratta di metastasi.
1.2.1
Noduli polmonari
Un nodulo è un agglomerato normale o patologico di cellule con una struttura diversa da quella del tessuto
circostante. Le formazioni patologiche possono avere origine infiammatoria, infettiva o neoplastica. I noduli
tumorali possono insorgere praticamente in tutti gli organi, ma in particolare al seno, al polmone, all’utero
e alla tiroide.
Il nodulo polmonare solitario è una lesione polmonare a morfologia rotondeggiante che non supera i tre
centimetri di diametro, circondata quasi completamente da parenchima polmonare normale, senza altre
anomalie associate. Circa il 30% dei tumori polmonari si presenta come nodulo polmonare solitario
(prevalentemente adenocarcinomi). Le formazioni superiori ai 3 cm, sono più propriamente dette masse e
spesso sono di natura maligna.
I L’ilo polmonare rappresenta la regione d’ingresso di bronchi, vasi e nervi nel parenchima polmonare.
II
Il parenchima è il tessuto caratteristico, dal punto di vista funzionale e/o strutturale di un organo. Il parenchima polmonare è, allora, il tessuto che
costituisce i polmoni.
4
I noduli polmonari possono essere classificati8 in base alla forma e alla regione in cui si sviluppano:
n1 Noduli interni o parenchimali: Il nodulo ha avuto origine e risiede nel parenchima polmonare. Non
entra in contatto con la pleuraIII.
n2 Noduli sub pleurici: Il nodulo ha avuto origine all’interno del parenchima polmonare, ma si trova
adiacente o connesso alla pleura per mezzo di peduncoli o filamenti (che vengono a contatto con
la pleura durante il processo di accrescimento).
n3 Noduli pleurici: Il nodulo si è originato nella pleura, e si espande verso il parenchima polmonare;
presenta una forma grossolanamente emisferica.
Si riportano, in Figura 1, delle immagini CT, nelle quali si evidenzia la presenza dei diversi tipi di noduli
polmonari, secondo le tipologie dianzi esposte.
Per distinguere fra un nodulo polmonare subpleurico e uno pleurico, si può sfruttare l’angolo α formato tra
la tangente alla pleura e la tangente al nodulo in esame. Nel caso di un nodulo polmonare subpleurico
(Figura 2 a e b), la pleura e il nodulo formano un angolo acuto, mentre nel caso di un nodulo pleurico
(Figura 2 c), tale angolo sarà ottuso.
n1 Nodulo interno
n2 Nodulo subpleurico
n3 Nodulo pleurico
Figura 1: Tipologie di nodulo polmonare in immagini CT.
III
La pleura è una membrana sierosa costituita da due foglietti: la pleura viscerale che ricopre interamente il polmone, e la pleura parietale che
riveste la cavità toracica.
5
(a)
(b)
(c)
Figura 2: (a) e (b) Noduli subpleurici, α acuto, (c) noduli pleurici, α ottuso.
1.3 Tomografia Assiale Computerizzata
La tecnica di imaging più sensibile per la rivelazione di noduli polmonari di dimensioni anche inferiori a
5 mm è la Tomografia Assiale Computerizzata (TAC o CT, Computed Tomography). Essa riesce a definire in
maniera ottimale i profili pleurici, la compromissione parenchimale, i rapporti pleuro-parenchimali,
pleuroparietali e mediastinici, ed eventuali versamenti limitati e patologie polmonari di tipo focale o
diffuso. Grazie anche all’elevato contrasto delle immagini, che permettono una definizione eccellente delle
strutture anatomiche di diversa densità, e all’intrinseca capacità di offrire una rappresentazione
tridimensionale del torace, la CT si rivela di grande accuratezza diagnostica. Essa può peraltro risultare
positiva anche in casi di RX torace negativo. Il confronto tra le varie metodiche di imaging diagnostico, nel
caso particolare del carcinoma polmonare, vede la CT come tecnica di elezione per gli alti valori di
sensibilità e specificità (la definizione rigorosa di questi termini è data nel Capitolo2).
La tomografia (il cui nome deriva dal greco tòmos,che significa taglio o sezione) consente di ottenere
immagini di sezioni (slice) dell'oggetto in esame. Si basa sulla teoria della trasformata di Radon, ideata nel
1917, anche se il primo ad impiegarla in ambito medico fu il fisico statunitense Allan Cormack nel 1963.
1.3.1 Principi ed evoluzione della TAC
La CT è una metodica tomografica a raggi X, basata sull’attenuazione di un fascio radiante che attraversa
sottili sezioni assiali del paziente secondo multiple angolazioni.
La collimazione parallela è utilizzata per rendere il fascio simile a un sottile ventaglio e definisce lo spessore
del piano di scansione. I rivelatori misurano i valori della radiazione trasmessa dal corpo esaminato.
Un’elaborazione matematica dell’immagine (trasformata inversa di Radon) calcola l’attenuazione propria di
6
ogni elemento di tessuto all’interno di una sezione CT. Questi coefficienti di attenuazione locale sono
tradotti in valori numerici, e poi convertiti in livelli di grigio, che nel loro insieme costituiscono l’immagine.
Il dispositivo9 della tomografia assiale computerizzata è mostrato in Figura 3. Esso è composto da diverse
parti:
-
Gantry, che contiene la sorgente delle radiazioni (tubo radiogeno), i collimatori, i sistemi i
raffreddamento, il sistema di rilevazione (rivelatori);
-
Il lettino porta-paziente;
-
Consolle, in cui si impostano i parametri;
-
Computer, che analizza i dati, ricostruisce e visualizza le immagini.
Figura 3: Rappresentazione schematica di un dispositivo TAC.
Le basi matematiche per la ricostruzione di un’immagine CT furono poste nel 1917 da Radon, il quale
dimostrò che qualunque sezione bidimensionale di un oggetto solido può essere ricostruita a partire da
infinite proiezioni unidimensionali dello strato stesso.
Gli apparecchi CT si possono distinguere in due tipi: CT convenzionale (o sequenziale) e CT spirale.
Per gli apparecchi convenzionali, l’evoluzione tecnologica si caratterizza per la presenza di successive
generazioni mentre, per gli apparecchi a spirale, per il numero delle file di rilevatori.
Negli apparecchi CT convenzionali gli studi vengono effettuati mediante scansioni assiali (sequenziali): le
sezioni vengono esaminate una dopo l’altra; il lettino porta-paziente è fermo durante la scansione della
slice, quindi effettua dei piccoli movimenti di avanzamento dopo ogni scansione. Storicamente, si
considerano quattro generazioni di tomografi convenzionali. In esse variano: il principio usato per
l’acquisizione delle immagini, la geometria del fascio radiogeno, la geometria e il numero dei rilevatori.
Nella CT spirale (o elicoidale) il sistema sorgente-rivelatori ruota continuamente intorno al paziente mentre,
contemporaneamente, il lettino si muove. Ne risulta che le scansioni presentano una traiettoria elicoidale
sul paziente. Negli apparecchi CT spirale i tempi di scansione si riducono fino a 0,5 secondi a slice.
7
Figura 4: TAC convenzionale a TAC spirale.
1.3.2 Ricostruzione di un’immagine tomografica
Si consideri10 un fascio collimato di raggi X monocromatico (Figura 5), di intensità iniziale
che incide su
una sezione del corpo umano di spessore s (si suppone che il paziente sia disposto lungo l’asse ). Si
supponga inoltre che l’emettitore di raggi X e il rivelatore ruotino intorno al paziente secondo un angolo di
rotazione θ. L’intensità trasmessa, misurata dai rivelatori, sarà, dunque, data da:
( )
in cui (
∫ (
)
(1)
) è la distribuzione bidimensionale del coefficiente di attenuazione lineareIV , e
definiscono
la posizione in cui è effettuata la misura. L’integrale è esteso al percorso compiuto dalla radiazione
all’interno dell’organismo,
.
Dalla Figura 5, si nota l’opportunità di introdurre un sistema di riferimento solidale col fascio di raggi X; il
sistema di riferimento più appropriato è quello polare, caratterizzato cioè da un angolo θ rispetto alle
ascisse e una distanza r rispetto all’origine.
Le nuove coordinate (
) sono in relazione con quelle di partenza (
) per mezzo della matrice di
rotazione:
. /
.
/. /
(2)
IV
Il coefficiente di attenuazione lineare μ rappresenta la probabilità per unità di percorso che un fotone ha di interagire con la sostanza nella quale
si propaga. Dipenderà dall’energia del fotone incidente e dal tipo di materiale percorso.
8
Figura 5: Fascio di raggi X paralleli, incidenti con angolo
nel piano (x,y), a distanza r dall'origine.
Di conseguenza, la funzione intensità rilevata dallo strumento avrà un andamento come quello riportato in
Figura 6 e avrà espressione pari a:
( )
∫ (
in cui l’integrale è esteso al percorso,
suddiviso in cammini infinitesimi
)
(3)
, della radiazione all’interno dell’organismo. Esso può essere
, in cui il coefficiente di attenuazione lineare si può ritenere costante.
In realtà, un fascio di raggi X è policromatico, dunque l’intensità del fascio emergente sarà dato da :
( )
∫
( )
∫ (
)
(4)
in cui si considera l’intensità del fascio incidente come una funzione dell’energia ( ( ) è lo spettro
energetico), come segue:
∫
( )
(5)
Figura 6: Andamento dell'intensità emergente in funzione della distanza dall'origine r.
9
1.3.3 Profilo di attenuazione, sinogramma
Ogni profilo delle intensità emergenti
( ) può essere trasformato in un profilo di attenuazione
( )11
secondo la formula:
( )
( )
L’integrale è esteso al percorso,
Il profilo di attenuazione
∫ (
)
(6)
della radiazione all’interno dell’organismo.
( ), definito funzione di proiezione, rappresenta la proiezione della
distribuzione dei coefficienti di attenuazione (
) sull’angolo (Figura 7) .
Figura 7: Profili di attenuazione, ottenuti mediante la conversione dei profili di intensità.
Il profilo di attenuazione varia per angoli di incidenza
contenuti nell’intervallo *0,2 - ma, poiché per fasci
provenienti da direzioni opposte si verifica la medesima situazione, si restringe il range di variazione di
in
[0, -. La funzione di proiezione (
in
ascissa e
) può essere riportata in un diagramma a due dimensioni, con
in ordinata, che prende il nome di sinogramma (Figura 8).
Figura 8: Sinogramma
Il nome del grafico deriva dalla caratteristica forma sinusoidale assunta dalla funzione di proiezione.
Matematicamente, la trasformazione di una generica funzione nel corrispettivo sinogramma
definisce Trasformata di Radon della funzione stessa. La funzione di interesse è (
(
) si
).
10
, (
)-
(
)
(7)
Si dimostra che l’insieme delle trasformate di Radon della funzione
(
), che nel nostro caso è la
distribuzione delle intensità emergenti, ossia il suo sinogramma, contiene tutte le informazioni necessarie
per la ricostruzione della funzione di partenza: più numerose sono le proiezioni a disposizione, più
dettagliata sarà la rielaborazione dell’immagine iniziale. Per ottenere (
), a partire dalle proiezioni, si
utilizza l’antitrasformata di Radon:
, (
)-
(
)
(8).
1.3.4 Ricostruzione dell’immagine bidimensionale: Retroproiezione e Retroproiezione filtrata
Il problema della tomografia si riconduce alla ricerca della funzione (
) a partire dalle sue proiezioni. Si
deve dunque risolvere l’equazione (6):
( )
( )
∫ (
)
L’algoritmo più diffuso per la ricostruzione di immagini tomografiche è la retroproiezione11. Esso si basa sul
teorema della proiezione: l’insieme delle trasformate di Fourier 1-D in r della trasformata di Radon di una
funzione, è la trasformata di Fourier bidimensionale della funzione stessa. Infatti, sia
( ) la trasformata
( ) e siano:
di Fourier ad una dimensione di
√
{
allora:
,
( )-
( )
∫
( )
( )
∫ (
(
)
(9)
Ricordando, dalla (6), che:
( ), allora
dove l’integrale è esteso al cammino della radiazione
,
( )-
∬ (
)
(
)
)
(10)
cioè
,
( )-
, ( (
))-
, (
)-
(11)
11
dove
rappresenta l'operatore trasformata di Fourier bidimensionale.
Le misure ottenute per ciascuna proiezione vengono retroproiettate lungo la stessa linea e ripetute per
,
]. Si ottiene:
(
dove (
, (
)
)-
(
∫
)
(
∫
)
) è la densità retroproiettata dovuta alla proiezione
( ),e con
(12)
si indica la retroproiezione
(backprojection).
Una semplice retroproiezione, sia pure effettuata a partire ad un gran numero di proiezioni, restituisce
un’immagine che riproduce i principali aspetti di quella iniziale, alterata però da una sorta di sfocamento,
che non permette di definire i contorni e i dettagli; conseguentemente tale algoritmo non è usato in ambito
diagnostico. Al fine di ricostruire la funzione di partenza in modo soddisfacente, viene utilizzato il metodo
della retroproiezione filtrata.
È noto che la trasformata di Fourier della distribuzione spaziale dei coefficienti di attenuazione
( ), e dunque (
equivale alla trasformata di Fourier di
(
(
)
) corrisponde all’antitrasformata di Fourier di
). Si ottiene, in forma polare:
(
)
(
∫ ∫
)| |
(
∫ ∫
(
)| |
)
(13)
Definendo:
(
)
(
)
(
Si ha:
)
(
∫
(
∫
) | |
(14)
(
(15)
)
)
(16)
Dunque, ricordando la (12), la funzione di partenza
retroproiezione della funzione
(
della funzione
La funzione
(
(
(
) può essere ricostruita attraverso la
), che è la trasformata inversa di Fourier a una dimensione rispetto k
).
) si ottiene moltiplicando
(
) per il filtro | | (14). In base a questa relazione la
retroproiezione generica diventa retroproiezione filtrata, e permette di ottenere una riproduzione migliore
dell’immagine di partenza. Ricordando che la moltiplicazione nello spazio di Fourier è il prodotto di
convoluzione nel dominio spaziale, allora
(
)
(
) può essere anche scritto come:
∫
(
) (
)
(17)
In cui la funzione ( ) è detta kernel di convoluzione ed è definita da
( )
,| |-
∫
| |
(18)
12
In questo caso, la funzione cercata (
) è la retroproiezione del prodotto di convoluzione tra la funzione
kernel e la proiezione ad un generico angolo .
Riassumendo, il processo di retroproiezione filtrata consta allora di due fasi:
-
Filtraggio: Si filtra il sinogramma (
( )
( )
-
( )
)
( )
oppure
( ) | |
Retroproiezione: Si retroproietta il sinogramma filtrato nel senso classico
(
)
∫
(
)
∫
(
)
(19)
In questo modo si riesce ad ovviare allo “sparpagliamento” dei dati nell’immagine tomografica, come nella
Figura 9 in cui la stessa immagine viene ricostruita con retroproiezione e retroproiezione filtrata.
(a)
(b)
Figura 9: Esempio di ricostruzione di un immagine tomografica con algoritmo
di (a) retroproiezione e (b) retroproiezione filtrata.
13
2 Sistemi di Computer Assisted Detection (CAD) per noduli juxtapleurici
In questo capitolo si presenta un sistema di Computer Assisted Detection (CAD) per la rivelazione di noduli
juxtapleurici in immagini tomografiche. Negli ultimi anni, è stata esplorata una grande varietà di metodi per
l’elaborazione di sistemi CAD, con risultati promettenti, e molti di essi sono stati portati all’attenzione della
comunità scientifica.12 In particolare, la rivelazione dei noduli a contatto pleurico rappresenta ancora un
problema aperto e di grande interesse. Infatti, come sarà dettagliatamente illustrato nei prossimi paragrafi,
un sistema CAD realizzato per l’individuazione di noduli polmonari interni può ignorare i noduli juxtapleurici
che, già nella fase di segmentazione, vengono esclusi dal volume parenchimale, a causa della loro posizione
ed elevata densità (simile a quella dei tessuti esterni al polmone). In questo caso, nella maschera di
segmentazione i noduli juxtapleurici appaiono come piccole concavità, per cui essi tendono poi ad essere
esclusi dalla fase di detection.
In una precedente Tesi di Laurea13 è stata trattata l’individuazione dei candidati noduli juxta-pleurici
tramite la “riparazione” o “chiusura” delle concavità del bordo del polmone nella maschera di
segmentazione, e il successivo confronto con il bordo originale. In quel lavoro venivano impiegati due
metodi diversi di “riparazione” delle concavità e quindi, in definitiva, di detection dei noduli: il closing
morfologico e l’-hull (vedere il prosieguo del capitolo). La Tesi terminava con l’individuazione delle
concavità, e non giungeva né alla discriminazione tra concavità “normali” del bordo del polmone e noduli,
né ad un paragone tra le efficienze e accuratezze dei due metodi di chiusura di concavità testé citati.
Questa Tesi riprende il lavoro e, dopo l’identificazione dei candidati noduli, effettua:
1. il calcolo di alcune feature ritenute potenzialmente discriminanti;
2. la classificazione dei candidati in veri noduli e concavità fisiologiche, in base alle feature (misure
geometriche o legate ai toni di grigio) e ad una rete neurale artificiale variamente strutturata;
3. il confronto tra le classificazioni ottenute con il closing morphologico e con l’-hull;
4. il confronto tra le classificazioni ottenute con un numero variabile di neuroni nello strato nascosto
della rete.
Il sistema CAD realizzato ha una struttura modulare. Grande interesse è, infatti, riposto nello sviluppo di
metodi complementari, che diano la possibilità di integrare i risultati ottenuti tramite diverse procedure. In
questo modo si ha l’opportunità di realizzare un sistema CAD composito, che presenta un’accuratezza
maggiore di quella di ciascun suo componente.
Il capitolo è strutturato come segue. Si presenta il sistema CAD come strumento d’ausilio per i medici, e se
ne sottolinea l’importanza nel ruolo di primo o secondo lettore (Par. 2.1); si descrive la struttura tipica di
un’immagine TAC, e la codifica secondo lo standard DICOM (Par. 2.2); si introduce il concetto di gold
14
standard, facendo riferimento al database gold standard utilizzato in questo lavoro (Par. 2.3). Nei paragrafi
2.4, 2.5, 2.6 si introduce la struttura tipica di un sistema CAD, accennando alla descrizione delle fasi di
preprocessamento e segmentazione (trattate in dettaglio in precedenti lavori di Tesi e pubblicazioni). Si
argomenta poi riguardo le difficoltà incontrate nella localizzazione di noduli pleurici, e sulla necessità di
adottare metodiche differenziate (Par. 2.7). Il Par. 2.8 descrive la fase di chiusura delle concavità,
presentando alcuni fra i metodi possibili (closing morfologico, α-hull, active contour model). Si passa poi ai
paragrafi riguardanti la scelta delle feature e l’analisi del loro potere discriminante, insieme alla
realizzazione del file delle misure sui candidati noduli (Par. 2.9, 2.10). Nel Par. 2.11 si descrive una prima,
approssimativa selezione dei candidati noduli (riduzione dei falsi positiviV), mediante l’individuazione di una
soglia grossolana per le feature (un filtro). Infine si tratta la fase di classificazione dei candidati, realizzata
con reti neurali artificiali appropriate (Par. 2.12); si descrive a tale proposito la fase di allenamento della
rete (indispensabile per l’utilizzo della stessa), e si introducono gli elementi necessari per la valutazione
della sua accuratezza.
2.1 Sistemi CAD
Un sistema CAD consiste in un software per l’individuazione automatizzata di strutture patologiche,
attraverso l’analisi di immagini medico-diagnostiche.
Nel contesto di questo lavoro, la sigla è acronimo di Computer Assisted Detection, e non di Computer
Assisted Diagnosis, come talvolta si intende14. Una diagnosi implicherebbe, infatti, una classificazione di un
paziente in sano o patologico, e di un nodulo in benigno o maligno, obiettivi eccessivamente ambiziosi: il
sistema si occupa infatti esclusivamente di localizzare regioni sospette, o di individuare specifiche
manifestazioni della patologia, da sottoporre poi al medico.
L’importanza rivestita da un CAD è legata al fatto che l’analisi di un esame diagnostico non è un’operazione
semplice. Ogni scansione toracica CT consta anche di trecento immagini bidimensionali,15 che vanno
analizzate visualmente.16 Tale compito può essere particolarmente difficoltoso, e comportare un grande
dispendio di tempo con la probabilità che il medico incorra in errori. Infatti, le immagini diagnostiche
possono spesso presentare rumore, e talvolta il contrasto fra le zone relative ai vari tessuti può risultare
non adeguato alla chiara interpretazione delle immagini. A queste difficoltà, va aggiunto che, spesso,
regioni patologiche, specialmente se in fase iniziale, possono presentare strutture anatomico-morfologiche
molto simili a quelle di naturali conformazioni del tessuto in esame. Nel caso del tessuto parenchimale, i
noduli hanno, se osservati sezione per sezione, le stesse caratteristiche morfologiche, e la stessa tonalità di
V
Dettagli sulla definizione di falsi positivi (FP), falsi negativi (FN), etc e sull’uso dei queste grandezze saranno dati verso la fine del capitolo. Intanto
basti considerare che FP e FN sono errori del sistema CAD, in cui questo fornisce un giudizio erroneo di positività (ossia di patologia) o di negatività
(ossia di normalità).
15
grigio dei vasi sanguigni, presenti nella medesima area di osservazione. Si stima che, proprio per questa
ragione17, fino al 30% dei tumori polmonari non vengano diagnosticati se non in seguito a diverse sedute, e
con il carcinoma già in fase avanzata. Se intervenisse un secondo lettore (blind reader), a dare un ulteriore
parere, si osserverebbe una drastica riduzione delle rilevazioni errate (circa il 12%). Questa soluzione, però,
si rivela incompatibile con la realtà ospedaliera.
Un sistema CAD può rivestire un importante ruolo di supporto nella pratica dello screening o nella normale
prassi clinica18 come
o
primo lettore, nell’ambito dello screening di massa, rivolto alla popolazione ad alto rischio. In tale
situazione, è presente un’ingente quantità di dati da analizzare, la maggior parte dei quali
corrispondenti a pazienti sani. Il sistema può selezionare le immagini potenzialmente patologiche,
in modo da richiamare in primo luogo su di esse l’attenzione del medico. Il sistema CAD in questi
casi dovrà ridurre al minimo il numero di falsi negativi: di conseguenza, crescerà la quantità di falsi
positivi, da sottoporre all’osservazione del medico.
o
secondo lettore. In questo caso, il software offre un ausilio al medico nella usuale pratica clinica,
proponendo un secondo parere, per favorire una diagnosi più accurata. In questo caso, il CAD
dovrà minimizzare il numero di falsi positivi.
L’utilizzo di un sistema computerizzato, caratterizzato da grande riproducibilità e stabilità, che assista il
radiologo nel suo lavoro, può offrire una diagnosi più celere e uno standard più elevato. Il sistema CAD può
divenire uno strumento di grande utilità per il medico, per il quale il lavoro si presenta gravoso e
ripetitivo19, anche perché la maggior parte delle immagini diagnostiche sono prive di patologie. Esso, non
pretende in alcun modo la sostituzione del radiologo, ma propone solo di coadiuvarlo, accrescendone
l’accuratezza in casi difficilmente analizzabili dal solo giudizio umano.
Di seguito, saranno esposte le caratteristiche principali, la struttura e le qualità di un sistema CAD, in
particolare per la rilevazione di noduli pleurici.
2.2 Premessa: struttura di un’immagine TAC
Un sistema CAD riceve in input uno o più file, contenenti il risultato di una scansione CT. E’ allora opportuno
descrivere la modalità con cui un’immagine CT viene salvata su disco, e il suo contenuto informativo.
In generale, in un’immagine diagnostica medica i dati grafici possono essere:
-
bidimensionali: se si tratta di un’immagine singola quale una radiografia o un’ecografia;
-
tridimensionali: se si tratta di un volume (TAC, RM) oppure se la scansione è bidimensionale, ma
16
diversi fotogrammi (frame) temporali sono immagazzinati nello stesso file;
-
a quattro dimensioni: se si tratta di un volume, ma il file memorizza diversi frame tridimensionali
registrati in istanti diversi.
Nel caso di interesse di questa Tesi, le immagini sono tridimensionali volumetriche.
Il dispositivo tomografico restituisce immagini codificate secondo lo standard DICOM20 (Digital Imaging and
Communications in Medicine), stabilito dalla NEMA (National Electrical Manifacturers Association).
Lo standard DICOM definisce i criteri per la comunicazione, la visualizzazione, l’archiviazione, e la stampa
d’informazioni di tipo biomedico, quali ad esempio le immagini radiografiche, scansioni CT, RM e
ultrasoniche. Si occupa del formato grafico delle immagini diagnostiche, e dei protocolli da utilizzare
nell’interconnessione di apparecchiature di tipo medicale. La sua diffusione si è rivelata estremamente
vantaggiosa, perché consente di avere una solida base di interscambio di informazioni fra apparecchiature
di diversi produttori, specifica per l’ambito biomedico.
Un file DICOM è costituito dai dati relativi ai pixel dell’immagine, e da un’intestazione (header), che
immagazzina le informazione note come metadati, contenenti il nome e il sesso del paziente, il tipo di
scansione, le dimensioni dell’immagine, il nome dell’ospedale in cui essa è stata acquisita, e così via21.
In Figura 10 è riportato (schematicamente) un esempio di file DICOM, la cui parte grafica è mostrata a
sinistra, mentre sulla destra è presente parte dei metadati (presentati in formato leggibile).
Una tipica scansione TAC toracica consta di circa 300 slice (sezioni). Ogni slice è una matrice, i cui elementi
corrispondono ad elementi di volume (voxel, VOlume piXEL) del tessuto esaminato.
A ciascun voxel è assegnato un valore, detto numero CT o numero di Hounsfield, espresso in HU (Hounsfield
Unit), associato alla media dei valori di attenuazione della radiazione X del voxel; esso è visualizzato in
seguito come una tonalità di grigio.
Nella scala di Hounsfield ad ogni tessuto corrisponde un range di valori, compreso nell’ intervallo [-1000,
circa 3000-4000+. Si utilizzano come termini di riferimento l’acqua, cui si attribuisce valore 0, e l’aria, cui è
associato il valore -1000. Ad esempio, il tessuto osseo giunge a valori CT superiori a 3000.
Il numero
(
) di ogni pixel (
) dell’ immagine è8:
(
dove
)
(
)
(20)
è il coefficiente medio di assorbimento del tessuto relativo al voxel e il numero 1000 è detto
costante di ingrandimento.
17
Filename: '47090171'
FileModDate: '22-giu-2006 11:50:56'
FileSize: 526984
Format: 'DICOM'
FormatVersion: 3
Width: 512
Height: 512
BitDepth: 12
ColorType: 'grayscale'
FileMetaInformationGroupLength: 190
FileMetaInformationVersion: [2x1 uint8]
MediaStorageSOPClassUID:'1.2.840.10008.
5.1.4.1.1.2'
MediaStorageSOPInstanceUID:
'1.3.12.2.1107.5.1.4.24525.4.0.139230223
Figura 10: Il formato DICOM.
2714371'
TransferSyntaxUID: '1.2.840.10008.1.2.1'
ImplementationClassUID:
'1.2.276.0.7230010.3.0.3.5.2'
ImplementationVersionName:
'OFFIS_DCMTK_352'
Di norma ogni slice viene immagazzinata in un singolo file, ha una risoluzione (nel caso toracico) di 512 x
512 pixel, ed è caratterizzata dall’allocazione di 16 bit/pixel. Non tutti i bit corrispondenti ad ogni singolo
pixel contengono informazioni grafiche: solo 12 bit sono effettivamente utilizzati per contenere il valore di
Hounsfield. In tal modo è possibile la rappresentazione di
livello di grigio, consentendo di
ricoprire l’intero intervallo di densità (più precisamente, di densità elettronica) delle tipologie di tessuto
presenti in un’immagine TAC.
L’occhio umano non è in grado di percepire un range tanto ampio di toni di grigio. Così i software di
visualizzazione delle immagini TAC consentono la scelta di una finestra di tonalità, rimappate su una scala di
256 tonalità di grigio, risoluzione vicina a quella tipica dell’occhio umano (assimilabile a circa un centinaio di
sfumature, dal nero al bianco). La scala così ottenuta è rappresentabile su un comune schermo di un
personal computer. Grazie alla disponibilità di questo strumento di scelta, il medico può decidere quale
range di densità evidenziare ed osservare, a seconda della specifica situazione clinica.
Tessuti e sostanze caratterizzati da bassa densità (come l’aria e gli organi che sono essenzialmente ricchi di
aria), i cui pixel assumono piccoli valori nella scala di Hounsfield, sono rappresentati con tonalità più scure
di grigio; man mano che cresce la densità del tessuto (ossa, muscoli, acqua), e anche il numero Hounsfield
corrispondente, il pixel rappresentativo assumerà una tonalità di grigio via via più chiara.
Si presenta in Figura 11 l’immagine di una singola slice TC toracica. Le varie strutture anatomiche presenti
compaiono con una diversa tonalità di grigio, a seconda della particolare densità (correlata al valore di
18
Hounsfield). Il polmone appare nero, le ossa bianche, mentre i tessuti molli, a seconda della densità, e
dunque del valore di Hounsfield, assumono diverse tonalità intermedie di grigio.
Figura 11: Tipiche strutture presenti in una slice di una CT toracica.
Per identificare un set di file DICOM e facilitare l’accesso alle informazioni poste all’interno dei singoli file,
lo standard DICOM definisce il Basic Directory Information Object Definition. Il set di file è quindi spesso
accompagnato dal file DICOMDIR, implementazione del Basic Directory IOD: un file indice che referenzia i
singoli file contenenti la singola fetta; agisce quindi come directory di un file DICOM contenente una
gerarchia completa dei quattro livelli (PATIENT STUDY  SERIES  IMAGE).
2.3 Database “Gold Standard”
Il buon funzionamento di un sistema CAD dipende dalla qualità dell’allenamento che esso compie, su casi
reali di patologia provvisti della diagnosi del medico. Inoltre, nel test di un CAD è necessario confrontare i
risultati della detection automatica con quelli del medico radiologo. Ai fini della realizzazione di un CAD di
qualità, la criticità di queste operazioni non è da sottovalutare, in quanto è noto che l’accuratezza della
diagnosi del medico non è illimitata; in più, il paragone tra diagnosi effettuate da medici diversi mostra
spesso un accordo non completo, e quindi la diagnosi risulta anche soggettiva. Disporre di un database di
immagini sulle cui refertazioni è possibile essere fiduciosi è quindi un problema di fondamentale
importanza. In realtà, la piena affidabilità di una diagnosi si potrebbe ottenere solo in caso di esame
istologicoVI, ma esso non è quasi mai disponibile.
VI
L'esame istologico è una tecnica diagnostica che consiste nell'osservazione al microscopio di un campione di tessuto tumorale, prelevato
chirurgicamente dal paziente o tramite biopsia dal sito in cui si sospetta la presenza di un tumore.
19
E’ allora opportuno costruire un database di refertazioni sul quale la confidenza sia elevata, che venga
adoperato come gold standard, ossia come riferimento “vero”, in base al quale si può allenare e poi
valutare il corretto funzionamento del CAD. Esso è usualmente costituito da referti che indicano le regioni
patologiche del tessuto polmonare in base al consenso tra più medici.
Il database gold standard a cui si fa riferimento in questo lavoro è costituito da 20 scansioni CT, ad alta
risoluzione e a bassa dose, di cui alcune appartenenti a pazienti privi di patologie, e le altre
complessivamente contenenti 20 noduli pleurici.
Le immagini sono state esaminate da radiologi di esperienza (appartenenti alle strutture ospedaliere di Pisa
e di Lecce, da 2 a 4 per ciascuna immagine, con esame in cieco), che hanno infine annotato i noduli
evidenziati con le rispettive dimensioni e posizioni.
Nei test riportati nell’ultimo capitolo, si userà sia questo database (indicato con la sigla DBGS), che un
database che include il DBGS ma contiene anche immagini con noduli refertati senza consensus dei medici,
per un totale di 57 scansioni CT; si avranno in tal caso 78 noduli pleurici in totale.
2.4 Struttura di un sistema CAD
Un CAD consiste generalmente dei seguenti passi fondamentali:
o
Preprocessamento. Il primo step consiste in una pulizia del rumore dell’immagine acquisita.
o
Segmentazione. Fase di circoscrizione della zona interessata (nel nostro caso i polmoni), che
successivamente verrà sottoposta alla ricerca delle patologie. La segmentazione permette di
ridurre il tempo di elaborazione degli stadi successivi, e di operare esclusivamente sul tessuto
d’interesse, limitando il numero di falsi positivi rilevati dall’algoritmo di ricerca.
o
Individuazione delle regioni d’interesse. Si ricercano le zone dette ROI (Regions Of Interest, regioni
di interesse) che, in base alle loro caratteristiche anatomico-morfologiche, potrebbero ospitare una
patologia. In questo caso vengono selezionate zone che potrebbero contenere noduli pleurici.
o
Estrazione delle feature dalle ROI. Si identificano dei parametri o misure, comunemente indicati
con il termine anglosassone di feature, che, assumendo valori diversi nelle zone sane e in quelle
malate, permettano di caratterizzare le regioni d’interesse. È fondamentale effettuare
un’opportuna scelta delle feature in modo che siano il più discriminanti possibile. La scelta varia in
base alla patologia e all’organo in esame. Si sottolinea come gli aspetti peculiari delle diverse
patologie siano tanti e vari che un set di feature valido per un tipo di tessuto, quale quello
polmonare, risulta spesso di scarsa utilità per l’indagine di lesioni tumorali di altri organi, quale ad
esempio la mammella.
o
Analisi delle feature e classificazione delle ROI. In questa fase avviene l’analisi dei dati, e si
classificano le ROI, in base al valore delle feature, in regioni patologiche e regioni normali. Si ricorre
20
all’utilizzo di classificatori, ed in particolare di reti neurali, che vengono addestrate mediante
l’utilizzo di set di immagini di cui si conosca lo stato di normalità o patologia. In seguito
all’addestramento i classificatori divengono in grado di analizzare le immagini successivamente
fornite, applicando e generalizzando quanto acquisito.
La catena di operazioni parte (nel caso che interessa questa Tesi) da una scansione di tomografia
computerizzata, e giunge a fornire in output un elenco di zone malate (presumibili noduli pleurici).
2.5 Preprocessamento
Una prima selezione delle immagini da studiare all’interno di un sistema CAD è svolta tramite il
preprocessamento. In questa fase22, i valori dei pixel sono manipolati ed elaborati, al fine di ridurre il
rumore dell’immagine in analisi.
Tale processo favorisce la successiva individuazione di tessuto malato o formazioni patologiche in esso. È
necessario che il filtro di preprocessamento sia sufficientemente efficiente, da eliminare i disturbi dalle
immagini elaborate, ma da preservare regioni che potrebbero essere oggetto di studio. Infatti, le aree che
sono scartate durante il preprocessamento, non possono più essere recuperate negli stadi successivi; non si
può rischiare dunque di trascurare zone potenzialmente malate.
2.6 Segmentazione polmonare
La fase di segmentazione è finalizzata alla delineazione del volume da sottoporre alla successiva ricerca
delle patologie. L’input del segmentatore polmonare è l’immagine TAC opportunamente modificata dal
preprocessamento. L’output è un’immagine binaria (maschera tridimensionale) per ciascun polmone, in cui
i voxel posti a valore 1 corrispondono nella CT al tessuto dell’oggetto da indagare (polmoni), mentre sfondo
e tessuti non utili all’indagine danno voxel a 0.
Con la segmentazione del volume utile si ottiene un duplice vantaggio:
a. Diminuzione del peso computazionale: Il volume da sottoporre ad analisi diminuisce
notevolmente; di conseguenza saranno minori il tempo impiegato dall’elaboratore e la memoria
richiesta.
b. Riduzione del numero di falsi positivi: gli algoritmi di analisi non sono fuorviati dalla ricerca in
regioni anatomiche dove la patologia in oggetto non può essere presente.
21
Il segmentatore è stato oggetto di precedenti Tesi di Dottorato e di Laurea, e quindi non verrà qui illustrato
in dettaglio; esso è strutturato secondo le fasi in Figura 12.
Analisi dell’istogramma di valori di grigio
per l’individuazione di una soglia grossolana
Region Growing 3D o Ant Colonies o Hessian Matrix
per la segmentazione dell’intero sistema respiratorio
Wavefront algorithm
per la ricostruzione dell’albero bronchiale esterno e dei singoli
polmoni per differenza
Creazione di una superficie di separazione
per la risoluzione dell’ eventuale problema della “fusione”
polmonare e crescita dei singoli polmoni
Closing 3D o Alpha-hull su ciascun polmone
per l’ “eliminazione” dei buchi lasciati dai vasi e l’inclusione dei
noduli interni e pleurici
Figura 12: Schema del segmentatore.
Le prime quattro fasi restituiscono due maschere tridimensionali ciascuna contenente un polmone, e nelle
quali (vedere il prossimo paragrafo) i noduli pleurici compaiono come piccole concavità, di dimensioni che
variano usualmente da qualche millimetro fino a circa un centimetro e più. L’ultima fase della
segmentazione (sulla quale ci soffermeremo perché in essa trova collocazione parte del lavoro di questa
Tesi) “chiude” queste concavità con il doppio risultato di (1) ottenere un profilo polmonare più accurato e
(2) permettere l’evidenziazione (detection) per differenza delle suddette concavità.
2.7 Il problema dei noduli pleurici
Un nodulo polmonare denso a contatto con la pleura può facilmente essere escluso dal volume
segmentato, a causa della sua posizione e della sua alta densità, esterna al range che definisce il tessuto
parenchimale.
D’altra parte, la maschera di segmentazione (output delle prime quattro fasi della Figura 12) non include
nemmeno i noduli interni né gran parte dei vasi, strutture troppo dense (numero di Hounsfield elevato) per
essere prese in considerazione quando il segmentatore applica le soglie sui valori di grigio necessarie per
delimitare il parenchima polmonare. I noduli interni al volume polmonare danno luogo a cavità del volume
segmentato, mentre sia i noduli a contatto pleurico che i vasi danno generalmente luogo a concavità, come
22
si nota in Figura 13. In alcune situazioni, a causa degli effetti di volume parziale, anche noduli a contatto
pleurico e vasi interni (quelli più sottili) possono dare luogo a cavità. Inoltre anche molte delle concavità
dovute ai vasi, viste in 2D (ossia fetta per fetta) appaiono come cavità (“buchi”) della maschera.
Figura 13: Maschere di segmentazione dei due polmoni (riunite in un’unica immagine per comodità visiva). Sul polmone a
sinistra è presente un nodulo pleurico, che ha lasciato una visibile concavità nella superficie.
Le cavità sono facilmente recuperabili, perché sono dei “buchi” nella maschera (ossia zone di sfondo non
connesse con il bordo), ed è facile riempirle per includere così anche le corrispondenti strutture che li
generano. Al contrario, le concavità sono più difficilmente trattabili.
Il nodulo pleurico, anche se di
dimensioni evidenti, per via della sua
densità, è escluso dal volume
segmentato
Figura 14: Nodulo pleurico.
Un algoritmo di segmentazione che non preveda esplicitamente la chiusura delle concavità dovute alla
presenza dei noduli pleurici si rivelerà parzialmente fallimentare, perdendo a priori l’opportunità di una
segmentazione completa.
23
2.8 Individuazione delle concavità del bordo del polmone
Le concavità del parenchima polmonare si presentano come zone di sfondo, parzialmente circondate dai
pixel della maschera di segmentazione, ma connesse con il bordo dell’immagine. In un sistema CAD per la
rilevazione di noduli pleurici, dopo la segmentazione è necessario individuare le regioni concave del bordo
della maschera. Tra queste in seguito si selezioneranno, tramite calcolo di feature e la rete neurale, quelle
con forma e dimensione opportune.
Saranno ora brevemente presentate le due procedure di chiusura delle concavità impiegate in questo
lavoro: un metodo ‘tradizionale’ (closing morfologico) ed uno alternativo (metodo degli α-hull); poi si
accennerà ad un ulteriore sistema da considerare come sviluppo futuro: l’algoritmo ACM, Active Contour
Model. Si mostrerà poi come dalla differenza tra il bordo originale della maschera di segmentazione, e il
bordo “chiuso”, è possibile ottenere l’elenco delle concavità, candidate ad essere noduli, operazione
ripetibile a scale diverse per ottenere una descrizione esaustiva di un vasto range di dimensioni nodulari.
2.8.1 Chiusura delle concavità tramite closing morfologico
Il metodo maggiormente utilizzato per la chiusura di concavità, è il closing morfologico8. La tecnica risolve il
problema dei noduli con contatto pleurico, che vengono così inglobati nel volume segmentato, ma
permette anche la chiusura dei buchi lasciati dai noduli interni e dall’ingresso dei vasi (di alta densità) nel
polmone. Il closing morfologico è definito dall’applicazione consecutiva delle operazioni morfologiche di
dilatazione (growing) ed erosione (shrinking)23, utilizzanti il medesimo elemento strutturante. Un elemento
strutturante è una maschera mobile di forma e dimensioni (in pixel) prestabilite, che ha usualmente
proprietà di simmetria rispetto al suo centro. Si individua un punto di riferimento dell’elemento
strutturante (reference point), che non sia necessariamente sito al centro della maschera.
Le operazioni morfologiche possono avvenire sia su immagini binarie (bianco/nero) che su immagini in toni
di grigio. Nel nostro caso l’applicazione è sulle maschere binarie, ed è quindi a questa variante che si farà
riferimento nel seguito.
L’elemento strutturante utilizzato in questo lavoro è un disco con raggio variabile r (che individua un
parametro di scala
⁄ ) e reference point centrale. L’oggetto al quale è applicata l’operazione
morfologica è la maschera di ciascun polmone.
Segue la descrizione delle operazioni morfologiche di dilatazione ed erosione binaria, che supponiamo
applicata ad un’immagine in cui l’oggetto è rappresentato da pixel neri e lo sfondo da pixel bianchi. E’ la
convenzione opposta a quella usualmente adottata per la visualizzazione su schermo, ed è adatta al caso
24
della visualizzazione su carta. Siccome le operazioni morfologiche comprendono anche la trasposizione
dell’elemento strutturante, allo scopo di semplificare la trattazione supporremo che questo sia simmetrico
rispetto alla diagonale principale.
a. Operazione di dilatazione
L’elemento strutturante è fatto scorrere sull’immagine, facendo coincidere il suo punto di
riferimento successivamente con ogni pixel dell’oggetto (pixel neri). I pixel via via coperti dai pixel
neri dell’elemento strutturante diventeranno (o resteranno) neri. L’effetto consiste nell’aggiungere
uno strato di pixel neri intorno ai bordi dell’oggetto (anche nelle eventuali cavità). Ciò comporta il
riempimento di piccoli buchi e aperture nella struttura, e l’unione di oggetti che erano separati da
piccole distanze (“piccoli”, rispetto alle dimensioni dell’elemento strutturante). L’operazione di
dilatazione su un’immagine binaria è riportata in Figura 15.
Elemento strutturante
Reference point
Figura 15: Operazione di dilatazione.
Dunque la dilatazione espande il contorno dell’oggetto, nel nostro caso la maschera binaria del
parenchima polmonare, inglobando nella sua estensione anche eventuali regioni corrispondenti a
noduli pleurici, e le concavità dovute all’ingresso dei vasi (oltre che riempiendo le cavità dovute ai
noduli interni e ai vasi, ove esse siano più piccole dell’elemento strutturante).
b. Operazione di erosione
Similmente al caso della dilatazione, l’elemento strutturante esplora l’immagine, ma il suo punto di
riferimento viene “sovrapposto” solo a pixel dello sfondo (nel caso illustrato dalle figure, i pixel
bianchi). I pixel dell’immagine ai quali si sovrappongono quelli neri dell’elemento strutturante,
diventano (o rimangono) bianchi. L’effetto è togliere uno strato di pixel intorno all’oggetto. Si noti
25
come piccole connessioni o prolungamenti siano rimossi da tale processo. In Figura 16 si osserva
l’applicazione dell’operatore di erosione.
c. Operazione di closing
L’operazione di closing morfologico (o chiusura morfologica) è per definizione l’applicazione della
dilatazione seguita dall’erosione (Figura 17); essa riporta grossolanamente l’oggetto (la maschera
del polmone) alle sue dimensioni originarie. Si ottiene però che le cavità e le concavità, che sono
state chiuse attraverso la dilatazione, rimangono chiuse, non essendo in grado di erodere.
Elemento strutturante
Reference point
Figura 16: Operazione di erosione.
Figura 17: Operazione di chiusura morfologica.
Il risultato dell’applicazione dell’operatore di closing morfologico alla maschera di segmentazione del
polmone è, come più volte spiegato, una maschera in cui le concavità del bordo e le cavità, purché di
dimensioni paragonabili o minori di quelle dell’elemento strutturante, sono state rispettivamente smussate
(“chiuse”) e riempite. Ricordiamo che le concavità sono fisiologiche, oppure dovute alla presenza dei noduli
juxta-pleurici, le cavità sono vasi oppure noduli interni. In particolare e come già anticipato, l’elemento
strutturante scelto per l’applicazione alla maschera di segmentazione polmonare è un cerchio (in 2D) di
26
raggio r opportuno, con l’osservazione che raggi più grandi provocano la chiusura di concavità e cavità
grandi, e viceversa, per cui r (o il suo reciproco, la curvatura 1/r) risultano essere un parametro di scala per
l’operazione di ricerca delle concavità.
2.8.2 Chiusura delle concavità tramite α-hull
Un metodo alternativo al closing morfologico prevede l’utilizzo di uno strumento denominato α-hull.24
L’algoritmo α-hull è una generalizzazione del convex-hull, capace di rilevare concavità la cui dimensione
dipende da un parametro di curvatura α. Analogamente al closing morfologico, l’α-hull si applica al volume
polmonare segmentato, del quale bisogna rilevare le concavità del bordo, per poi classificarle come noduli
o concavità naturali. Pur rimandando alle pubblicazioni originali per i dettagli, diamo nel prosieguo alcune
informazioni sull’-hull.
Ogni regione ottenuta dalla segmentazione di un’immagine medica 2D può essere approssimata da un
poligono. L'errore di questa approssimazione può essere reso arbitrariamente piccolo (entro la risoluzione
dell’immagine) aumentando il numero di vertici del poligono.
Sia V un poligono, definito da n punti del bordo della regione segmentata, indicati con v1, v2, …, vn. Sia X
l’insieme chiusoVII di punti definiti dal poligono V (interni e di bordo). Dato l’insieme X, contenuto in R3,
l'insieme
è globalmente convesso se per ogni coppia di punti
che collega
a
è contenuto in
appartenenti a , il segmento di retta
. Ogni insieme che non è globalmente convesso si definisce
globalmente concavo.
Dato l'insieme di punti X, il Convex Hull globale di X , GCH(X) (Global Convex Hull), è definito come
l'intersezione di tutti gli insiemi convessi contenenti X . Si noti che GCH(X) è globalmente convesso.
Per una figura non globalmente convessa, la differenza tra il bordo di X e il bordo di GCH(X) (punti del bordo
di X, che non sono elementi del bordo di GCH(X)) individua delle concavità di X.
L’utilizzo del Convex hull Globale non permette però di rilevare singolarmente tutte le concavità, in quanto
alcune di esse saranno annidate in altre e solo quella “maggiore”, che ingloba le altre, sarà evidenziata.
Si fa allora ricorso ad una generalizzazione dei concetti precedenti. Usiamo nel prosieguo il termine “sfera”
in senso generalizzato, intendendo che in 2D esso equivale a “cerchio”.
La curvatura di una sfera di raggio r vale  = 1/r .
VII
Un insieme è detto chiuso se coincide con la sua chiusura, ossia se contiene tutti i suoi punti di accumulazione. Inoltre un insieme è chiuso se e
solo se ogni successione convergente contenuta in esso, abbia limite appartenente ad esso.
27
Un insieme
è convesso relativamente ad α, se é un insieme per il quale, presi qualsiasi due punti ad esso
appartenenti , separati da una distanza minore di ⁄ questi possono essere connessi da un percorso in
che è il bordo di una sfera con raggio maggiore o uguale ad ⁄ .
L’ α-hull globale di
(GH) è l'intersezione dei complementi delle sfere di raggio ⁄ , che soddisfano la
seguente condizione: l’intersezione di ciascuna sfera con
è vuota. L’α-hull globale è globalmente
convesso relativamente ad α.
Attraverso l’utilizzo dell’ α-hull si può eseguire la ricerca delle concavità al variare del parametro , che
risulta essere un parametro di scala, in quanto al suo variare le concavità evidenziate dalla differenza dei
bordi di X e di GH(X) sono via via diverse: per valori piccoli di  le concavità sono quelle più grandi, per
valori grandi di  (raggi via via più piccoli) le concavità sono più piccole.
In questo senso, il parametro  è paragonabile al reciproco del raggio dell’elemento strutturante del
closing morfologico visto al paragrafo precedente (con il cerchio come elemento strutturante).
Con la scelta opportuna del valore massimo di α si possono eliminare dallo studio le concavità troppo
piccole dovute al rumore.
2.8.3 Chiusura delle concavità – Active Contour Model
L’algoritmo ACM12 è una tecnica di analisi d’immagini utilizzata per definire i contorni di un oggetto
complesso. È un metodo alternativo per la correzione (e quindi la detection) delle concavità, che verrà
molto probabilmente adoperato nel prossimo futuro come alternativa alle opzioni già esposte. Il fulcro di
tale tecnica consiste nel posizionare una curva chiusa, una spezzata, che unisca un certo numero di nodi in
una determinata posizione dell’immagine. Anche denominato snake, l’algoritmo ACM, Active Contour
Model, descrive i bordi dell’oggetto in esame (il polmone), come curve o superfici parametriche, con
un’energia funzionale E associata. Il problema di trovare un bordo utile, che segua strettamente l’oggetto
quando il bordo è convesso, o leggermente concavo, ma che smussi in modo conveniente le concavità
dovute ai noduli, si presenta come un problema di minimizzazione dell’energia.
2.8.4
Detection delle concavità
Una volta applicata alle slice della maschera di segmentazione una delle tecniche viste per la chiusura delle
concavità, si passa alla detection.
28
Se si indica con
l’insieme dei pixel del bordo della maschera di segmentazione originale, e con
l’insieme dei pixel di bordo della matrice corretta tramite chiusura delle concavità, dalla differenza si
ottiene
, insieme di pixel appartenenti al bordo originale, ma non a quello corretto; organizzando
l’insieme in gruppi di pixel contigui, si possono dedurre le singole concavità12. Se, infine, la procedura è
ripetuta per diversi valori di scala (curvature via via crescenti dell’elemento strutturante o della sfera
adoperata per il calcolo dell’-hull) , si possono evidenziare concavità di dimensione diversa (approccio
multiscala) e in particolare distinguere concavità nidificate (Figura 18).
Aedge
A1edge
DIFF = Aedge - A1edge
Figura 18: Esempio di applicazione della tecnica di ricerca delle concavità, su un’immagine sintetica. Da sinistra verso destra, e in
ciascuna striscia orizzontale di immagini: bordi della maschera originaria, della maschera risultante dall’applicazione dell’α-hull,
e differenza tra i due, per due diversi valori di α (il valore di α aumenta dall’alto verso il basso, evidenziando concavità diverse e
risolvendo casi
(in rosso) marcano inizio eDIFFfine
delle
= Aedge
- A1edgeconcavità.
Aedgedi annidamento). I segmenti e le piccole circonferenze
A1edge
In questo modo si crea una gerarchia naturale di concavità ordinata rispetto ad
valore di
(Figura 19). Si noti che il
può assumere valori che vanno da 0 (che corrisponde al convex hull, e ad un cerchio di raggio
infinito nel closing) al più grande valore che permette di non identificare il rumore come concavità (
).
L’insieme A, costituito dai valori del parametro di curvatura, utilizzati nell’algoritmo α-hull e nel closing
morfologico, deve essere scelto nel modo più opportuno12: una varietà troppo ampia dei valori del
parametro porterebbe a una migliore descrizione delle concavità, ma comporterebbe anche calcoli più
lunghi, e spesso un maggior numero di falsi positivi. Ridurre eccessivamente la cardinalità di A causa invece
un aumento delle concavità non rilevate. Non è conveniente scegliere valori di α troppo piccoli
(corrispondenti a un grande raggio), poiché essi rilevano anche il rumore, e non sono in grado di distinguere
le concavità annidate. D’altra parte, non è indicata nemmeno la scelta del parametro α troppo grande: esso
29
conduce a differenze fra i bordi pre- e post-chiusura trascurabili, e dunque non permette la rilevazione
delle concavità.
L’output di questa fase è un elenco di concavità: per ciascuna di esse (mostrate ad esempio nelle Figure 18
e 19) viene individuata come ROI la bounding box (regione rettangolare di minima superficie, avente i lati
paralleli con gli assi, contenente i pixel di bordo della concavità) e la corrispondente regione sia della
maschera binaria che dell’immagine originale (la slice della TAC) vengono conservate per i successivi calcoli
delle feature discriminanti.
Figura 19: Esempio della gerarchia di concavità individuate, in un'immagine sintetica, per diversi valori di α.
2.9 Individuazione delle feature e creazione del file dei candidati noduli
Tramite l’utilizzo degli α-hull o del closing morfologico, si è ottenuta una gerarchia di ROI contenenti le
concavità, che d’ora in poi chiameremo candidati noduli (dai quali sono state già eliminate le piccole
concavità dovute al rumore). Tra questi bisogna selezionare i noduli juxtapleurici scartando le concavità
naturali. Lo scopo di questa fase del sistema CAD è dunque la riduzione del numero di falsi positivi (FP).
La selezione va svolta tramite la scelta di parametri caratterizzanti (feature), calcolati sui candidati noduli
che, in base al loro valore, permettano di distinguere fra un nodulo juxtapleurico, ed una concavità naturale
del bordo parenchimale12. Il problema si configura come un tipico esempio di pattern recognition.
Si possono definire due classi di feature: quelle che riguardano la forma delle concavità (da calcolare
direttamente sull’elenco di pixel della concavità, oppure sulla maschera di segmentazione, nella regione
corrispondente alla bounding box di ciascuna concavità) e quelle che “misurano” il tipo di texture
contenuto nella regione individuata dal bordo delle concavità (da calcolare nell’immagine TAC originale).
Le feature più rilevanti basate sulla forma della concavità (feature geometriche) sono:
o
Boundary length Numero di pixel che costituiscono il bordo della concavità.
30
o
o
o
o
o
o
Area Area in pixel tra il bordo della concavità e il segmento di retta che collega il primo e l’ultimo
punto del bordo.
Span Distanza tra il primo e l’ultimo punto del bordo della concavità (Figura 20, sinistra).
Depth Lunghezza della perpendicolare al segmento che definisce lo span, tracciata dal punto più
lontano del bordo della concavità (Figura 20, destra).
DepthOverSpan È il rapporto fra il valore di span e il valore di depth.
Raggio Distanza media dei pixel del bordo dal centroide della concavità.
Circolarità Rapporto fra l’area della concavità, e l’area del cerchio avente il suo stesso perimetro.
Figura 20: Sinistra: Span delle concavità formate dal mediastino (nero), e da un vaso (rosso). Destra: Depth delle concavità
formate da un nodulo (rosso), e da un vaso (verde).
La feature più immediata, fra quelle basate sulla texture, è la media dei toni di grigio (gray level) nella ROI,
ma si possono utilizzare anche le seguenti misure, calcolate per i punti interni alla concavità, data la
distribuzione dei livelli di grigio:
o
o
o
o
o
Graymean (media dei livelli di grigio).
Graystd (deviazione standard).
GraySkew (asimmetria).
GrayKurt (curtosiVIII).
GrayEntrpy (entropia).
Risulta di grande utilità considerare insieme i due gruppi di feature, geometrici e legati ai valori di grigio,
per eliminare quanti più falsi positivi (concavità naturali) possibile.
Per ogni candidato nodulo presente nella struttura gerarchica, ottenuta come spiegato nel paragrafo
precedente, viene calcolato un vettore delle feature (che costituirà l’input della fase di classificazione),
contenente anche un elemento che riporta il parere del medico su quella ROI, ricavato da un confronto con
VIII
La curtosi (nota anche come kurtosi), nel linguaggio della statistica, è un allontanamento dalla normalità distributiva, rispetto alla quale si
verifica un maggiore appiattimento o un maggiore allungamento.
31
le refertazioni (“target”, ossia classificazione di appartenenza, sano o malato, dove per convenzione t = 0
per una concavità naturale, t = 1 per un nodulo). Sovrapponendo i vettori riga delle feature, per tutte le
concavità candidate noduli, si ottiene una matrice
, in cui ciascuna colonna contiene una delle feature
(tranne una che contiene il target) e ciascuna riga ad una concavità.
In particolare è importante stabilire come è assegnato il valore al parametro t. I noduli veri, ossia i candidati
che si riconoscono come patologie e ai quali viene assegnato il valore t = 1, si individuano secondo il
seguente criterio12: la distanza euclidea fra il centroide della concavità candidata e il centroide di uno dei
noduli diagnosticati dal medico radiologo, è minore di
, dove
è il raggio di detto nodulo in base alle
misure del radiologo. Il fattore 1.5, arbitrario ma ragionevole, tiene conto dell’incertezza nella misura del
raggio. Dunque, dato
, candidato nodulo, se esiste un
evidenziato dal medico, (
. Viceversa,
)
, allora
, tale che per il corrispondente
, nodulo
è riconosciuto come nodulo, e ad esso si assegna target
è un non-nodulo, e ad esso si attribuisce target
.
Ogni candidato nodulo viene inoltre individuato mediante una serie di coordinate (posizione del centroide,
CT di appartenenza, raggio). La matrice così realizzata viene salvata su un file, che rappresenterà l’input
per la rete neurale artificiale.
2.10 Analisi delle feature: potere discriminante
È stato finora creato il file contenente la matrice , nella quale sono presenti i valori delle feature calcolati
sui candidati noduli, e il rispettivo target t, che può essere 0 o 1 e dichiara la classe di appartenenza
(tessuto sano o patologico rispettivamente).
Per capire quali tra le feature siano maggiormente discriminanti, se ne calcolano ora (separatamente per i
positivi e i negativi) gli istogrammi normalizzati, che vengono assunti come rappresentativi delle rispettive
distribuzioni di probabilità. Inoltre, le feature sono rappresentate a coppie o terne, sotto forma di scatter
plot in cui ai valori dei positivi (noduli) è attribuito un colore, a quelli dei negativi (non noduli, concavità
naturali) un altro.
La feature è discriminante se è possibile ottenere la separazione, mediante thresholding, della popolazione
dei campioni (candidati noduli) sani dai malati. Non sarà solitamente possibile riuscire a suddividere
nettamente i punti nel grafico in due regioni disgiunte, contenenti rispettivamente solo campioni sani (veri
positivi, TP) e solo campioni patologici (veri negativi, TN): stabilita una soglia, esisterà una zona di
sovrapposizione fra le distribuzioni; ci saranno dei candidati, dichiarati patologici dal medico, che cadranno
nell’intervallo delle zone sane (falsi negativi, FN), e dei candidati non patologici, che saranno considerati
come regioni patologiche (falsi positivi, FP). Il potere selettivo di una feature sarà tanto maggiore, tanto più
32
netta sarà la separazione fra le due classi del campione. In Figura 21 sono riportati un esempio di feature
discriminante e non discriminante.
Figura 21: Esempio di feature discriminante e di feature non discriminante.
Può accadere che delle feature, prese a sé, non siano abbastanza discriminanti, ma lo siano se prese
assieme, oppure che due feature mediamente selettive, restituiscano una separazione quasi netta delle
classi se considerate contemporaneamente. Da qui, l’utilità di rappresentare le distribuzioni di due (o tre)
feature insieme, in uno spazio bidimensionale (tridimensionale), ottenendo il cosidetto scatter plot. In
Figura 22 si illustrano due esempi di scatter plot: la prima coppia di feature riesce a separare in modo
sufficiente i campioni suddividendoli nelle classi di appartenenza (i punti rossi rappresentano concavità
dovute ai noduli pleurici, i punti blu sono concavità naturali), la seconda coppia di feature, invece, non è
discriminante, infatti le distribuzioni bidimensionali sono sovrapposte.
Lo scopo del sistema CAD è individuare i noduli juxta-pleurici (TP) escludendo le concavità naturali (FP).
L’elenco dei candidati noduli composto nei paragrafi precedenti deve dunque transitare per uno step di
classificazione che dovrebbe “imparare” a ridurre i FP (idealmente eliminarli del tutto) conservando solo i
TP (fase di apprendimento o allenamento, o training). Ottenuto questo risultato, e supponendo che il
campione di concavità (candidati noduli) adoperato per l’allenamento sia rappresentativo della
popolazione, il sistema sarà applicabile a immagini nuove, e potrà quindi essere utilizzato in clinica.
Figura 22: Scatter plot con coppia di feature discriminante e non discriminante.
33
Le figure precedenti suggeriscono come per far ciò si possa partire dalle distribuzioni e dagli scatter plot e,
nella fase di allenamento del classificatore, individuare una partizione dello spazio multidimensionale delle
feature che separi le classi “ROI sana” / “ROI patologica”, e possa in seguito essere applicata alle immagini
CT di paziente nuovi, non adottati in fase di training, per ottenere la detection.
Questa fase di apprendimento è divisibile in due sub-step, il primo grossolano (uso di un filtro lineare sui
valori delle feature, paragrafo 2.11) e il secondo più fine (rete neurale, paragrafo 2.12).
2.11 Applicazione di filtro a soglia per la riduzione dei FP
È possibile realizzare una prima filtratura della popolazione dei candidati noduli, scegliendo feature che
siano abbastanza discriminanti, e individuando soglie grossolane, che ci permettano di eliminare un certo
numero di candidati certamente non patologici. La raccomandazione è che tale filtro non diventi troppo
selettivo, rischiando così di scartare anche alcuni noduli dall’insieme dei candidati.
Come esempio, consideriamo che molti falsi positivi sono candidati con troppi o troppo pochi voxel (troppo
grandi o troppo piccoli, rispettivamente), che possono essere esclusi semplicemente eseguendo
l’operazione di sogliatura sull’area espressa in numero di voxel25 (ricordiamo che il CAD funziona in 2D)
scartando candidati fuori misura.
Partendo, quindi, dalla distribuzione del valore dell’area per i positivi (calcolata in base alle indicazioni del
Database Gold Standard) si realizza un filtro sull’area. Si escludono, cioè, dall’elenco dei candidati noduli
tutti quelli esterni al range indicato. In tal modo si ottiene una riduzione del numero di falsi positivi.
Filtri analoghi, i cui limiti di soglia sono dedotti dalle distribuzioni, sono applicati alle altre feature.
Applicando il filtro, e lavorando sul DBGS, il numero di falsi positivi passa da oltre 120000
(6000 FP/immagine) a poco più di 20000 (circa 1000 FP/immagine).
2.12 Classificazione e riduzione di FP mediante rete neurale artificiale, ANN
Dopo l’applicazione dei filtri a soglia (volumetrico, etc), si procede alla classificazione supervisionata,
utilizzando una rete neurale artificiale (ANN, Artificial Neural Network) feed-forward (i segnali si propagano
dagli strati d’ingresso verso quello d’uscita) a due livelli, 13 input (tante quante sono le feature, più il valore
del parametro , anch’esso caratterizzante la concavità), un numero variabile di neuroni nascosti, un
output (rete neurale per classificazione binaria), allenata tramite la regola di apprendimento (learning rule)
della discesa del gradiente12 , learning rate variabile e momentum (per i dettagli consultare A.4, A.6).
34
Il numero di neuroni nascosti può variare, considerando che in linea di principio:

aumentando il numero di neuroni migliora la capacità della rete di imparare, ma…

…aumentando eccessivamente il numero di neuroni si rischia che la rete perda le sue capacità di
generalizzare, adattandosi troppo ai dati di training (overtraining o overfitting, paragrafo 2.12.1),

aumentando il numero di neuroni dello strato nascosto, aumenta il tempo di calcolo.
Nella parte sperimentale, vedremo i risultati ottenuti facendo variare il numero di neuroni nascosti.
2.12.1 Allenamento della rete
Com’è noto, una rete neurale artificiale, prima di essere utilizzata (test, e successiva applicazione), deve
essere sottoposta ad una fase di allenamento (training), di cui si parlerà in maniera estesa nell’Appendice A
(Par. A.4). Allo scopo, la matrice
dei candidati noduli (nella quale ogni riga corrisponde ad un candidato,
ogni colonna ad una feature o al target, ossia la classe di appartenenza) dev’essere suddivisa in due
sottomatrici, ciascuna composta da un certo numero di righe della F, da utilizzare rispettivamente per il
training e per il test della rete (vettori o insieme di training, e di test). E’ durante il training che la rete
neurale impara a classificare i vettori di feature nelle classi desiderate, nel nostro caso “nodulo” e “non
nodulo”, e la fase di test è una verifica dell’effettivo apprendimento e dell’avvenuta generalizzazione.
E’ importante tenere conto di alcune accortezze, nella scelta di questi gruppi di vettori di feature, per
evitare di incorrere in errore.
Innanzitutto è sconsigliabile usare vettori di candidati noduli provenienti dalla stessa CT in entrambi gli
insiemi di training e test, poiché questo provocherebbe l’insorgere di pregiudizio, o bias nei risultati del
training, che sarebbero influenzati. In altri termini, la performance della rete, misurata sul set di test,
sarebbe non veritiera: occorre invece assegnare (in maniera casuale) alcune CT all’insieme di training e altre
all’insieme di test, in modo che i due insiemi siano realmente distinti.
Inoltre, usualmente nella matrice
ci sarà un numero di negativi molto maggiore, rispetto a quello dei
positivi (i noduli) perché i noduli sono comunque rari rispetto alle concavità naturali. È altamente probabile,
dunque, che nella fase di allenamento della rete, si utilizzi una piccola quantità di campioni positivi, e una
grande quantità di negativi. Bisogna evitare questo tipo di scelta, richiedendo insiemi di candidati con circa
il medesimo numero di negativi, scelti a caso fra quelli disponibili, e positivi.
Per il training della rete neurale e la misura della sua performance è stato utilizzato il metodo detto k-fold
cross validation, con
.
35
Nel k-fold-cross validation, il campione originale è casualmente suddiviso in k sottocampioni. Uno dei k
sottocampioni è trattenuto come test set, e i rimanenti k-1 sottocampioni sono usati come training set. Il
processo è ripetuto ciclicamente k volte, in ognuna delle quali uno dei k sottocampioni è utilizzato come
test set. I k risultati contribuiscono insieme alla stima dell’efficienza della rete. In tal modo tutte le
osservazioni sono utilizzate sia per l’allenamento, che per la convalida, ed ogni osservazione è utilizzata
come test set solo una volta. Si ottiene allora il valore di output dalla rete, per ognuno dei candidati noduli.
Si fornisce un esempio di cross validation, per k=3. Inizialmente i dati sono mescolati casualmente. Poi
l’insieme dei positivi è partizionato in tre sottocampioni di pari numerosità, P1, P2, P3; i negativi sono
suddivisi in parti uguali N1 U Na1, N2 U Na2, N3 U Na3 in modo che la numerosità dei tre sottocampioni
positivi sia paragonabile a quella di N1, N2, N3. In questo modo Na1, Na2, Na3 conterranno i negativi in
eccesso.
P1 P2 P3
N1
N2
N3
Na1 Na2 Na3
A questo punto, training e test sono organizzati in tre fasi come segue:
1.
2.
3.
Train: P1 U P2 U N1 U N2 Test: P3 U N3 U Na3
Train: P1 U P3 U N1 U N3 Test: P2 U N2 U Na2
Train: P2 U P3 U N2 U N3 Test: P1 U N1 U Na1
Lo scopo di questa procedura è evitare l’introduzione di un bias, nella scelta del set di dati da utilizzare nel
training e del set di dati da disporre per il test, al tempo stesso utilizzando al meglio tutti i dati a
disposizione.
Sono diverse le altre possibili metodologie di scelta dei sottoinsiemi di test e di training.
Tra queste si cita il metodo leave-one-nodule-out cross-validation25. Viene utilizzata nella fase di
allenamento della rete, per sfruttare il maggior numero possibile di veri positivi (TP) per il set di training. Il
nome della strategia è riferito al fatto che un solo vero positivo è lasciato, volta per volta, fuori dal training
set, e utilizzato per la convalida della rete, mentre gli altri sono adoperati per il training. L’allenamento della
rete con questo metodo prevede un numero di iterazioni pari al numero di candidati noduli, e richiede
dunque certamente un maggiore dispendio temporale, rispetto a quello atteso con la tecnica k-fold cross
validation.
36
Come accennato, l’allenamento dovrebbe essere eseguito con l’accortezza di non distribuire mai candidati
noduli che provengano dalla medesima CT in entrambi i set (training e test). Se ciò avviene, infatti, si
introduce un bias dovuto al fatto che i due insiemi contengono oggetti simili perché appartenenti alla
stessa immagine. Approccio simile al leave-one-nodule-out ma, per quanto ora detto, sicuramente
preferibile, è dunque il leave-one-CT-out cross validation, la cui struttura è facilmente intuibile.
La fase di addestramento della rete può essere terminata secondo i seguenti criteri:
-
Raggiungimento di un numero massimo di epoche.
Raggiungimento di un valore “sufficientemente piccolo”, arbitrario, dell’errore.
Utilizzo del metodo early stopping.
La tecnica early stopping26 prevede che il training set venga ulteriormente suddiviso in due sottoinsiemi. Si
sceglie un sottoinsieme più grande (e.g. 80% di quello iniziale) per addestrare la rete, e uno più piccolo
(20% di quello iniziale), detto validation set, per testare l’efficienza della stessa. Nel corso dell’allenamento
della rete, viene calcolato l’errore compiuto dalla rete sugli esempi del validation set.
Di solito sia l’errore sul validation set che l’errore sul training set decrescono durante la prima fase di
addestramento. Una rete progettata per generalizzare bene produce mappature input/output corrette
anche se l’input è lievemente differente dagli esempi usati in fase di training; se però la rete viene
addestrata troppo a lungo sugli stessi esempi, essa rischia di adattarsi troppo al training set. Questo
fenomeno è detto overfitting o overtraining. Una rete “sovra-addestrata” perde la capacità di
generalizzazione.
L’uso dell’insieme di validazione ha lo scopo di contrastare questo fenomeno. Quando comincia
l’overtraining, l’errore sul validation set tipicamente inizia ad aumentare. Quando l’errore sul validation set
continua a salire per un determinato numero di epoche, l’addestramento viene interrotto e vengono
restituiti i pesi corrispondenti al minimo dell’errore di validazione (vedere un esempio nel capitolo 3).
2.11.2 Valutazione dell’efficienza della rete
Una rete neurale è un esempio di classificatore, basato sull’apprendimento automatico27. Un classificatore
ha la funzione di realizzare una mappatura di istanze in classi prestabilite. In questo contesto le classi
possibili sono due: positivo (formazione tumorale), o negativo (zona sana). Si tratta quindi di un
classificatore binario. Le risposte del classificatore si confrontano con l’effettiva classe di appartenenza
della regione di interesse (valutata mediante gold standard, ossia un test al quale si attribuisce errore nullo;
nel nostro caso si usano le refertazioni dei medici sulle quali vi sia possibilmente consensus di più radiologi).
Per chiarezza, si distingue la scelta per cui opta il classificatore, *
+ (dove Y indica l’ipotesi nodulo, N
37
l’ipotesi non nodulo) e l’effettiva classe di appartenenza dell’istanza (test di riferimento, parere del
medico), *
+.
Allora, dato un classificatore e un’istanza, sussistono quattro possibilità:
-
TP (True Positive): regioni malate, correttamente individuate come tali;
-
TN (True Negative): regioni sane, per le quali il classificatore non evidenzia patologie;
-
FP (False Positive): regioni sane, riconosciute erroneamente come malate dal CAD;
-
FN (False Negative): regioni malate, erroneamente identificate dal CAD come prive di patologie.
Per rappresentare la disposizione del set di istanze, si può utilizzare una matrice due per due , denominata
matrice di confusione (Figura 23). Sulla diagonale principale sono situate le decisione prese correttamente
dal classificatore, mentre fuori dalla diagonale si trovano i casi di classificazione errata (casi di confusione).
Classe vera secondo il gold standard
Classe ipotizzata dal
classificatore
P
N
Y
True Positives
False Positives
N
False Negatives
True Negatives
Figura 23: Matrice di confusione.
Una volta valutato il numero di FP, TP, FN, TN, si risale agli altri parametri che esprimono il grado di
efficienza di un sistema CAD. Essi sono essenzialmente:
-
Sensibilità
Rapporto fra il numero di veri positivi (TP), e il numero complessivo di regioni realmente affette da
patologia, secondo quanto previsto dal gold standard (TP + FN). Può essere definita come la
frazione di regioni malate che il sistema riesce a individuare.
(21)
-
Specificità
Rapporto fra il numero di veri negativi (TN), e il numero complessivo di regioni che il test di
riferimento valuta come sane (TN + FP). Sarebbe la frazione di zone non patologiche che il sistema è
in grado di determinare.
(22)
-
Accuratezza
Rapporto fra il numero di candidati correttamente classificati, e il numero totale di candidati.
38
(23)
E’ poi importante valutare anche il:
-
Tempo di elaborazione: è evidente la necessità di minimizzare tale parametro, al fine di ottimizzare
le prestazioni del sistema diagnostico.
Un ottimo test diagnostico dovrà presentare alti valori di specificità e di sensibilità. Si richiede che la
sensibilità del CAD sia alta (vicina ad uno), ossia che esso riconosca come malate il maggior numero
possibile di zone effettivamente affette da patologia, in modo da permettere un intervento tempestivo.
Anche la specificità dovrà essere prossima all’unità, allo scopo che tutte le aree sane siano riconosciute
come tali, e che quindi siano ridotte al minimo le eventualità di falsi allarmi. È evidente come i due
parametri siano in competizione: un aumento della sensibilità comporta una diminuzione della specificità, e
viceversa. Se, infatti, si richiede al sistema la massima sensibilità, con il fine di non tralasciare alcuna
regione malata, sarà alto il rischio di considerare come malata una zona in realtà sana. D’altra parte, un test
diagnostico con una specificità molto alta, dovrà riconoscere come sane tutte le zone effettivamente non
patologiche; esiste il rischio che alcune zone malate sfuggano, e vengano considerate come sane.
Solo i classificatori detti discreti possono restituire un numero discreto di valori di output, e quindi sono
realizzati per produrre una scelta binaria, ossia Y o N (presumibilmente malato o sano), come risposta a
ogni istanza d’ingresso. Gli altri classificatori, come le reti neurali, sono invece detti ranking o scoring,
poiché producono un valore continuo in output. Allo scopo di rendere binario un classificatore a punteggio
(rete neurale artificiale), si utilizza un valore di soglia (threshold), nel modo seguente.
Durante fase di allenamento della rete, per ogni candidato nodulo del test set è disponibile la risposta della
rete neurale artificiale che supponiamo – come usuale – distribuita nell’intervallo *0,1+. Fissata una soglia in
quest’intervallo, si possono allora definire due classi25, assegnando un valore T a ciascun candidato:

T = Y, ai candidati noduli cui compete una risposta della rete superiore alla soglia; essi saranno
classificati come possibili noduli;

T = N, ai candidati noduli cui compete una risposta inferiore alla soglia stabilita; essi saranno
classificati come probabile tessuto sano.
Da confronto di T con il parametro (che indica il parere del medico), assegnato ad ogni candidato nodulo
nella matrice , per ogni valore della soglia, possono essere conteggiati i falsi positivi, falsi negativi, veri
positivi, veri negativi, e calcolate la sensibilità e la specificità.
Per una rappresentazione visiva dei concetti di FP, TP, etc, consideriamo quanto segue.
39
Nella maggior parte dei casi, i risultati di un test diagnostico non restituiscono due popolazioni di valori
separati (veri positivi e veri negativi), ma è presente una zona di sovrapposizione (falsi negativi e falsi
positivi). In Figura 24 si riportano le distribuzioni di due popolazioni totalmente separate (caso ideale),
mentre in Figura 25 quelle di due popolazioni che presentano una zona di sovrapposizione (caso reale).
Figura 24: Distribuzione degli esiti di un test diagnostico ideale (assenza di una sovrapposizione inter-classe).
Figura 25: Distribuzione degli esiti di un test diagnostico non ideale (presenza della zona di sovrapposizione).
Non è dunque possibile, generalmente, individuare un valore di output (cut off), che permetta di
discriminare con accuratezza assoluta le due distribuzioni (regioni sane e regioni malate). La capacità
diagnostica di un classificatore, riferita ad un determinato valore di soglia, rappresenta l’abilità dello stesso
di separare le zone malate da quelle sane, commettendo il minimo errore possibile (ammettendo pochi
falsi).
2.12.3 Curve ROC e FROC
Le prestazioni di un sistema CAD possono essere illustrate nel cosiddetto spazio ROC (Receiver Operating
Characteristic). Un grafico ROC viene realizzato in un diagramma cartesiano, riportando in ordinata la
proporzione di veri positivi (la sensibilità), e in ascissa la proporzione di falsi positivi (1-specificità).
La curva ROC (di cui un esempio è riportato in Figura 26) si realizza a partire dal calcolo di sensibilità e
specificità in funzione di una soglia sul valore prodotto dal classificatore, già visto nel paragrafo precedente;
si consideri la seguente procedura25:
40
-
-
Si fa variare, con step opportuno, il valore di soglia
entro l’intervallo *0,1+, e si calcolano
sensibilità e specificità per ciascun valore di k. In questo modo un valore particolare della soglia
definisce un punto, determinato dalla coppia di coordinate (sensibilità, 1-specificità) nel piano ROC;
La curva ROC è il luogo di tali punti; per un migliore impatto visivo e per il calcolo dell’area sotto la
curva ROC, è disegnata una linea che unisce tali punti.
Figura 26: Esempio di curva ROC.
La curva ROC8 permette di quantificare le prestazioni del classificatore (ossia l’abilità dello stesso di
separare le istanze positive da quelle negative) in funzione del valore soglia.
Il punto di lavoro del classificatore (il valore di soglia) viene scelto in base alle esigenze. Una possibile scelta
è porre il punto di lavoro sull’intersezione tra la curva e la seconda bisettrice (in cui sensibilità e specificità
sono uguali) ma potrebbe essere preferibile una soglia differente, se si richiede di dare più importanza alla
sensibilità, o, al contrario, alla specificità. Molti punti nello spazio ROC sono particolarmente importanti. Il
punto di coordinate (0;0) rappresenta la strategia che non dà mai una classificazione positiva; in quel punto
di lavoro il classificatore non commette errori falsi positivi, ma non guadagna nemmeno veri positivi. La
strategia opposta, di avere incondizionatamente classificazione positiva, è rappresentata dal punto in alto a
destra (1;1). Il punto (0;1) rappresenta prestazioni perfette.
I punti di lavoro che compaiono in basso, sul lato sinistro dello spazio ROC, presentano alta specificità, e
bassa sensibilità; possono essere definiti come conservatori: effettuano classificazioni positive solo con una
prova ben fondata, in modo da fare pochi errori con falsi positivi, ma hanno anche spesso bassi tassi di veri
positivi (caso di un sistema CAD adoperato come secondo lettore). Classificatori sul lato superiore destro
del grafico hanno invece alta sensibilità e bassa specificità, e si indicano come liberali: fanno classificazioni
positive con prova debole, in modo da classificare correttamente quasi tutti i positivi, ma hanno spesso alti
tassi di falsi positivi (caso di un sistema CAD adoperato come primo lettore). La linea diagonale y = x
rappresenta la strategia di classificazione casuale.
Le qualità ROC possono essere espresse tramite un singolo valore scalare, calcolando l’area sottesa dalla
curva ROC, (AUC, Area Under Curve). Poiché il parametro AUC rappresenta una porzione dell’area del
quadrato unitario, il suo valore sarà sempre compreso nell’intervallo *0;1+.
41
Per verificare la capacità discriminante del classificatore, si verifica se il parametro AUC ecceda il valore di
0.5, previsto per un classificatore casuale (corrispondente alla linea diagonale tra i punti (0;0) e (1;1)).
Maggiore è l’area sottesa dalla curva ROC, migliori saranno le performance del classificatore e la sua
capacità discriminante. Schematicamente, secondo lo schema proposto da Swets :
o
o
o
o
o
AUC = 0.5, test non informativo
0.5 < AUC ≤ 0.7, test poco accurato
0.7 < AUC ≤ 0.9, test moderatamente accurato
0.9 < AUC < 1.0, test molto accurato
AUC = 1.0, test perfetto
Un metodo ulteriore di valutazione di un CAD, è la valutazione dello spazio FROC (Free-Response Operating
Characteristic)25. I punti dello spazio FROC si ottengono nello stesso modo in cui si realizza la curva ROC,
con le seguenti differenze:
-
-
Sull’asse delle ascisse è riportato il numero di falsi positivi per CT piuttosto che il tasso di FP;
Si tiene conto, nel calcolo della sensibilità, di tutto il sistema CAD, e non solo della fase di
classificazione, per cui (considerando il caso di nostro interesse) noduli persi durante il nodule
detection entrano nel calcolo, mentre la ROC non li registra, in quanto esclusivamente basata sulla
fase di classificazione (alla quale i noduli già persi negli step precedenti non giungono).
A differenza della curva ROC, la curva FROC è spesso visualizzata senza che i punti siano uniti: in
questo modo si può concentrare l’attenzione su un particolare punto di lavoro, individuato dalle
coordinate (sensibilità; FP/CT), e comparare l’efficienza con quella di altri sistemi CAD.
La curva FROC, di cui un esempio è riportato in Figura 27, fornisce le prestazioni globali del sistema CAD
nella rilevazione dei noduli, valutando così anche l’efficacia della segmentazione del volume polmonare, la
ricerca dei candidati noduli, e il meccanismo di riduzione dei falsi positivi.
Figura 27: Curva FROC.
Una volta stimata l’accuratezza della rete, tutto il set di positivi, più una parte dei negativi è utilizzato come
training set, per ottenere uno strumento operativo. L’utilizzo della rete neurale conduce a una diminuzione
del numero di falsi positivi per scansione CT.
42
3. Codice realizzato e Risultati
In questo capitolo si presenta qualche dettaglio sul codice realizzato per il lavoro di Tesi relativamente alla
parte della rete neurale, e parte dei risultati ottenuti. L’ambiente di programmazione è MatlabR2008a,
provvisto del toolbox per l’elaborazione di immagini (Image Toolbox) e di quello relativo alle reti neurali
(Neural Network Toolbox). Come già più volte accennato nei capitoli precedenti, lo sviluppo del sistema
CAD per la rilevazione di noduli pleurici in immagini TAC toraciche parte dai risultati ottenuti in una
precedente Tesi di laurea (ossia dall’ individuazione dei candidati noduli) e giunge (dopo il calcolo delle
feature) fino alla classificazione dei candidati in probabili noduli e probabili falsi positivi.
Personalmente, ho partecipato come spettatrice attiva alla stesura del codice della rete neurale con cross
validation, cercando di comprenderne scelte e motivazioni, e intervenendo quando vi fossero piccole parti
che le mie competenze di programmazione in ambiente Matlab potessero agevolmente affrontare
(variazione dei parametri, inserimento di loop per il calcolo automatizzato dei risultati, output grafico). Ho,
inoltre, utilizzato il software prodotto, in un gran numero di prove tese all’ottimizzazione della rete,
collaborando con i miei relatori nella scelta delle strategie di calcolo e producendo i risultati e i grafici qui
riportati .
3.1 Il codice
Il codice schematicamente delineato nel seguito parte dalle feature (descritte nel capitolo 2) e opera la
classificazione dei candidati noduli in patologie o concavità naturali grazie ad una rete neurale artificiale
variamente strutturata. Nella parte relativa ai risultati si confrontano le prestazioni del classificatore
ottenute variando alcune caratteristiche della rete e il database utilizzato.
In particolare:
o
Si può scegliere tra closing morfologico e -hull ;
o
Si può decidere di utilizzare come database il set completo di 57 scansioni CT (sulle quali però non
vi è consensus dei medici), o un numero ridotto delle stesse (il DBGS, ossia “Database - Gold
Standard”, contenente 20 CT, vedere il Capitolo 2), che contiene circa 20 noduli a contatto pleurico
sui quali i medici refertanti hanno trovato consenso;
o
Si può realizzare la rete con un numero variabile di neuroni nello strato nascosto, da 0 in su;
o
Si può richiedere che l’allenamento della rete si blocchi secondo la regola early stop, oppure una
volta raggiunto un valore limite di epoche (fissato a priori).
43
o
Ipotizzando che la scelta del training set e del test set (e il conseguente calcolo della performance
del classificatore) avvenga mediante la k-fold cross validation, si può modificare il valore di k.
Il codice è costituito da una parte principale, il main (invocata dalla command window di Matlab) che
richiama le function preProcess e calcANNFROC2. All’interno di calcANNFROC2 è richiamata la function
neuralNetworkCrossVal. Di seguito, si riportano le parti più significative di ogni function.
main
Il parametro earlyStop può essere imposto pari a 1 ( nel caso in cui sia utilizzata la regola early stop), o pari
a 0 (se si imposta un valore massimo delle iterazioni o epoche dell’allenamento della rete).
earlyStop = 1;
Chiamata alla function preProcess, che richiede come input:
 il file delle feature dei candidati noduli, costituito da tante righe quanti sono i candidati, e tante
colonne quante sono le feature, oltre ad informazioni quali la classe di appartenenza della
concavità, o target (nodulo/FP), la posizione della concavità nella CT e il nome della CT stessa. Si
sceglie in precedenza se partire dal DBGS o dal dataset completo di 57 CT, e da quale metodo di
detection di concavità.
 l’alpha set (insieme di valori del parametro di curvatura alpha da adoperare; nel paragrafo sui
risultati si spiegano le ragioni che hanno guidato la scelta di questo particolare alpha-set.
 il nome del file di output preprocessato, che la funzione stessa salva su disco.
preProcess('dataout.txt', [0.083, 0.100, 0.125], 'preprocessed.mat')
Chiamata alla funzione calcANNFROC2, che esegue training e test della rete neurale, e richiede come input:
 il nome del file creato dalla function preProcess.
 il numero di CT.
 il flag crossval che decide se adottare la cross validation.
 il numero di noduli persi dalla fase di nodule hunting.
 un valore che impone il rapporto fra negativi e positivi nel dataset di training.
 il valore di k (per la k fold cross validation).
 un parametro, il cui valore indica se sia utilizzato o meno il metodo early stop.
Il file dataout.txt (e alcuni parametri) variano a seconda delle scelte relative al metodo ( -hull oppure
closing) e al database.
calcANNFROC2('preprocessed.mat', 20, 1, 1, 2, 5, earlyStop)
preProcess
preProcess realizza il filtraggio dei candidati noduli descritto nel paragrafo 2.11, eliminando così una parte
dei falsi positivi. Esso dapprima definisce delle variabili necessarie per il suo funzionamento, quale il vettore
che contiene il nome delle feature:
44
labels = {'span','depth','borderLength','area','depthOverSpan',...
'radius','circularity','grayMean','grayMedian','grayStd',...
'graySkew','grayKurt','grayEntrpy','alpha'}'
e poi inserisce i dati in una matrice di feature in cui ad ogni colonna corrispondono i valori di un certo
parametro, ad ogni riga un candidato nodulo:
[ct, T, x, y, z, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, ...
f12, f13, alpha] = ...
textread(datain, '%s%d%d%d%d%f%f%f%f%f%f%f%f%f%f%f%f%f%f',...
'delimiter', ' ', 'commentstyle', 'matlab')
F = [f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 alpha]
Si individuano le righe che contengono valori di feature inaccettabili perché frutto di calcoli con divisioni
per 0; da queste per differenza si trovano le righe accettabili e si selezionano:
[idxNOK col] = find(isnan(F) | isinf(F))
idxOK = setdiff([1:length(T)], idxNOK)
F = F(idxOK, :);
T = T(idxOK);
x = x(idxOK);
y = y(idxOK);
z = z(idxOK);
ct = ct(idxOK);
Ora si applicherà il filtro sui valori di α richiesti. Seleziono solo la colonna con i valori di , trovo le righe
(ossia i candidati) per le quali alpha (la curvatura) ha uno dei valori richiesti dall’alpha set, e conservo solo
queste tralasciando le altre righe.
alpha = F(:, 14)
idxOK = find(ismember(alpha, alphaSet))
F = F(idxOK, :);
T = T(idxOK);
x = x(idxOK);
y = y(idxOK);
z = z(idxOK);
ct = ct(idxOK);
Si calcolano ora i valori massimi e minimi delle varie feature per i positivi (i noduli): lo scopo è individuare
per ogni feature degli intervalli di valori che costituiscano un filtro grezzo per eliminare parte dei falsi
positivi dall’insieme dei candidati.
Riprendo dunque le colonne delle singole feature.
f1 = F(:, 1);
f2 = F(:, 2);
f3 = F(:, 3);
<OMISSIS>
f12 = F(:,12);
45
f13 = F(:,13);
Seleziono le righe delle feature dei positivi.
p = F(find(T),:)
Trovo il minimo e massimo valore per ogni feature, solo sui positivi. Si individua così per ogni feature, presa
singolarmente, un intervallo di valori che dovrebbe caratterizzare una concavità patologica.
minf01p =
maxf01p =
minf02p =
<OMISSIS>
maxf12p =
minf13p =
maxf13p =
min(p(:, 1))
max(p(:, 1))
min(p(:, 2))
max(p(:,12))
min(p(:,13))
max(p(:,13))
Seleziono le righe (i candidati noduli) che presentano le feature, prese singolarmente, negli intervalli
caratteristici dei positivi; si suppone naturalmente che l’insieme dei positivi in database sia significativo e
rappresenti la popolazione.
idx1 = find(f1 >= minf01p &
idx2 = find(f2 >= minf02p &
idx3 = find(f3 >= minf03p &
<OMISSIS>
idx12 = find(f12 >= minf12p
idx13 = find(f13 >= minf13p
f1 <= maxf01p);
f2 <= maxf02p);
f3 <= maxf03p);
& f12 <= maxf12p) ;
& f13 <= maxf13p) ;
idx = intersect(idx1, idx2);
idx = intersect(idx, idx3);
idx = intersect(idx, idx4);
<OMISSIS>
idx = intersect(idx, idx13);
preProcess salva ora su disco il file dataout, che contiene le informazioni relative ai candidati individuati, in
questa fase di classificazione preliminare, come patologie (valore delle feature, target o classe vera di
appartenenza, coordinate e numero di CT).
F = F(idx, :);
F = F';
T = T(idx);
T = T';
x = x(idx);
y = y(idx);
z = z(idx);
ct = ct(idx);
save (dataout, 'F', 'T', 'labels', 'x', 'y', 'z', 'ct')
Il file in uscita da preProcess costituisce l’input per la fase successiva: l’utilizzo della rete neurale artificiale,
strutturata in modo vario, tramite calcANNFROC2.
46
calcANNFROC2
La function agisce come segue:
-
Accetta in ingresso il nome del file salvato dalla function preProcess, e un insieme di altri parametri
function calcANNFROC2(preprocessedData, numOfCTs, nodulesNotDetected,...
crossVal, numerosityOfFP, k, earlyStop)
-
Questa function è un’interfaccia con la rete neurale, il cui codice è contenuto nella function
neuralNetworkCrossVal. Il nome di questa funzione si riferisce al fatto che in essa è contenuto
anche il sorgente per il calcolo della curva FROC, che in questo lavoro non è stato comunque
utilizzato. Il training e il test set sono scelti mediante il metodo k-fold cross validation (il valore di k
è fissato a 5, ma può essere variato). Ogni ciclo di allenamento e test è realizzato un certo numero
di volte, perché il risultato che si ottiene non è identico ogni volta (vi è una parte di casualità nella
scelta degli insiemi train/test). Ad ogni ciclo viene calcolato il valore dell’area sotto la curva ROC
(denominata AUC). Per avere tempi di calcolo ragionevoli, il numero di cicli (e quindi di misure per
AUC) è fissato a 10. Dopo i cicli fissati, è calcolata la media del campione delle AUC e la loro
deviazione standard, assunta indicativamente come incertezza sulla misura in base alle
considerazioni seguenti:
o
Dovendo associare alla media la sua deviazione standard, ed essendo 10 i cicli impostati,
dovremmo dividere la deviazione standard del campione per 101/2, ossia circa 3.
o
Volendo associare alla misura l’equivalente dell’errore massimo (il numero di cicli è
piuttosto basso) potremmo moltiplicare per 3.
Per cui in definitiva la deviazione standard del campione costituisce una buona stima dell’errore
massimo associabile al valore medio delle AUC.
Il loop necessario per misurare la variabilità del valore di AUC (effettuato tramite un ciclo for sulla
variabile j), è inserito in un altro ciclo, sulla variabile h, che serve per decidere il numero ottimale di
neuroni nascosti. Questo non è, infatti, noto a priori, in quanto dipendente dai dati, e si desidera
trovarlo sperimentalmente. Si fa quindi variare il numero di neuroni dello strato nascosto (da 0 a
100) e si osserva l’andamento dell’area (media) sotto la curva al crescere di tale quantità.
if crossVal
se è richiesta la crossval (ossia se il parametro è 1) si parte con il ciclo
runs = 10;
hiddens = [0:10, 20 : 20 : 100];
possibili valori per i neuroni nascosti
for h = 1 : length(hiddens)
for j = 1:runs
47
Chiamata alla function che definisce, allena e misura la performance della rete neurale,
neuralNetworkCrossVal, che restituisce il valore dell’area sotto la curva ROC.
a(j) = neuralNetworkCrossVal(F, T, labels, numberOfCTs, ...
nodulesNotDetected, numerosityOfFP, k, hiddens(h),...
earlyStop);
end
Calcolo dell’area media e della deviazione standard per ogni ciclo (realizzato per un numero fissato di
neuroni nascosti).
auc(h) = mean(a);
dauc(h) = std(a);
end
Realizza il grafico con numero di neuroni nascosti in ascissa, AUC in ordinate, e la deviazione standard come
errore su ogni punto.
figure, errorbar(hiddens, auc, dauc, 'ob')
else…
NeuralNetworkCrossval
La function agisce come segue:
-
La function NeuralNetworkCrossval viene richiamata dall’interno di calcANNFROC2,e richiede come
parametri principali le feature, il target, il rapporto fra negativi e positivi da inserire nel training set,
il parametro k, il numero di neuroni nascosti, e un parametro che indica con che modalità debba
essere bloccato l’addestramento della rete. Essa imposta la rete neurale artificiale, con le
caratteristiche richieste.
function AUC = neuralNetworkCrossVal(meas, t, labels, numberOfCTs,...
nodulesNotDetected, numerosityOfFP,...
k, hiddenNeurons, earlyStop)
La prossima istruzione realizza la rete neurale artificiale feed-forward con backpropagation. Per la
struttura della rete si scelgono i seguenti parametri: matrice rappresentativa dei vettori di input,
vettore dei target, numero di neuroni nascosti, funzioni di trasferimento degli strati (in questo caso
è scelta l’opzione default, ossia per lo strato nascosto la funzione tansig, tangente iperbolica
sigmoide, mentre per quello d’uscita la funzione purelin, funzione di trasferimento lineare),
48
modalità di allenamento della rete (si procede con backpropagation tramite discesa del gradiente e
con momento e learning rate variabile).
net = newff(meas, t, hiddenNeurons,
-
{}, 'traingdx')
L’allenamento della rete può essere bloccato scegliendo un numero massimo di epoche (fissato per
esempio a 200), oppure mediante il metodo early stop. Se è richiesto il metodo early stop, il valore
di earlyStop è 1,e si verifica la I condizione (il 20% del training set è messo da parte per il validation
set, su cui è valutato l’errore della rete durante il training), altrimenti è verificata la II condizione (i
dati non sono suddivisi, e si fissa un numero massimo di epoche durante le quali i dati sono
presentati alla rete).
if earlyStop
net.divideParam.trainRatio = 0.80;
net.divideParam.valRatio
= 0.20;
net.divideParam.testRatio = 0.00;
else
net.divideFcn = '';
net.trainParam.epochs = 200;
end
3.2 Risultati
A conclusione di questo lavoro, si vogliono esporre alcuni dei risultati ottenuti, relativi a:
I.
Confronto fra due diverse metodiche di rilevazione di candidati noduli: -hull e closing morfologico.
II.
Confronto dell’efficienza della rete neurale artificiale, al variare della struttura, dei metodi utilizzati
per bloccare l’addestramento, e del DBGS impiegato.
I.
Confronto delle tecniche per la correzione delle concavità
Sono confrontate le tecniche -hull e closing morfologico, in due dimensioni, per la correzione della
concavità del bordo del parenchima polmonare, e conseguente localizzazione dei noduli, come descritto nel
Capitolo 2. Ricordiamo qual è la natura delle suddette tecniche:
o
Closing morfologico
Dilatazione, seguita da erosione, effettuate con il medesimo elemento strutturale, un disco con
raggio variabile, utilizzato come parametro di scala
o
⁄ ;
α-hull
Generalizzazione del convex hull, la cui forma dipende dal parametro di curvatura α.
49
Entrambe le metodologie sono implementate con una scala gerarchica, dipendente da un parametro
variabile . Il closing morfologico utilizza funzioni standard del toolbox di Matlab, mentre il codice per la
tecnica α-hull è disponibile in rete.
Si può procedere ad un confronto delle due tecniche adoperate12, per quanto riguarda i tempi di calcolo, la
sensibilità nella fase di rilevazione e in quella di classificazione, e il valore dell’area sotto la curva ROC.
Sensibilità nella detection dei candidati noduli
Un’importante differenza fra le due metodologie si nota nella capacità di rilevazione di noduli (sensibilità
della fase di nodule hunting). Infatti, mentre l’algoritmo α-hull è in grado di individuare (nel database
completo di 57 CT) ben 72 noduli su 78 presenti secondo la diagnosi dei radiologi, il closing morfologico ne
raccoglie solo 66 (Figura 28), per un nodulo correttamente individuato). La sensibilità a livello di rilevazione,
risulta dunque migliore per la tecnica α-hull, per la quale è 92.3%, mentre per il closing risulta circa 84.6%.
Tutti i noduli trascurati dall’ α-hull, sono ignorati anche dal closing morfologico; inoltre l’α-hull riconosce
come positivi (regioni potenzialmente malate) anche alcuni noduli che non sono a diretto contatto con la
pleura, ma connessi ad essa tramite peduncoli (che il closing morfologico non vede).
Figura 28: Un nodulo correttamente individuato dal CAD.
In un test preliminare è stato utilizzato un alpha-set A, costituito da cinque valori di α, grazie al quale si è
stati in grado di rilevare la maggior parte dei noduli:
50
*
+
*
corrispondente all’insieme di raggi
+
dell’elemento strutturante o della sfera
dell’-hull. Aumentare le dimensioni del set non ha portato a miglioramenti nella sensibilità.
Successivamente, notando che valori di raggio troppo piccoli potevano alterare, nelle regioni di interesse
evidenziate, i valori delle feature calcolate nella fase successiva, si è deciso di ridurre la cardinalità di A a tre
elementi:
*
+
corrispondente all’insieme
*
+
.
Questo set di valori permette di ottimizzare sia la sensibilità nella fase di rilevazione dei noduli, sia le
prestazioni nella fase di classificazione (vedere il prossimo paragrafo).
Performance della fase di classificazione
Nella fase di classificazione i due metodi presentano caratteristiche pressoché equivalenti, misurate
dall’area sotto la curva ROC.
In particolare, per l’α-hull si nota che, se A contiene un solo valore, la curva ROC presenta un’area minore, e
la forma della curva è molto meno regolare; d’altra parte, utilizzare A con più di tre elementi, non permette
un miglioramento dell’ accuratezza, poiché il numero dei falsi positivi cresce comunque di molto.
Costo computazionale
I due approcci si dimostrano nettamente differenti per quanto concerne il costo computazionale.
Una scansione CT consta solitamente di circa 300 sezioni, e richiede mediamente 3 minuti per
l’individuazione delle concavità per ogni valore del parametro α, mentre si impiega un tempo di calcolo
molto maggiore – circa 10 minuti – se si adopera il closing morfologico.
Conclusioni sulla scelta del metodo di concavity patching
In conclusione, si tende a preferire il metodo α-hull, che appare come una potente tecnica per
l’individuazione delle concavità. Nel prossimo futuro la tecnica ACM (Active Contour Model), già
implementata nell’ambito del progetto MAGIC-5, sarà testata come metodo alternativo per l’individuazione
delle concavità.
II.
Efficienza della rete neurale artificiale
Stabilita la convenienza dell’uso, nella fase di concavity detection, della tecnica dell’a-hull rispetto al closing
morfologico, si passa in questo paragrafo a valutare la fase di classificazione. Si vogliono confrontare
diverse configurazioni della rete neurale (feed-forward, back propagation) ottenute variando il numero di
51
neuroni dell’unico strato nascosto, e calcolando ogni volta l’area sotto la curva della curva ROC, misura
della performance della rete.
Si decide di valutare la classificazione ottenuta in diverse condizioni:

Database gold standard costituito da 20 CT (in cui i 20 noduli refertati hanno il consensus dei
medici), o ampliato a 57 CT (78 noduli singolarmente refertati e senza richiesta di consensus); in
ogni caso sono considerati solo noduli di tipologia n3.

Blocco della fase di allenamento della rete mediante early stop, o fissando un massimo numero di
epoche (200, allo scopo di gestire i tempi di calcolo).
In tutti i casi illustrati in questo paragrafo è stato scelto come metodo di concavity detection l’-hull.
I risultati di seguito illustrati sono quindi:
a) DBGS (20 CT), con early-stop
b) DB esteso (57 CT), con early-stop
c) DBGS (20 CT), 200 epoche per il training
d) DB esteso (57 CT), 200 epoche per il training
Prima di presentare i singoli casi, in Figura 29 si mostra come viene stabilito il termine della fase di
addestramento in caso di early-stop. Si vede che l’errore commesso sul validation set, dopo un certo
numero di epoche tende a risalire (dopo aver raggiunto un minimo). In questa circostanza si richiede che sia
bloccato l’addestramento, perché la rete sta manifestando la tendenza all’overtraining, perdendo la
capacità di generalizzare.
a)
DBGS costituito da 20 CT – Early stop
La Figura 30 mostra l’andamento del valore dell’area sotto la curva ROC (che stima l’accuratezza della rete),
in funzione del numero di neuroni nascosti.
L’errore assegnato è la deviazione standard su 10 misure, ciascuna realizzata tramite un run della rete
neurale (vedere la descrizione del codice per i dettagli e le motivazioni). La scelta di graficare i punti
sperimentali in maniera più densa per meno di 10 neuroni nascosti, discende dal fatto che la tendenza alla
monotonicità decrescente della curva è risultata subito evidente, ed era importante esplorare in dettaglio
la zona tra 0 e 10 neuroni nascosti per evidenziare un eventuale punto di massimo.
Si nota che il valore dell’area sotto la curva ROC, pur non essendo eccezionale, è ragionevole (nell’intervallo
0,65-0,70) per un piccolo numero di neuroni dello strato nascosto (compreso fra 0 e 10), e compete,
secondo lo schema di Swets (vedere Par. 2.12.3), a classificatori poco o moderatamente accurati.
52
Figura 29: Finestra a sinistra: andamento dell’errore commesso sul validation set (linea superiore, in verde), adoperando la
strategia early stop. La linea inferiore mostra l’errore sul training set. Lo stop avviene quando si assiste al superamento di un
punto di minimo per il validation test, con successiva risalita: in quel momento, sebbene l’errore sul training set stia ancora
diminuendo, la rete neurale sta rischiando l’overfitting e la conseguente perdita di generalità.
0.8
AUC
0.7
0.6
0.5
0.4
0
10
20
30
40
50
60
70
80
90
100
Numero di neuroni nascosti
Figura 30: Area sotto la curva ROC, in funzione del numero di neuroni nascosti (20 CT, early-stop).
Al crescere del numero di neuroni nascosti il parametro AUC decresce, e di conseguenza anche
l’accuratezza della rete realizzata. Ciò era prevedibile, perché all’aumentare della popolazione dello strato
nascosto la rete tende ad andare in overtraining, ossia si adegua eccessivamente ai dati del training set.
Si constata che, scelto il metodo early stop, per arrestare l’allenamento della rete, vengono usate solo
alcune decine di epoche, un numero abbastanza piccolo se confrontato con il numero di iterazioni fissate
53
nell’altra opzione (200). In questo caso si dovrà attendere, per ottenere il risultato finale, un tempo non
troppo lungo (circa 30 minuti sul computer a disposizione, un portatile di fascia media).
Concludiamo, dal grafico testé visto, che il problema con cui abbiamo a che fare è lineare o quasi lineare, e
una rete senza neuroni nascosti o con un singolo neurone nascosto è la scelta migliore.
b)
DB costituito da 57 CT – Early stop
La Figura 31 mostra che il valore di AUC è maggiore per un numero di neuroni nascosti basso (da 0 a 10), e
descresce all’ aumentare di questi.
Rispetto al caso precedente (Figura 30), la rete adoperata, che utilizza un database più ampio, restituisce un
grafico migliore (AUC maggiore, e pendenza minore in valore assoluto). Infatti, se si confrontano gli
andamenti nella parte iniziale dei grafici, si nota che il caso b) descrive un classificatore sicuramente più
accurato del precedente (AUC 0,75 – 0,80). In questa circostanza, il tempo di attesa è circa lo stesso del
caso precedente (il numero di epoche sarà sempre prossimo a qualche decina).
0.8
AUC
0.7
0.6
0.5
0.4
0
10
20
30
40
50
60
70
80
90
100
Numero di neuroni nascosti
Figura 31: Area sotto la curva ROC, in funzione del numero di neuroni nascosti (57 CT, early-stop).
Nella Figura 32, si mostra l’andamento della curva ROC, nella situazione in cui la rete presenta un unico
neurone nascosto. Tale situazione, secondo quanto mostrato nel grafico precedente, rappresenta la rete
neurale che compie l’errore minimo.
54
ROC curve
1
0.9
0.8
sensitivity
0.7
0.6
0.5
0.4
0.3
0.2
0
0.1
0.2
0.3
0.4
0.5
0.6
1-specificity
0.7
0.8
0.9
1
Figura 32: Curva ROC relativa alla figura precedente, un solo neurone nascosto.
c)
DBGS costituito da 20 CT – Numero fisso di epoche (200)
Provando ad allenare la rete con un numero fisso di epoche (200, ben più delle poche decine che di fatto
vengono usate nei casi precedenti) si ottengono andamenti meno buoni, come mostrato nella Figura 33.
0.8
AUC
0.7
0.6
0.5
0.4
0
10
20
30
40
50
60
70
80
90
100
Numero di neuroni nascosti
Figura 33: Area sotto la curva ROC, in funzione del numero di neuroni nascosti (20 CT, numero fisso di epoche).
In questo caso, si ottiene un aumento sensibile dell’errore già con l’aggiunta del primo neurone nascosto,
che non serve dunque a migliorare l’efficienza della rete. Ulteriore svantaggio è rappresentato dai lunghi
tempi di attesa (più di un’ora), a causa dell’alto numero di epoche per il compimento dell’addestramento
fissato. Il risultato era prevedibile, in considerazione del fatto che l’early stop evidenziava l’overfitting già
55
dopo poche decine di epoche, e quindi aumentare il numero di cicli in maniera artificiosa non poteva che
essere deleterio.
d)
DB costituito da 57 CT – Numero fisso di epoche (200)
Se si prova ad adoperare il database completo, stabilendo un numero fisso di epoche (200) otteniamo dei
buoni risultati, riportati in Figura 34, diversamente da quanto accade nella situazione precedente, in cui si
utilizzava il DBGS con 20 CT (Figura 33).
In questo caso, infatti, l’aggiunta dei neuroni nascosti non porta ad un aumento dell’errore. Si ottiene un
classificatore accurato (AUC 0,70-0,80) per un numero di neuroni nascosti ristretto (da 0 a 10), mentre il
valore di AUC decresce all’aumentare di questi.
L’effetto dell’overtraining (riscontrato nel caso precedente con un numero fisso di epoche) è in questo caso
meno pronunciato. Probabilmente la ragione risiede nel fatto che la maggiore numerosità del database
permette al training test di essere più significativo.
0.8
AUC
0.7
0.6
0.5
0.4
0
10
20
30
40
50
60
70
80
90
100
Numero di neuroni nascosti
Figura 34: Area sotto la curva ROC, in funzione del numero di neuroni nascosti (57 CT, numero fisso di epoche).
Considerazioni finali
Dai risultati riportati risulta evidente come il metodo dell’early stop sia vantaggioso, perché diminuisce il
danno causato dall’overfitting rispetto a quando ci si basa esclusivamente sul dataset di training
imponendo un numero di epoche fisse. Probabilmente, analogo risultato si sarebbe ottenuto con una soglia
imposta sul valore dell’errore, perché anche questo metodo avrebbe tenuto conto solo del risultato
dell’applicazione della rete al training set.
56
L’overfitting è comunque inevitabile non appena si aumenta il numero di neuroni nascosti, tanto che una
rete senza strato nascosto o, al più, con un solo neurone nascosto, sembra la migliore soluzione.
Infine, la scelta tra closing morfologico e -hull come metodi di detection delle concavità candidate sembra
obbligata: il secondo è maggiormente sensibile e il calcolo è di gran lunga più rapido.
Utilizzando il database completo i valori dell’area sotto la curva sono più elevati. La ragione è sicuramente
da cercare nel fatto che il database è di gran lunga più ampio, e quindi i noduli sono più numerosi: la rete
viene quindi allenata meglio. Purtroppo, il fatto che i noduli presenti nel database completo non siano tutti
ottenuti tramite consensus dei medici fa sì che le migliori performance ottenute siano probabilmente
illusorie, e che nell’applicazione pratica il CAD allenato sul DBGS possa risultare comunque più accurato.
57
Conclusioni
Nel corso del mio lavoro di Tesi sono state realizzate le fasi di calcolo delle feature e di classificazione
(mediante una rete neurale artificiale variamente strutturata) di un sistema CAD per l’individuazione di
noduli juxtapleurici in immagini TAC polmonari. La Tesi si sviluppa a partire dai risultati ottenuti in un lavoro
precedente, che giungeva alla produzione di una lista di candidati noduli, ottenuti tramite metodi di
chiusura delle concavità.
È stato stilato un codice che realizza e valuta la fase di classificazione. L’ambiente di programmazione è
MatlabR2008a, provvisto del toolbox per l’elaborazione di immagini (Image Toolbox) e di quello relativo
alle reti neurali (Neural Network Toolbox).
Il codice consiste in una fase di preprocessamento dei vettori di feature dei candidati noduli che permette,
mediante thresholding sui valori delle feature, di scartare una buona percentuale di falsi positivi. Le
concavità restanti alimentano la rete neurale. La struttura e il funzionamento della rete possono essere
modificate, variando i parametri nel codice. In particolare, si possono fare le seguenti variazioni, e si
ottengono e confrontano i risultati ottenuti nelle diverse situazioni.
o
Metodo di chiusura delle concavità : closing morfologico o α-hull.
o
Database utilizzato: set di 57 CT, con 78 noduli di tipo n3 (sulle quali non vi è il consensus dei
medici), oppure DBGS di 20 CT, con 20 noduli di tipo n3 con consensus.
o
Numero di neuroni dello strato nascosto: da 0 a 100.
o
Condizione di stop per l’allenamento della rete: early stop o numero fisso di epoche (200).
o
Valore di k, nell’ipotesi che per la scelta di training set e test set si utilizzi il metodo k-fold cross
validation.
La tesi confronta dapprima le tecniche di chiusura delle concavità.
Entrambe le metodologie sono implementate in un framework gerarchico, dipendente da un parametro
variabile . Si nota innanzitutto che un set ottimale dei valori α (curvatura dell’elemento strutturante per il
closing e della sfera dell’α-hull) è
*
+
, corrispondente a un set di raggi R = {12,
10, 8) mm. Questi valori permettono una ottimale sensibilità nella fase di rilevazione e accuratezza nella
seguente classificazione.
Si ottiene una sensibilità differente per le due tecniche di rilevazione delle concavità. Mentre la tecnica αhull è in grado di rilevare 72 noduli su 78 presenti (sensibilità del 92.3%), il closing ne individua soltanto 66
(sensibilità di 84.6%).
58
Nella fase di classificazione, volta a ridurre l’enorme numero di falsi positivi, i due metodi presentano
peculiarità simili, dando valori di AUC (ROC Area Under Curve) molto vicini.
Dal punto di vista del costo computazionale, le due tecniche si mostrano nettamente differenti: una
scansione TC, che consta di circa 300 immagini, necessita di circa 3 minuti per l’individuazione delle
concavità per ogni valore di α mediante α-hull, e un tempo molto maggiore con closing morfologico.
In conclusione, si preferisce la tecnica α-hull, anche se si attendono nuovi sviluppi nell’applicazione di
tecniche alternative, come l’ACM.
Una volta stabilito quale sia il metodo da prediligere nell’individuazione dei candidati noduli, si procede al
confronto dell’accuratezza della classificazione, ottenuta variando alcune caratteristiche della rete neurale.
Modificando i parametri nel codice, si ottengono diversi grafici, che testimoniano l’andamento dei valori
dell’area sotto la curva ROC (parametro che serve a stimare l’accuratezza di un classificatore), e si
confrontano i risultati.
Si ottengono valori di AUC maggiori per un numero di neuroni limitato (tra 0 e 10), mentre tale valore
diminuisce per un numero di neuroni dello strato nascosto più grande. La situazione più vantaggiosa appare
quella con nessuno, o al più un unico neurone nello strato nascosto; al crescere del numero di neuroni
nascosti si evidenzia infatti il fenomeno di overfitting (la rete non è capace di generalizzare).
Variando le condizioni di arresto dell’allenamento della rete si riconosce che l’utilizzo del metodo early-stop
risulta più vantaggioso, in quanto il training si blocca nel momento in cui l’errore sul validation set ha
raggiunto il minimo (qualche decina di epoche) e comincia a risalire, limitando così l’insorgenza di
overtraining. Nel caso in cui sia stato fissato il numero di epoche (200) è inevitabile che si presenti tale
fenomeno. Inoltre l’allenamento tramite early stop, richiede tempi d’attesa minori.
Lavorando con un insieme di dati più ampio, ossia con il set di 57 CT, piuttosto che il DBGS di 20 CT, si
ottengono risultati migliori. Si notano valori dell’area sotto la curva ROC maggiori, ed inoltre, nel caso di
condizione di arresto del training della rete con un numero fisso (ed elevato) di epoche il problema
dell’overfitting è meno sentito. Ciò accade perché un database più ampio, con un numero quindi maggiore
di noduli, permette di allenare meglio la rete. Questo non porta comunque a preferire il set ampliato di 57
CT perché i risultati ottenuti potrebbero rivelarsi illusori, in quanto ottenuti su oggetti la cui natura
nodulare non è certa. Per verificarlo occorrono ulteriori prove su un Database con consensus più ampio.
In conclusione, per ottenere maggiore sensibilità nella individuazione delle concavità, accuratezza nella fase
di classificazione, ed anche minor tempo di elaborazione, si sceglie la tecnica α-hull per la rilevazione dei
candidati noduli, e si allena la rete con il metodo k-fold cross validation (k=5); si impone di bloccare il
training della rete con la regola early stop.
59
Si auspica che, per i prossimi sviluppi, si possa avere a disposizione un DBGS più ampio, per verificare se
realmente un numero maggiore di esempi possa migliorare le prestazioni del classificatore, una volta
ultimato l’allenamento. Un’ ulteriore prospettiva potrebbe consistere nella realizzazione di un codice
analogo in linguaggio più efficiente (C++), che porti ad una diminuzione dei tempi di esecuzione e, di
conseguenza, una maggiore applicabilità del software da parte dell’utente finale.
60
A. APPENDICE: Le reti neurali
Nella seconda metà del ‘900 sono state sviluppate procedure automatiche per la ricerca di elementi di
correlazione tra gruppi di osservazioni, ispirate alla logica e alla biologia del sistema nervoso, a cui è stato
dato il nome di reti neurali artificiali. Una rete neurale è, dunque, un sistema di classificazione, basato sulla
simulazione del sistema nervoso naturale.
Le reti neurali artificiali sono nate per riprodurre attività tipiche del cervello umano come la percezione
d’immagini, il riconoscimento di forme, la comprensione del linguaggio, il coordinamento senso-motorio,
ecc. Esse sono composte di più neuroni artificiali, variamente connessi, ciascuno ispirato dal funzionamento
del neurone biologico.
A.1 Struttura del neurone biologico
Le reti neurali artificiali sono dei semplici modelli del sistema nervoso centrale28 e, come questo, sono
composte da unità elementari, i neuroni artificiali, connessi tra loro mediante legami funzionali. Per
comprenderne i meccanismi di funzionamento, è opportuno partire dai sistemi nervosi biologici.
La sostanza cerebrale è costituita da due tipi principali di cellule: i neuroni e le cellule della glia. I primi sono
considerati i vettori d’informazione all'interno del sistema nervoso, mentre le seconde svolgono una
funzione di sostegno e di supporto metabolico ai neuroni.
Il neurone è la cellula che rappresenta quindi l'unità fondamentale del sistema nervoso.
Figura 35: Struttura di un neurone biologico.
Un neurone è formato (Figura 35) da un corpo cellulare, detto soma, in cui si trova il nucleo, da alcune
migliaia di prolungamenti ramificati, i dendriti, che ricevono segnali elettrici da altri neuroni, e da un
prolungamento di fibra nervosa detto assone (che può essere lungo da 1 cm a qualche metro).
All’estremità, l’assone si ramifica formando terminali, attraverso i quali i segnali elettrici sono trasmessi ad
altre cellule (ad esempio ai dendriti di altri neuroni).
61
Il corpo cellulare effettua l’integrazione dei segnali elettrici d’ingresso provenienti dai vari dendriti. Se
l'effetto cumulativo di questi input non supera un certo livello di soglia, il neurone rimane in stato di riposo,
se al contrario supera la soglia, il neurone invia un potenziale d'azione e lo trasmette lungo l'assone. La
comunicazione tra i neuroni coinvolge processi elettrochimici.
Il cervello umano è un calcolatore complesso, non lineare e parallelo. Pur essendo costituito da elementi di
elaborazione molto semplici (i neuroni), è in grado di eseguire computazioni complesse, come il
riconoscimento, la percezione e il controllo del movimento, molte volte più velocemente del più veloce
degli attuali calcolatori. Il cervello è in grado di modificare le connessioni tra i neuroni in base all’esperienza
acquisita, cioè è in grado di imparare. Nel cervello non esiste un controllo centralizzato, nel senso che le
varie zone del cervello funzionano insieme, influenzandosi reciprocamente e contribuendo alla
realizzazione di uno specifico compito.
Infine, il cervello è fault tolerant, cioè se un neurone o una delle sue connessioni sono danneggiati, il
cervello continua a funzionare, anche se con prestazioni leggermente degradate. In particolare, le
prestazioni del processo cerebrale degradano gradualmente man mano che si distruggono sempre più
neuroni (graceful degradation)29.
Per imitare artificialmente il principio di funzionamento del cervello umano occorre realizzare una rete di
elementi molto semplici che sia una struttura di calcolo distribuita, massicciamente parallela, capace di
apprendere e quindi di generalizzare (cioè produrre uscite in corrispondenza di ingressi non incontrati
durante l’ addestramento). A differenza del procedimento informatico classico in cui il programmatore
dispone di un'accurata conoscenza del fenomeno oggetto di studio e costruisce un algoritmo per ogni
singolo problema, nelle reti neurali non vi è la progettazione di un classico algoritmo ma l'adattamento del
modello generale alle condizioni dell'ambiente in cui si opera.
Nelle reti neurali, a somiglianza del cervello umano, ogni singola unità svolge contemporaneamente una
funzione di elaborazione e memorizzazione dati; i singoli neuroni sono quindi detentori di informazioni e al
contempo operano la loro elaborazione.
A.2 Struttura del neurone artificiale
Prima di parlare in modo generale del meccanismo di una rete neurale è necessario concentrarsi su un
singolo neurone, che ne costituisce l'unità di base. Benché la complessa struttura dei neuroni biologici sia
estremamente semplificata nei neuroni artificiali, ci sono alcune caratteristiche comuni fondamentali fra
essi. In Figura 36 si riporta la struttura tipica di un neurone artificiale.
62
Figura 36: Struttura di un neurone artificiale.
Un generico neurone artificiale29 consiste di:
o
canali di ingresso x1, …, xn, a ciascuno dei quali è associato un peso wi, che mira a riprodurre le
sinapsi biologiche.
o
Il potenziale di attivazione a, che è la somma pesata degli ingressi, spesso indicata in letteratura
con
il
termine
net,
la
cui
espressione
è
riportata
∑
o
La funzione di attivazione
nell’equazione
seguente:
(24)
(anche detta funzione di trasferimento), da applicare alla somma pesata
degli ingressi;
o
Un valore di soglia , che ha l’effetto di abbassare il valore in ingresso della funzione di attivazione.
È interpretata come il peso associato a un ulteriore canale di ingresso di valore costante e pari a -1.
In questo caso il modello del neurone è quello raffigurato in Figura 37. In alcuni casi, invece della
soglia, si utilizza il bias, che è considerato come un ingresso di valore costante, in questo caso pari a
1, e peso sinaptico
.
Figura 37: Struttura di un neurone artificiale con soglia.
63
o
Il segnale di output y
( )
(
)
(∑
)
(25)
in cui f è la funzione di attivazione.
Sono usati tre principali tipi di funzioni di attivazione:
o
Funzione a soglia
( )
( )
{
(26)
Figura 38: Funzione di attivazione a soglia.
o
Funzione lineare
( )
(27)
Figura 39: Funzione di attivazione lineare.
o
Funzione sigmoide: un esempio è la funzione logistica:
( )
(28)
La sigmoide ha in comune con la funzione lineare la continuità del codominio e la derivabilità
(caratteristiche non possedute dalla funzione a soglia, non derivabile e a codominio discreto). Inoltre, al
contrario della funzione lineare, il codominio della sigmoide è limitato (intervallo [0,1]).
64
Figura 40: Funzione di attivazione logistica.
A.3 Tassonomia e architettura delle reti neurali
I neuroni artificiali possono essere collegati tra loro, costruendo una rete (anche detta ANN, Artificial
Neural Network) secondo due architetture fondamentali:

Reti completamente connesse: ogni neurone è connesso (in modo bidirezionale) con tutti gli altri
(Figura 41 a).

Reti stratificate: sono organizzate in strati, e ogni neurone è connesso con tutti quelli dello strato
successivo, ma non esistono connessioni tra i neuroni all’interno dello stesso strato, né tra neuroni
di strati non adiacenti (Figure 41 b e 41 c).
(a)
(b)
(c)
Figura 41: (a) ANN completamente connessa; (b) ANN stratificata; (c) ANN stratificata, con uno strato nascosto.
Il tipo più comune di ANN stratificata è costituita da tre strati (Figura 41 c):

uno strato d’ingresso (che non contiene veri neuroni, ma solo nodi per la distribuzione dei dati agli
strati seguenti), al quale vengono forniti i dati;

uno o più strati intermedi (composti da neuroni detti “nascosti”), che rielaborano i dati forniti dai
nodi di ingresso. Il numero di strati e il numero di neuroni per strato dipendono dallo specifico
problema che si intende risolvere;

uno strato di uscita (formato dai neuroni di output), che fornisce la risposta.
65
Le reti stratificate hanno due modalità principali di funzionamento: feed-forward (alimentata in avanti) e
ricorrente.
•
feed-forward: il segnale passa dalle unità di ingresso attraverso i vari strati fino ad ottenere il
risultato sulle unità di uscita; non vi sono collegamenti tra i neuroni in verso contrario;
•
ricorrente: collegamenti tra le unità formano un ciclo diretto, cioè esistono connessioni tra i
neuroni di uscita e i nodi di ingresso. Questa configurazione permette alla rete di esibire un
comportamento dinamico temporale.
Le reti che utilizzate in questo lavoro sono reti stratificate feed-forward, con al più uno strato nascosto.
A.4 Apprendimento supervisionato
Una fase essenziale nella costruzione di una rete neurale, preparatoria al suo utilizzo, è l’addestramento
della rete28. Il compito dell’addestramento è modificare le caratteristiche della rete, consentendo a essa di
ottenere le migliori prestazioni. Questa fase è fondamentale per le reti neurali che, analogamente ai sistemi
biologici, devono apprendere le caratteristiche essenziali di un problema prima di formulare una
previsione. Uno dei metodi più usati per permettere a una rete di imparare è l’apprendimento
supervisionato, che prevede di presentare in ingresso alla rete un insieme di esempi (training set); per ogni
esempio di addestramento è mostrata la corrispondente uscita desiderata. Si tratta di un tipo di
apprendimento che necessita un intervento esterno (quello di fornire esempi di input e output). Esistono
comunque anche tipi di apprendimento non supervisionato, che apprendono senza la necessità di casi di
esempi completi.
Ciò che determina una buona performance della rete neurale è la scelta adeguata delle caratteristiche della
rete. Ovviamente tali parametri sono diversi, a seconda del problema da trattare.
Nella realizzazione di una rete neurale è dunque necessario fare delle scelte opportune riguardo:
-
L’architettura della rete (numero di strati, numero di neuroni per strato);
-
La funzione di attivazione dei neuroni;
-
I valori dei pesi sinaptici.
L’architettura della rete e la funzione di attivazione sono fissate prima della fase di addestramento, al
contrario dei pesi sinaptici. Il numero di neuroni dello strato intermedio non è fisso, ma può essere scelto a
discrezione, sapendo che il tempo impiegato per l'apprendimento (da un punto di vista computazionale),
sarà tanto maggiore, quanto più numerosi sono i neuroni nello strato intermedio.
Solitamente, i pesi sono inizializzati con valori casuali, e il compito dell’addestramento della rete è proprio
modificare i pesi sinaptici, adeguandone il valore alle risposte desiderate in uscita.
A ogni esempio fornito dal training set, la risposta effettiva fornita dalla rete viene confrontata con la
risposta desiderata, si valuta la differenza (errore) fra le due e, in base a tale differenza, si aggiustano i pesi.
66
Questo processo viene ripetuto sull’intero training set (che viene presentato anche più volte, con esempi in
ordine casuale) finché le uscite della rete producono un errore al di sotto di una soglia prestabilita.
La bontà delle prestazioni della rete viene valutata mediante un secondo set di dati (test set), differente da
quello utilizzato per la fase di apprendimento.
La determinazione dell'errore commesso sul test set ci consente di valutare la capacità che avrà la rete di
prevedere correttamente i valori di output.
Si noti che la capacità di apprendere della rete neurale dipende fortemente anche dal training set ad essa
proposto29. Gli esempi devono, infatti, essere molto rappresentativi del problema da risolvere.
La durata della fase di addestramento può influenzare le capacità della rete neurale28. Una lunga durata
della fase d’istruzione consente alla rete di stimare bene tutte le uscite presenti nel set di dati, ma può
indurre una bassa capacità di generalizzazione su nuovi dati (overtraining).
L’aggiustamento dei pesi nella fase di addestramento viene effettuato solitamente utilizzando la delta-rule
o regola di Widrow-Hoff 29.
Si consideri un singolo neurone con ingresso
(
). Siano
l’uscita desiderata, e
l’uscita
effettiva del neurone. Il neurone presentato è ritratto in Figura 42.
Figura 42: Neurone artificiale a n ingressi.
Per ogni singolo esempio del training set, si calcola l’errore:
(29)
Si introduce un parametro η chiamato learning rate, un numero reale compreso tra 0 e 1. Il learning rate
determina la velocità di apprendimento del neurone.
La delta-rule stabilisce che la variazione del peso sinaptico i-esimo sia:
(30)
Allora il nuovo peso sinaptico i-esimo sarà:
(31)
67
È così effettuata la modifica esclusiva dei pesi delle connessioni che hanno contribuito all’errore, ossia per
le quali
che
; la variazione dei pesi sarà proporzionale all’errore . Per quanto riguarda le connessioni tali
, non si sa se esse abbiano contribuito all’errore, e dunque
(i pesi sinaptici rimangono
invariati).
Si consideri, ora, il caso generale di una rete neurale con
ingressi e
uscite, rappresentato in Figura 43.
Figura 43: Rete neurale a n ingressi e p uscite.
Sia
l’uscita del j-esimo neurone desiderata, e
Considerato un training set di
l’uscita effettiva dallo stesso.
esempi, l’errore commesso dalla rete sull’esempio
è definito
dall’equazione (32), dove il fattore ½ è inserito per semplificare i calcoli successivi:
∑
(
)2
(32)
L’errore commesso dalla rete su tutto il training set è:
∑
(33)
29
L’errore , nel caso di neuroni lineari, è un paraboloide nello spazio dei pesi . In generale, per altri tipi di
neuroni, sarà un’ipersuperficie nello spazio dei pesi. Prima di iniziare l’addestramento, i pesi sono
inizializzati a valori casuali; quindi il punto che rappresenta lo stato iniziale della rete può trovarsi ovunque
sulla superficie dell’errore (in generale non coinciderà con il punto di minimo di tale superficie). Durante
l’addestramento i pesi dovranno essere modificati, in modo da far muovere lo stato della rete lungo una
direzione (sulla superficie dell’errore) che la delta rule individuerà essere quella di massima pendenza; in tal
modo si minimizzerà l’errore globale, come illustrato in Figura 44 (A e B rappresentano minimi locali sulla
superficie dell’errore, C rappresenta la configurazione iniziale e casuale dei pesi, in corrispondenza del
quale si ha un errore non minimo).
68
Figura 44: Errore nello spazio dei pesi.
Vediamo come si generalizzano le formule (29) e (30), che descrivono l’aggiornamento dei valori dei pesi
secondo la delta-rule, per il j-esimo neurone di uscita
(34)
(35)
Si vuole dimostrare che, aggiornando i pesi mediante la delta-rule, l’apprendimento converge verso una
configurazione dei pesi, che minimizza l’errore quadratico globale.
Si considera, per semplicità, un neurone lineare con uscita definita da
∑
La derivata dell’errore rispetto a un peso
(36)
è definita da:
(37)
(
)
(38)
(39)
E dunque:
=
(40)
Introducendo, a tal punto, il learning rate , si ottiene
(41)
Tale equazione conduce ad una variazione dei pesi sinaptici, nella direzione di diminuzione dell’errore.
Si osservi che:
o
Se
> 0 , allora
<0.
69
Dunque se l’errore aumenta all’aumentare dei pesi sinaptici, i pesi sinaptici vengono diminuiti, allo
scopo di contrastare la crescita dell’errore.
o
Se
< 0 , allora
.
Significa che se l’errore tende a diminuire all’aumento dei pesi sinaptici, allora i pesi sinaptici
verranno incrementati, allo scopo di favorire la diminuzione dell’errore.
Il learning rate
rappresenta quindi la rapidità di discesa dell’errore sulla superficie. Come già visto, è
importante scegliere il valore giusto per : un valore troppo piccolo può comportare un apprendimento
troppo lento, mentre un valore troppo elevato può provocare oscillazioni dell’errore intorno al minimo. La
soluzione tipicamente adottata è quella di stabilire un valore alto di
(prossimo a 1) all’inizio
dell’addestramento, e diminuire tale valore, mano a mano che si procede con l’apprendimento.
Un aspetto delicato nella progettazione di una rete neurale è, inoltre, la scelta del numero di ingressi28. Un
numero ristretto di parametri di input può risultare insufficiente perché la rete possa apprendere
correttamente. Tuttavia, al crescere eccessivo del numero di ingressi gli esempi disponibili diventano
sempre più sparsi, e quindi anche in questo caso insufficienti per un efficace addestramento.
A.5 Classificazione
Classificare significa determinare la categoria alla quale ciascun elemento di un insieme di oggetti
appartiene. Associando a ciascun oggetto una n-pla di misure (le feature), l’oggetto diventa un punto in uno
spazio n-dimensionale, e quindi classificare gli oggetti equivale a classificare punti di uno spazio ndimensionale29. Nel caso di un classificatore binario, il problema può essere formulato così: dato un insieme
di punti in uno spazio a
dimensioni
Rn,
ciascuno punto appartenente ad una di due classi C1 e C2,
n
bisogna bi-partizionare lo spazio tramite un’ipersuperficie in R che separi i punti della classe C1 da quelli
della classe C2.
Conviene distinguere:
Problemi di classificazione lineari: Esiste una linea retta (in due dimensioni) o un iperpiano (in n
dimensioni), che separi correttamente tutti i punti in base alla loro classe di appartenenza.
Problemi di classificazione non lineari: Non esiste alcuna linea retta (in due dimensioni) o iperpiano (in n
dimensioni), che possa separare i punti in base alla loro classe di appartenenza.
Esempio di problema di classificazione lineare
Un problema di tipo lineare può essere risolto utilizzando un’opportuna rete neurale, in cui gli n valori
d’input siano i punti da classificare, e i possibili valori in uscita corrispondano alle varie classi di
70
appartenenza. La sua funzione sarà catalogare gli ingressi in due classi differenti, separate da un iperpiano
nel caso generale (n ingressi), da un piano (3 ingressi), o da una retta (2 ingressi).
Il primo esempio di classificatore (per problemi linearmente separabili) è il perceptron, introdotto nel 1958,
da Frank Rosenblatt. Il perceptron è costituito da uno strato d’ingresso (n ingressi) e uno strato di uscita (un
neurone di uscita), e solitamente si utilizza una funzione di attivazione a soglia.
Si consideri un problema lineare, da risolvere con il perceptron più semplice: a 2 ingressi, un’uscita e
funzione di attivazione a soglia, illustrato in Figura 45.
Figura 45: Perceptron a 2 ingressi e un'uscita.
2
In ingresso sono forniti dei punti nello spazio R (x1,x2). Bisogna catalogare i dati in ingresso nelle due classi
C1,C2,rappresentate dai due semipiani individuati dalla retta di equazione (42). In Figura 46 è presentato un
esempio di campioni nel piano
, appartenenti a due classi, separabili dalla retta:
(42)
Si potrebbe associare alla classe C1 l’insieme dei punti per i quali il perceptron elabora un’uscita
alla classe C2 i punti, per i quali la rete restituisca il valore
,e
.
Come visto nel caso generico, architettura della rete e funzione di attivazione sono stati già assegnati; la
fase successiva consiste nell’addestramento della rete. Si inizializzano i pesi sinaptici
presenta poi alla rete il valore di ingresso
effettiva
, e l’uscita
con valori casuali; si
desiderata; si calcola la risposta della rete
; si aggiornano i pesi mediante la delta-rule ; si ricomincia il ciclo, presentando alla rete il
successivo esempio del training set. Il procedimento si blocca quando l’errore è stato minimizzato.
L’adattamento dei pesi sinaptici (ossia la variazione di
pendenza.
/ e la quota .
, ,
) non fa altro che modificare la
/ della retta di separazione fra le due classi; il processo termina
quando le due classi risultano perfettamente separate.
71
2
Figura 46: Esempio di punti in R , appartenenti a due classi diverse.
Esempio di problema di classificazione non lineare
La delta-rule, che è stata ricavata facendo riferimento per semplicità ai neuroni lineari, è in realtà valida per
qualsiasi tipo di neurone. Si parla, in effetti, di delta-rule, nel caso di neuroni lineari, e di delta-rule
generalizzata, per altri tipi di neuroni, tenendo però conto dell’eventuale andamento dell’errore da
minimizzare. Un tipico problema non lineare è la funzione XOR (OR esclusivo). Tale esempio venne
presentato nel 1969 da Minsky e Papert; essi esposero la limitatezza operativa delle reti, basate sul
modello del perceptron, dimostrando l'impossibilità di risolvere problemi anche piuttosto accessibili,
proprio come quello del calcolo della funzione XOR. Tale intervento segnò una stasi sia per lo sviluppo, ma
ancor di più nell’interesse per delle reti neurali artificiali, durata circa dieci anni.
È noto che lo XOR ha due ingressi e ad un’uscita, e restituirà 1 solo se uno solo dei due ingressi è 1. I
possibili ingressi e uscite della funzione XOR sono elencati nella Tabella 1.
x1
x2
Y
0
0
0
0
1
1
1
0
1
1
1
0
Tabella 1: Ingressi (x1 e x2) ed uscita (y) desiderata del perceptron per la funzione XOR.
Non esiste alcuna retta che separi i punti (0,1) e (1,0) dai punti (0,0) e (1,1), come si evince dalla Figura 47.
72
(0,1)
(1,1)
(0,0)
(1,0)
Figura 47: Tentativo di classificazione per la funzione XOR.
Per risolvere un problema di classificazione non lineare di questo tipo, si può intervenire secondo due
modalità:
-
Si utilizza una rete con n ingressi e un’uscita, e una funzioni di uscita non lineare appropriata, che
tuttavia non è sempre semplice da individuare;
-
Si realizza una rete che presenti, oltre agli strati di ingresso e di uscita, anche uno o più strati
intermedi. Una rete del genere vien chiamata multilayer perceptron. Il metodo di addestramento
per tale rete venne proposto dal matematico americano Paul Werbos nella sua tesi di dottorato del
1974.
Si realizza un multilayer perceptron per risolvere il problema non lineare dello XOR.
La rete avrà uno strato d’ingresso, costituito da due neuroni di input, conterrà due neuroni nascosti, che
rappresentano due rette, e un neurone di uscita che combina le informazioni prodotte dalle due rette.
Si considera la Tabella 2, che tiene conto degli ingressi e delle uscite dello strato nascosto.
x1
x2
Ingresso strato
Ingresso strato
Uscita strato
Uscita strato
nascosto neurone 1
nascosto neurone 2
nascosto neurone 1
nascosto neurone2
1
1
-0.5
-1.5
0
0
1
0
0.5
-0.5
1
0
0
1
0.5
-0.5
1
0
0
0
1.5
0.5
1
1
Tabella 2: Ingressi ed uscite del multilayer - perceptron per la funzione XOR.
Gli ingressi alla rete sono trasformati in uscita dallo strato nascosto.
Il primo livello di pesi (tra lo strato d’ingresso e lo strato nascosto) ha eseguito le seguenti variazioni:
-
il punto originale (1,1) viene spostato nel punto (0,0);
-
il punto originale (1,0) rimane invariato;
73
-
il punto originale (0,1) viene spostato nel punto (1,0);
-
il punto originale (0,0) viene spostato nel punto (1,1);
La Figura 48 rappresenta l’uscita dallo strato nascosto.
(0,0)
(0,1)
(1,1)
(1,0)
Figura 48: Classificazione per la funzione XOR, con multilayer – perceptron.
Anche il secondo livello di pesi (che connettono lo strato nascosto con lo strato di uscita) modella una retta.
Affinché la rete produca gli output desiderati, occorre quindi che le configurazioni degli input, al secondo
livello di pesi, siano separabili da una retta, come confermato dalla figura precedente.
A.6 Backpropagation
La delta-rule già analizzata non può essere applicata ad una rete multistrato. Infatti, un tale meccanismo di
aggiornamento dei pesi, permette di modificare il valore del peso, considerando l’errore come la differenza
fra l’uscita desiderata e l’uscita effettiva. Ma si conoscono (dati del training set) soltanto le uscite
desiderate dei neuroni di output, mentre nulla si sa riguardo ai valori in uscita dei neuroni intermedi
introdotti. Questo problema è stato risolto con l’introduzione dell’algoritmo di backpropagation. Tale
algoritmo29 prevede di calcolare l’errore commesso da un neurone dell’ultimo strato nascosto, propagando
all’indietro l’errore calcolato sui neuroni di uscita collegati a tale neurone. Lo stesso procedimento è poi
ripetuto per tutti i neuroni del penultimo strato nascosto, e così via.
L’algoritmo di backpropagation prevede, per ogni esempio proposto dal training set, due fasi:
o
I Fase: I segnali viaggiano dall’ingresso verso l’uscita al fine di calcolare la risposta della rete (feedforward propagation);
o
II Fase: I segnali di errore sono propagati all’indietro, sulle stesse connessioni su cui avevano
viaggiato nella I fase gli ingressi (backpropagation). Durante questa seconda fase avviene la
modifica dei pesi. I pesi sono, anche in questo caso, inizializzati con valori casuali.
74
L’algoritmo di backpropagation richiede l’utilizzo di una funzione di attivazione derivabile: perciò la scelta
ricade sulla funzione sigmoide, che restituisce valori nell’intervallo continuo *0,1+. L’algoritmo di
backpropagation è una generalizzazione della delta-rule.
Si indica con
la somma pesata degli ingressi del neurone j-esimo.
In questo caso, la derivata dell’errore rispetto al generico peso, è espresso da:
(43)
Generalizzando la delta–rule, si pone:
(44)
(45)
Ricordando che l’errore commesso dalla rete per il k-esimo esempio del training set è dato dalla (32), si ha:
(
Per la funzione di attivazione
)
(46)
l’uscita è definita da:
(
)
(47)
e quindi:
(
)
(48)
da cui:
) (
(
)
(49)
Poiché
∑
(50)
da cui:
(51)
Allora, ritornando all’equazione (43):
(
) (
)
(52)
si ottiene la formula (53) per la modifica dei pesi
75
(53)
L’errore
è calcolabile per un neurone di uscita, come differenza fra l’uscita desiderata e quella effettiva,
ma non per un neurone nascosto perché, come già detto, é sconosciuta la sua uscita desiderata.
Il contributo di un neurone dello strato nascosto può comunque essere considerato proporzionale al suo
contributo all’errore sullo strato successivo (verso l’uscita della rete).
Se si considera un neurone dell’ultimo strato nascosto, si ammette che l’errore commesso da tale neurone
può essere calcolato come somma degli errori commessi da tutti i neuroni di uscita a esso collegati. Il
contributo di ciascuno di tali errori dipende, ovviamente, sia dalla dimensione dell’errore commesso dal
relativo neurone di uscita, sia dal peso sulla connessione tra il neurone nascosto e il neurone di uscita.
Allora, un neurone di uscita con un grosso errore contribuisce in maniera notevole all’errore di ogni
neurone nascosto cui è connesso con un peso elevato.
Per un neurone nascosto l’errore è dato dall’equazione (54).
(
)∑
(54)
dove s è l’indice dei neuroni dello strato che trasmette all’indietro l’errore.
Si supponga di utilizzare come funzione di attivazione la funzione logistica, per la quale si ricava la derivata,
espressa nell’equazione (55).
(
.
)
(
/= (
)
),
(
)-
(55)
Solitamente si utilizzano due tecniche per risolvere il problema della scelta di η. Come nell’analisi del
perceptron, si può imporre che il valore del learning rate possa variare nel tempo.
In alternativa, si mira a ridurre la probabilità di oscillazione dei pesi, usando una costante di proporzionalità
, compresa fra 0 e 1, detta momentum, nell’espressione della variazione dei pesi.
Con l’introduzione di questo termine la legge di apprendimento diventa:
(
)
η
( )
(56)
Quella ottenuta è una relazione di ricorrenza: permette di ottenere la variazione dei pesi di un esempio del
training set, in funzione della variazione dei pesi prevista per l’esempio precedente. Si somma alla modifica
del peso una frazione della variazione che il peso ha subito al passo precedente. Il termine momentum
annulla le oscillazioni dei pesi, in quanto sommando l’update al passo n con quello al passo (n-1) si
76
addizionano le componenti aventi la stessa direzione e si annullano quelle opposte. Si ottiene, di
conseguenza: accelerazione lungo la direzione di discesa (update del peso grande per variazioni con stesso
segno in passi consecutivi), e stabilizzazione del processo in direzioni che oscillano in segno (update del
peso piccolo per variazioni di segno opposto).
Si può decidere inoltre (soluzione scelta per il training della rete presentata in questo lavoro di Tesi) di
allenare la rete con il metodo di discesa del gradiente, e di sfruttare sia la variazione della velocità di
apprendimento, sia il momento, ottimizzando così tale fase.
Si supponga ora di dover addestrare una rete neurale multistrato, con funzione di attivazione sigmoide,
attraverso un training set, costituito da
esempi (per i quali sono forniti ingresso
e uscita prevista
).
Generalmente, si procede nel seguente modo:
-
Si inizializzano i pesi sinaptici con valori casuali (possibilmente non troppo elevati);
-
Si presenta un ingresso
della rete,
previsto dal training set, e si calcola l’uscita effettiva di tutti i neuroni
tramite la funzione di attivazione sigmoide. Il valore dell’uscita è calcolato
nell’equazione (66).
(57);
-
Noto il valore in uscita desiderato per l’esempio introdotto, si calcola l’errore
pesi
per ogni neurone dello strato di uscita, come in (58).
(
-
) (
)
(
) (
)
(58)
Si parte dall’ultimo strato nascosto e si procede all’indietro, calcolando gli errori:
(
-
e la variazione dei
)∑
(
)∑
(59)
Si aggiornano i pesi per tutti gli strati nascosti, come indicato nell’equazione (60).
(
)
η
( )
(60)
-
Si presentano alla rete gli altri esempi del training set, e si procede per ognuno al modo descritto;
-
Alla fine di un’epoca (presentazione di tutti gli
esempi del training set), si calcola l’errore medio
(oppure l’errore globale); se l’errore è al di sotto di una soglia prefissata, l’algoritmo termina (si è
raggiunta la convergenza), altrimenti si ripete un intero ciclo di presentazione del training set.
77
Esistono due modalità di applicazione dell’algoritmo di backpropagation:
Modalità batch: I pesi sono aggiornati dopo aver presentato alla rete tutti gli esempi del training set.
Modalità on-line (o incrementale): I pesi sono aggiornati dopo la presentazione di ogni esempio.
Nell’algoritmo precedente si è fatto riferimento a quest’ultima modalità.
A.7 Problemi e punti di forza di una rete neurale artificiale
Le reti neurali, in seguito al processo di apprendimento, costruiscono una mappa delle relazioni tra i
parametri d’input e di output. Proprietà fondamentale è la generalizzazione: le reti acquisiscono la capacità
di associare a ogni input l'output più vicino a quello verosimile,28 anche con input non considerati durante
l’addestramento. Altre proprietà sono:
o
Possibilità di operare anche in presenza di dati incompleti, parzialmente errati, o affetti da rumore
(robustezza della rete, dovuta alla sua struttura distribuita);
o
Adatte a problemi che non chiedono risposte accurate, ma soluzioni orientative o solo qualitative;
o
Semplicità di implementazione in un codice di calcolo;
Occorre ricordare anche i limiti delle ANN:
o
Una rete neurale si presenta come una scatola nera e non permette di “motivare” teoricamente ed
esplicitamente la relazione ottenuta tra input e output;
o
Non sempre è possibile elaborare una rete neurale che risolva il problema;
o
L’ addestramento con pochi casi di esempio è poco efficiente (necessità di ampi set di esempi);
o
L'addestramento può richiedere lunghi tempi di elaborazione.
78
BIBLIOGRAFIA
1.
Boyle P. and Ferlay J., ‘Cancer incidence and mortality in Europe’. Annals of Oncology, 16:481–488,
2005.
2.
Samet JM (ed), ‘Epidemiology of Lung Cancer’, New York, Marcel Dekker, 1994.
3.
E. Cassina, ‘La Stadiazione del Carcinoma Polmonare’, Divisione di Chirurgia Toracica Ospedale ‘San
Gerardo’ Monza, Luglio 2006, http://www.chirurgiatoracica.org (accesso effettuato gennaio 2011)
4.
http://www.airc.it/tumori/tumore-al-polmone.asp (accesso effettuato novembre 2010).
5.
Umberto Veronesi, ‘Un male curabile’, Mondatori-De Agostini, 1995.
6.
Maurizio Ponz de Leon, ‘Tumori: una sfida per il XXI secolo’, Springer-Verlag Italia, 1997, pp. 85-89.
7.
CUNEO LUNG CANCER STUDY GROUP, ‘Carcinoma polmonare: istologia e classificazioneTNM’,
http://www.culcasg.org/Documenti/Corso_Medici/Tumori_Benigni.htm (accesso effettuato
novembre 2010).
8.
Alessandra Patera, ‘Sistemi matematico-fisici per la ricerca di noduli polmonari in immagini CT’, Tesi
di laurea triennale A.A. 2006/07, Università del Salento.
9.
Mathias Prokop, Michael Galanski, ‘Tomografia computerizzata. Spirale e multistrato’, Elsevier srl,
2006, pp.2,3.
10.
A. Castellano, G. De Nunzio, M. Donativi, ‘Fisica e tecnica delle apparecchiature biomediche.
Tomografia computerizzata, Risonanza magnetica, Ecografia’, DeltaEdit, Arnesano (LE), 2009.
11.
Paul Suetens, ‘Fundamentals of medical imaging’, Cambridge Medicine, 2009, pp. 34-40.
12.
G. De Nunzio, A.Massafra, R.Cataldo, I.DeMitri, M.Peccarisi, M.E.Fantacci, G.Gargano, E. Lopez
Torres, ‘Approaches to juxta-pleural nodule detection in CT images within the MAGIC-5
Collaboration’, Nucl. Instr. and Meth. A (2011), doi:10.1016/j.nima.2010.12.082
13.
M.Maggiore, ‘Individuazione di noduli pleurici in immagini TAC polmonari’, Tesi di Laurea in Fisica,
A.A. 2009/2010, Università del Salento.
14.
D. S. Paik, ‘Computer Aided Interpretation of medical images’, Tesi di Dottorato, Università di
Stanford, Agosto 2002.
15.
Daniela Catanzaro, ‘Studio di Sistemi Fisico-Computazionali per l’analisi di immagini biomediche’,
Tesi di Laurea triennale, A.A.2003/2004, Università degli studi di Lecce.
16.
E. Grossi, ‘Gli errori medici: un'altra chiave di lettura per auspicare l'avvento di una computer
science amica’, Direzione medica Bracco Milano, da
http://www.geragogia.net/editoriali/errorimedici.html (accesso effettuato novembre 2010).
17.
K. Doi, ‘Computer-aided diagnosis in radiology:potential and pitfalls’, Eur. Jour. Of Radiology 31
(1997) pp 97-109.
79
18.
Gurcan M.N., Sahiner B., Petrick N., Chan H., Kazerooni E.A., Cascade P.N.,Hadjiiski L., ’Lung nodule
detection on thoracic computed tomography images: Preliminary evaluation of a computer aided
diagnosis system’, Med. Phys. 29(11), pp.2552-2558 (2002).
19.
Bates DW, Cohen M, Leape LL, Overhage M, Shabot M, Sheridan T, ‘Reducing the Frequency of
Errors in Medicine Using Information Technology’. J. Am. Med. Inform. Assoc. 2001; 8:299-308.
20.
http://www.psychology.nottingham.ac.uk/staff/cr1/dicom.html, accesso effettuato in dicembre
2010.
21.
Eleonora Tommasi, ‘Metodi matematico-fisici per un sistema di Computer Assisted Detection
Polmonare’, Tesi di Laurea V.O., A.A.2005/2006, Università degli studi di Lecce, CDL Fisica.
22.
Alessandra Carlà,‘Metodi Matematico-Fisici per la caratterizzazione delle neoplasie polmonari
in immagini TAC’, Tesi di Laurea triennale, A.A.2005/2006, Università degli studi di Lecce.
23.
S. Battiato, ‘Morfologia e Image Processing’, da
http://www.dmi.unict.it/˜battiato/mm0910/Parte_9_La_Morfologia_Matematica.pdf, accesso
effettuato in gennaio 2011.
24.
W.F. Sensakovic, A. Starkey, S.G. Armato III, ‘A General Method for the Identification and Repair of
Concavities in Segmented Medical Images’, Medical Image Conference 2008, Dresden, JDIISSN0897.
25.
R.Bellotti, F. De Carlo, G.Gargano, S. Tangaro, D. Cascio, E. Catanzariti, P. Cerello, S. C. Cheran, P.
Delogu, I. De Mitri, C. Fulcheri, D. Grosso, A. Retico, S. Squarcia, E. Tommasi, Bruno Golosio, ‘A CAD
system for nodule detection in low-dose lung CTs based on region growing and a new active contour
model’, Medical Physics, Vol. 34, No. 12, December 2007.
26.
Ke Chen, Lipo Wang, ‘Trends in neural computation’, Springer-Verlag, 2007, pp.233, 234.
27.
Gabriella Pastore, ‘Computer Assisted Detection of Glioma in Diffusion Tensor Images’, Tesi di
Specializzazione in Fisica Sanitaria, A.A. 2008/09, Università degli Studi di Roma “La Sapienza”,
Scuola di specializzazione in Fisica Sanitaria.
28.
Angelo Fabbri, Università di Bologna, ‘Introduzione alle reti neurali: modelli, pacchetti software,
applicazioni statistiche, agroindustriali e di ricerca’, da
http://angelofabbri.altervista.org/Filez/Materiali_LM-PhD, accesso effettuato in dicembre 2010.
29.
Beatrice Lazzerini, Dipartimento di Ingegneria dell’Informazione, Pisa, ‘Introduzione alle Reti
Neurali’, da http://info.iet.unipi.it/~lazzerini/icse/Reti.pdf, accesso effettuato in dicembre 2010.
80
RINGRAZIAMENTI
A conclusione di questo lavoro, è finalmente giunto il momento della stesura dell’ultima pagina, quella dei
ringraziamenti.
Voglio innanzitutto ringraziare il mio relatore Dott. Giorgio De Nunzio, e dimostrargli tutta la mia stima e la
mia riconoscenza. Grazie per avermi accolto con semplicità e serietà, per la pazienza, la gentilezza, e la
disponibilità con cui mi ha guidata ed incoraggiata nella realizzazione di questo soddisfacente lavoro.
Ringrazio la Dott.ssa Gabriella Pastore, per i consigli e gli aiuti che mi ha offerto, dando un importante
contributo alla concretizzazione di questo progetto.
Un ringraziamento a tutti quei professori che, fin da piccola, mi hanno fatto appassionare a questi studi, e
mi hanno fatto apprezzare il valore che ha porsi sempre delle domande.
Grazie a mamma e papà, che mi hanno permesso di realizzare questo piccolo sogno, e che mi hanno
appoggiata e sostenuta in ogni situazione; grazie per avermi ascoltata, e, specialmente, per avermi
sopportata quando ero intrattabile. Li ringrazio perché so che in questo giorno saranno commossi e
soddisfatti, e in questo modo mi riempiranno di gioia.
Ringrazio mia sorella, perché so che, nonostante le incomprensioni, potrò sempre trovare in lei un’amica
particolare, migliore di qualsiasi altra.
Grazie ai miei nonni, che mi sono sempre vicini, che sanno trovare una soluzione ad ogni problema, e che
con la semplicità e il calore dei gesti di una volta, mi fanno tornare bambina.
Voglio ringraziare inoltre tutti i familiari e gli amici che mi hanno sostenuto in questo cammino.
Grazie, infine, a chi proprio non ne vuole sapere di apparire in queste ultime righe, che mi sostiene ogni
giorno, e che forse non sa che, al di là del fatto che il suo nome compaia o meno in questa pagina, e
indipendentemente da ciò che il destino scriverà per noi, è ormai parte della mia vita.
81