• Non ci sono risultati.

Sviluppo di un sistema di Deep Learning per segmentazione di immagini mammografiche

N/A
N/A
Protected

Academic year: 2021

Condividi "Sviluppo di un sistema di Deep Learning per segmentazione di immagini mammografiche"

Copied!
105
0
0

Testo completo

(1)

Università di Pisa

Facoltà di Ingegneria

Corso di Laurea Magistrale in Ingegneria Biomedica

Sviluppo di un sistema di Deep Learning

per segmentazione di immagini mammografiche

Candidato

Gabriele Valvano

Relatori

Prof. Luigi Landini

Ing. Daniele Della Latta

Ing. Gianmarco Santini

Dott.ssa Chiara Iacconi

(2)
(3)

Indice

1 Mammografia e Deep Learning 9

1.1 Introduzione alla mammografia . . . 9

1.2 Geometria e fisica di acquisizione . . . 11

1.3 Lesioni alla mammella . . . 12

1.4 Strumenti automatizzati . . . 14

1.5 Apprendimento Profondo . . . 15

2 Reti neurali artificiali 17 2.1 Introduzione alle reti neurali . . . 17

2.2 Paradigmi di apprendimento . . . 19

2.3 Principali tipologie di rete neurale . . . 21

2.4 Addestramento di una rete neurale . . . 22

2.4.1 La funzione costo . . . 23

2.4.2 Aggiornamento dei pesi . . . 25

2.4.3 Forward Propagation . . . 25

2.4.4 Backward Propagation . . . 27

2.5 Hyper-parameters di una rete neurale . . . 29

2.6 Reti neurali convolutive . . . 29

2.7 Struttura delle CNN . . . 30

2.8 Principali tipologie di layer di una CNN . . . 30

2.8.1 Convolutional layer . . . 31

(4)

2.8.3 Pooling layer . . . 36

2.8.4 Batch Normalization layer . . . 37

2.8.5 Fully-connected layer . . . 39

2.8.6 Output layer . . . 40

2.9 Considerazioni finali sulle CNN . . . 41

3 Pre-processing dell’immagine 43 3.1 Contrasto dell’immagine mammografica . . . 44

3.2 Ricerca delle microcalcificazioni . . . 47

3.2.1 Pre-filtraggio dell’immagine . . . 48

3.2.2 Operazioni di denoising . . . 50

3.2.3 Aumento del contrasto . . . 51

3.2.4 Estrazione della maschera . . . 55

3.2.5 Scelta del parametro di enhancement e della soglia . 56 4 Costruzione della rete 59 4.1 Strategia di addestramento . . . 60

4.2 Costruzione del data set . . . 60

4.3 Architettura di rete . . . 65

4.4 Scelta del modello ottimo . . . 66

4.5 Modalità di test della rete . . . 67

4.5.1 Taratura della soglia di probabilità . . . 68

5 Risultati ottenuti 69 5.1 Parametri di pre-processing . . . 69

5.2 Dimensione della patch . . . 69

5.3 Addestramento della rete . . . 71

5.4 Test della rete . . . 72

A Gradient Descent Algorithm 77 A.1 Gradient Descent Algorithm e Learning Rate . . . 77

(5)

INDICE 5

A.2 Stochastic Gradient Descent Algorithm . . . 79

A.3 Learning rate adattivo . . . 80

A.4 Principali varianti del SGD . . . 82

A.5 Utilizzo del momentum . . . 84

B Overfitting e strategie di regolarizzazione 87 B.1 Overfitting nelle reti neurali . . . 89

B.2 Strategie di regolarizzazione . . . 93

(6)
(7)

Introduzione

Il cancro al seno è una delle maggiori cause di mortalità tumorale fra le donne. La mammografia è l’esame di riferimento per lo screening di tumore al seno in donne con più di 40 anni: infatti, diverse meta-analisi hanno dimostrato una riduzione della mortalità di cancro al seno del 30%.

Le microcalcificazioni possono rappresentare un segnale precoce per la diagnosi di tumore alla mammella, rintracciabile in immagini mammografi-che. Esse sono spesso di difficile interpretazione per i radiologi a causa della sovrapposizione di lesioni maligne e benigne.

Breast Imaging Reporting and Dated System (BIRADS) ha standar-dizzato l’interpretazione delle microcalcificazioni: tipicamente benigne (BI-RADS2), intermedie (BIRADS3), con elevata probabilità di essere maligne (BIRADS4), estremamente sospette di malignità (BIRADS5). La classifica-zione delle microcalcificazioni è basata sull’analisi della loro forma, densità e distribuzione all’interno della mammella.

Sfortunatamente le microcalcificazioni sono spesso difficili da rintraccia-re in quanto la mammella contiene diverse quantità di tessuto connettivo, ghiandolare e adiposo, organizzate in strutture di diversa geometria, den-sità e dimensione. Ne risulta una gran varietà di pattern all’interno delle mammografie.

La variabilità del tessuto della mammella e la geometria di acquisizione proiettiva dell?immagine implicano l’impossibilità di utilizzare una semplice operazione di soglia basata sulla densità per la detezione automatica delle

(8)

calcificazioni. Il processo di detezione è ulteriormente complicato dalla gran-de variabilità gran-della geometria gran-delle microcalcificazioni, la quale inibisce una ricerca morfologica. Finora è stata proposta una gran varietà di algoritmi per il loro rintracciamento automatico, fra questi: metodi basati sulla tra-sformata wavelet, sistemi di filtraggio morfologico, analisi a multirisoluzione, approcci di machine learning.

Date le difficoltà che mostrano i metodi classici nel rintracciamento au-tomatico delle microcalcificazioni, nel lavoro di tesi si propone un approccio basato su una rete neurale profonda di tipo convolutivo.

L’elaborato si articola come segue:

• Capitolo 1: introduzione alla mammografia e al deep learning;

• Capitolo 2: introduzione alle reti neurali artificiali e alle reti neurali convolutive;

• Capitolo 3: fase di pre-processing dell’immagine; • Capitolo 4: costruzione della rete neurale;

(9)

Capitolo 1

Mammografia e Deep Learning

Studi epidemiologici dimostrano che il tumore della mammella è fra le prime cause di morte oncologica nella popolazione femminile [1].

La prevenzione primaria risulta essere uno strumento efficace per dimi-nuire la mortalità e la morbilità associata alle neoplasie mammarie. Per questo il Sistema Sanitario Nazionale ha sviluppato un sistema di screening mammografico a copertura del territorio italiano per tutta la popolazione femminile di età compresa fra i 50 e i 69 anni. Tale programma ha incre-mentato il numero di esami mammografici prodotti e la grande quantità di informazioni digitali generata ha reso sia necessario che possibile lo sviluppo di sistemi automatici di aiuto alla refertazione.

1.1

Introduzione alla mammografia

La mammografia è una tecnica di imaging che sfrutta radiazioni ionizzanti di tipo X per generare immagini proiettive della mammella.

Le immagini ricavate possono essere quindi utilizzare per analizzare la struttura della mammella del paziente ed individuare la presenza di eventuali lesioni (fig. 1.1).

(10)

Figura 1.1: A sinistra: preparazione del paziente a una indagine mammografica. A destra: esempio di immagine mammografica; la freccia indica una piccola lesione cancerosa.

Durante la procedura, la mammella viene compressa fra due piastre me-diante uno strumento di compressione. La compressione permette di aumen-tare la qualità dell’ immagine riducendo lo spessore del tessuto attraversato dai raggi X e diminuendo la quantità di radiazione diffusa generata, mini-mizzando uteriormente l’esposizione del paziente. Vista la geometria volu-metrica delle ghiandole, la compressione rende lo spessore del tessuto più uniforme e dunque la qualità dell’immagine più omogenea. Al contempo la dilatazione della mammella nelle regioni più esterne permette di sproiettare regioni dell’immagine che altrimenti sarebbero sovrapposte, migliorando la capacità di ispezione visiva del tessuto.

Un protocollo di acquisizione durante le campagne di screening prevede l’acquisizione di due proiezioni della mammella: una dalla testa ai piedi (cranio-caudale, CC) e una angolata in vista laterale (obliqua medio-laterale, OML).

(11)

1.2 Geometria e fisica di acquisizione 11

1.2

Geometria e fisica di acquisizione

La modalità di acquisizione consiste nella generazione di un fascio di raggi X mediante il tubo radiogeno, che viene orientato in modo da essere tangente allo sterno del paziente e da investire interamente la mammella. I tessuti caratterizzati da un maggiore assorbimento della radiazione lasceranno pas-sare una quantità minore di raggi X che andranno a incidere sul detettore. Arrivando una minore quantità di radiazione nella corrispondente regione al livello del detettore, il segnale prodotto risulterà minore.

Figura 1.2: Influenza sulla dimensione dell’ immagine della distanza di uno stesso oggetto dalla sorgente.

Figura 1.3: A sinistra: geometria di acquisizione in un esame di mammografia. A destra: influenza della posizione di un oggetto sull’intensità del segnale.

(12)

La geometria di acquisizione è di tipo proiettivo e questo comporta di-versi limiti della tecnica. In primo luogo lo stesso oggetto potrà apparire di dimensioni diverse a seconda della sua distanza dalla sorgente (fig. 1.2). La compressione della mammella riduce parte di questo effetto, ma risulta meno efficace all’aumentare delle dimensioni del seno.

Inoltre lo stesso oggetto potrà apparire nell’immagine con valori più o meno intensi a seconda di quale tessuto venga attraversato lungo la pro-iezione su cui giace. Se pure assumessimo che idealmente il tessuto fosse completamente omogeneo, il diverso spessore della mammella porterebbe alla produzione di diversi livelli di grigio nell’immagine (fig. 1.3).

1.3

Lesioni alla mammella

L’obiettivo dell’esame mammografico è l’individuazione di eventuali discon-tinuità strutturali della mammella.

Figura 1.4: Diverse tipologie di lesioni riscontrabili in un esame di mammografia. La tipologia delle microcalcificazioni appare nella prima immagine a sinistra.

Fra le varie tipologie di alterazioni è di particolare interesse l’identifica-zione delle microcalcificazioni, che possono permettere la classifical’identifica-zione della lesione in benigna o maligna a seconda delle caratteristiche morfologiche che presentano e vengono associate a una classe di rischio secondo le linee guida della classificazione BIRADS.

(13)

1.3 Lesioni alla mammella 13

Le microcalcificazioni sono rappresentative di regioni di maggiore assor-bimento dei raggi X e appaiono come dei punti ad elevata intensità rispetto al loro background. In genere si distribuiscono sotto forma di cluster al-l’interno della mammella e oltre ad essere di dimensioni diverse possono assumere livelli di grigio differenti, geometrie più o meno irregolari e confini più o meno netti.

La limitata dimensionalità delle microcalcificazioni fa sì che l’ispezione visiva dell’ immagine radiologica possa non essere sempre efficace nel rintrac-ciare tutte le lesioni. La detezione si semplifica quando le microcalcificazioni si presentano in cluster (fig. 1.4 A).

Nei casi in cui i tessuti della mammella siano particolarmente densi l’den-tificazione diventa ancora più ardua in quanto si verifica una riduzione della risoluzione in termini di contrasto: qui le microcalcificazioni presentano li-velli di grigio molto vicini a quelli del tessuto adiacente e possono non essere rilevate anche da un operatore esperto (fig. 1.5).

Figura 1.5: Microcalcificazioni di difficile identificazione.

In queste situazioni l’ausilio di strumenti automatizzati che facilitino la ricerca delle microcalcificazioni può essere determinante per la buona riuscita della diagnosi.

(14)

1.4

Strumenti automatizzati

Tradizionalmente l’individuazione delle lesioni viene effettuata per ispezione visiva da uno o più specialisti, con dispendio di tempo e costi. Inoltre l’analisi visiva comporta una fase di training dell’operatore che deve diventare esperto nel riconoscimento delle lesioni; ciascun operatore avrà la sua specifica curva di apprendimento e non sarà quindi definibile a priori il tempo necessario per diventare adeguatamente esperti per poter fare diagnosi.

La possibilità di utilizzare sistemi CAD (di Computer Aided Detection and Diagnosis) può agevolare notevolmente l’operatore nel compito da svol-gere. Essi possono essere utili come secondo strumento di diagnosi di un esame [2, 3], o possono aiutare l’operatore a riconoscere le regioni sospette nell’immagine, ad esempio aumentandone il contrasto rispetto alle regioni limitrofe. Il vantaggio degli strumenti CAD consiste nel non soffrire di cali di concentrazione, nella loro coerenza in presenza degli stessi dati di input e nella possibilità di essere addestrati con una quantità incredibile di campioni di training, di gran lunga maggiore di quanto ogni radiologo sperimenterà nella sua vita.

Oggi i metodi standard per il riconoscimento automatico delle lesioni so-spette utilizzano filtraggi wavelet [4], analisi morfologiche delle strutture [5], analisi a multirisoluzione [6] e approcci di machine learning [7, 8]. Tuttavia l’efficacia di un sistema CAD è sempre stata fortemente dipendente dalle feature, ovvero dalle caratteristiche distintive dell’immagine, definite in fa-se di progettazione del software dal programmatore con l’aiuto di radiologi (ad esempio il contrasto della lesione, l’andamento più o meno ondulato dei bordi, la nitidezza dei contorni, ecc.). Questo modo di costruire feature però presuppone una conoscenza a priori del problema in esame e inoltre risulta fortemente influenzato dal modo di ragionare di chi progetta il software.

Attualmente, con l’introduzione dell’intelligenza artificiale, la ricerca si sta dirigendo verso soluzioni nuove che hanno le potenzialità di superare

(15)

1.5 Apprendimento Profondo 15

alcuni limiti che gli approcci classici presentano ancora. Queste tecniche afferiscono alla sfera delle discipline proprie dell’apprendimento automatico, il machine learning.

1.5

Apprendimento Profondo

L’Apprendimento Profondo, o Deep Learning, [9] è una branca del machi-ne learning che machi-negli ultimi anni si è rilevata uno strumento estremamente potente e promettente nel contesto della computer vision, dimostrando ec-cezionali capacità nel riconoscimento del contenuto di immagini, nell’analisi del contenuto dei testi, nella comprensione del parlato, ecc., spesso raggiun-gendo prestazioni analoghe a quelle dell’ osservatore umano, se non superiori [10], facendo sperare in una sua introduzione sempre più massiva anche nei software medicali.

Nell’ambito del deep learning risiedono gli algoritmi facenti parte del-le cosiddette Reti Neurali Artificiali. Le reti neurali possono avere archi-tetture molto diverse fra loro; in particolare nel corso della tesi verranno approfondite le Reti Neurali Convolutive, le quali recentemente stanno por-tando risultati importanti nell’ambito della computer vision e che qui sono state utilizzate per il rintracciamento automatico delle microcalcificazioni all’interno delle immagini di mammografia.

(16)
(17)

Capitolo 2

Reti neurali artificiali

In questo capitolo verranno introdotti il modello matematico del neurone e le caratteristiche principali delle reti neurali. Approfondiremo poi la strut-tura di un particolare sottogruppo di reti neurali, ovvero le Reti Neurali Convolutive (CNN); tratteremo le caratteristiche che le hanno portate a una grandissima diffusione negli ultimi anni, in particolare analizzeremo le modalità di addestramento, la loro architettura e le loro criticità. Verran-no infine illustrati alcuni accorgimenti che è bene tenere presente quando si utilizza questo tipo di strumenti.

2.1

Introduzione alle reti neurali

Nel campo dell’apprendimento automatico, le reti neurali artificiali (Artifi-cial Neural Network, ANN ) sono una famiglia di modelli ispirati alle reti neurali biologiche.

Le ANN vengono utilizzate per approssimare delle funzioni matematiche che possono dipendere da un gran numero di variabili, ma che a priori sono ignote. Esse sono generalmente rappresentate da un insieme di neuroni in-terconnessi e in grado di scambiarsi dei messaggi tramite gli assoni artificiali. A ciascuna connessione è associato un peso, o weight ; esso viene modificato

(18)

nel corso dell’addestramento assieme a tutti gli altri pesi man mano che la rete acquisisce nuova esperienza, con nuovi campioni in ingresso.

Dunque alla base di ogni rete neurale risiede la sua unità operativa, ov-vero il neurone. Partiamo perciò dal modello di neurone artificiale (fig. 2.1): la cellula riceve in ingresso una serie di input e dà come uscita una funzione della combinazione lineare dei suoi ingressi.

Figura 2.1: Modello di neurone artificiale.

Dove:

• xk = ingresso relativo all’assone del k -esimo neurone a monte della

connessione;

• wk = peso, o weight, della connessione k -esima;

• b = bias che il neurone aggiunge all’input (che può agire da soglia di attivazione);

• ϕ(·) = funzione di attivazione del neurone, ovvero la legge che regola la sua uscita;

• y = ϕ(P wi ∗ xi + b) l’uscita del neurone, talvolta chiamata anche

(19)

2.2 Paradigmi di apprendimento 19

La scelta della funzione di attivazione può ricadere su un gran numero di possibilità. Quelle più classiche sono la funzione sigmoidale e la tangen-te iperbolica [11]. Spesso però questangen-te vengono sostituitangen-te da funzioni più semplici, utili ad alleggerire l’onere computazionale (come la ReLU [12]) pur preservando la capacità di apprendimento della rete (anzi, in genere migliorandola [13]).

La presenza delle funzioni di attivazione è ispirata al neurone biologico e ci permette di introdurre una forte non linearità nella rete neurale: infatti in loro assenza l’uscita della rete non sarebbe altro che una combinazione lineare dei suoi ingressi. Noi invece applichiamo queste funzioni ai neuroni, preservandoci la possibilità di creare un modello fortemente non lineare.

Quando abbiamo a che fare con una rete di neuroni, l’ultimo passo cor-risponde sempre all’impiego di un classificatore, che ci permetta di definire a quale categoria appartiene l’ingresso. Solitamente viene scelta la funzione di softmax regression, ma è possibile adottare anche altri classificatori come SVM o Random Forest. Tale funzione ci permette di convertire le evidenze in probabilità che ha l’input di appartenere ad una determinata classe e si può scrivere come la normalizzazione di un esponenziale, ovvero:

sof tmax(x) = normalize(exp(x)) (2.1)

Se espandiamo la relazione avremo: sof tmax(x)i = exp(xi) P j(exp(xj)) (2.2)

2.2

Paradigmi di apprendimento

Le reti neurali si possono raggruppare in categorie distinte in base al modo in cui vengono addestrate. Esistono tre diverse strategie di apprendimento e in

(20)

relazione al paradigma scelto in fase di progettazione della rete la struttura cambierà di conseguenza. In particolare, abbiamo:

• Paradigma di apprendimento supervisionato: in questo caso si prevede l’utilizzo di un data set di campioni dei quali si conosce già l’uscita. I campioni vengono suddivisi in tre diversi gruppi, da usa-re rispettivamente nelle fasi di training, validation e test della usa-rete. Abbiamo:

– il training set : è l’insieme delle coppie ingresso - uscita deside-rata utilizzate per l’addestramento della rete; utilizzando questo campione, si forniscono di volta in volta i singoli ingressi, si con-frontano le relative uscite della rete con quelle desiderate e si cerca di minimizzare la loro differenza modificandone i pesi;

– il validation set : è l’insieme delle coppie ingresso - uscita deside-rata utilizzate per valutare l’apprendimento della rete durante il suo addestramento (verificando se la rete predice correttamente l’uscita associata a questi campioni);

– il test set : è l’insieme delle coppie ingresso - uscita desiderata utilizzate ad addestramento ultimato per valutare le prestazio-ni finali della rete e verificare se effettivamente essa ha appreso features generali che descrivano i dati forniti e le permettano di classificare correttamente i singoli input.

Se da una parte il campione di training sarà utilizzato per effettuare l’aggiornamento dei pesi, dall’altra sia il validation set che il test set contengono campioni che la rete non ha mai visto prima.

• Paradigma di apprendimento non supervisionato: in questa tipologia di apprendimento la rete modifica i propri parametri au-tonomamente, senza avere alcuna indicazione su quale debba essere l’uscita.

(21)

2.3 Principali tipologie di rete neurale 21

• Paradigma di apprendimento di rinforzo: seguendo questo pa-radigma viene ricercato un modus operandi a partire da un processo di osservazione dell’ambiente esterno; ogni azione ha un impatto sul-l’ambiente, e l’ambiente produce una retroazione che guida l’algoritmo stesso nel processo di apprendimento fornendo come risposta un in-centivo o un disinin-centivo. Durante le iterazioni gli algoritmi tentano di determinare una politica in grado di massimizzare la somma degli incentivi ricevuti nel tempo.

Nel corso di questa tesi verrà trattata una classe di algoritmi appartenente al primo tipo di paradigma di apprendimento.

2.3

Principali tipologie di rete neurale

Si possono distinguere principalmente due tipologie di reti neurali, ovvero le reti feedforward e le reti ricorrenti, o RNN.

La caratteristica delle prime consiste nel fatto di avere i neuroni disposti in modo da non formare mai cicli e far proseguire così le informazioni in un unico verso (in avanti, appunto). Uno schema di questo tipo di reti può essere visto in figura 2.2, in alto.

Nel caso delle reti neurali ricorrenti le connessioni fra i neuroni formano un un ciclo diretto, ovvero che presenta una certa direzione. In tal modo la rete conserva una memoria degli stati precedenti tramite l’anello di feedback ripresentando in ingresso, assieme al nuovo input, una qualche informazione dell’output precedente (fig. 2.2, in basso).

È possibile inoltre distinguere fra reti completamente connesse (fully con-nected ), in cui ogni neurone è connesso a tutti gli altri, e reti stratificate, in cui i neuroni sono organizzati in livelli successivi, detti strati, livelli o layer. In queste ultime tutti i neuroni di uno strato sono connessi a tutti i neuroni

(22)

Figura 2.2: In alto: una rete feedforward. In basso: una rete ricorrente e il suo l’anello di feedback.

dello strato successivo. Non esistono invece connessioni né fra neuroni di uno stesso layer, né fra layer non adiacenti (fig. 2.3).

Nel corso della tesi ci occuperemo essenzialmente di reti neurali strati-ficate addestrate mediante paradigma di apprendimento supervisionato. In particolare verrà analizzata la tipologia delle reti neurali convolutive.

Figura 2.3: Esempio di rete completamente connessa (a sinistra) e stratificata (a destra).

2.4

Addestramento di una rete neurale

L’addestramento di una rete neurale è un problema di ottimizzazione glo-bale. Minimizzando una certa funzione costo possiamo trovare la migliore

(23)

2.4 Addestramento di una rete neurale 23

combinazione di parametri del modello. Nella pratica ricercheremo la pre-senza di un minimo locale, in quanto abbiamo a che fare con funzioni non convesse, e ci accontenteremo di trovare soluzioni sub-ottime raggiungibili in tempi ragionevoli piuttosto che soluzioni ottime ma non praticabili.

Prendiamo in considerazione il caso di una rete neurale stratificata da ad-destrare mediante processi di apprendimento supervisionato. Uno dei metodi più efficaci per allenare una rete neurale è quello di utilizzare il cosiddetto algoritmo di retro-propagazione dell’errore (error backpropagation), nel qua-le i valori dei pesi della rete vengono modificati iterativamente al fine di avvicinare sempre di più l’uscita prodotta al valore desiderato.

Le fasi dell’addestramento sono essenzialmente due: la forward propaga-tion e la backward propagapropaga-tion. Durante la prima fase vengono calcolate le attivazioni dei neuroni della rete in base al valore corrente dei pesi, proce-dendo dal primo fino all’ultimo layer. Nella seconda fase l’uscita della rete viene confrontata con l’uscita desiderata ottenendo così l’errore attuale della rete che verrà poi propagato in maniera opposta (dall’ultimo livello verso il primo) attraverso i neuroni, correggendo di volta in volta i pesi che hanno contribuito attivamente alla sua formazione.

2.4.1

La funzione costo

Come già anticipato, per le reti ad apprendimento supervisionato è di fon-damentale importanza il processo di retro-propagazione dell’errore: esso ci permette di addestrare la rete variandone i pesi al fine di minimizzare una funzione costo C, detta anche funzione di loss, perdita.

Per spiegare il funzionamento dell’aggiornamento dei pesi è utile tenere a mente una semplice funzione costo da minimizzare. Un possibile esempio è la cosiddetta quadratic cost function.

Consideriamo un singolo campione del training set: esso consisterà in una coppia (x(i), y(i)), dove x(i) è il dato in ingresso, mentre y(i) è il valore

(24)

associato a quello specifico input (ovvero il valore che vorremmo ottenere in uscita dalla rete, la label ). La quadratic cost function, considerata rispetto al singolo campione di training (x(i), y(i)), si può scrivere come:

C(W, b; x(i), y(i)) = 1

2khW,b(x

(i)

) − y(i)k2 (2.3) dove hW,b(x) è l’output restituito dalla rete in funzione dell’ingresso x.

Ov-vero il costo introdotto dalla coppia (x(i), y(i)) è 1/2 dello scarto quadratico fra l’uscita della rete e l’uscita desiderata.

La funzione costo scelta dovrà soddisfare due proprietà fondamentali, ovvero dovrà essere differenziabile ed essere una funzione dell’uscita della rete. Nel caso della funzione di costo quadratica entrambe queste proprietà sono soddisfatte.

In generale poi, la formula della loss viene modificata con l’aggiunta di un termine di regolarizzazione, utile a prevenire situazioni di overfitting. Ad esempio si può aggiungere il termine di weight decay spingendo la rete a mantenere piccoli i valori di tutti i suoi pesi:

C(W, b) = 1 2khW,b(x (i)) − y(i)k2  +λ 2 nl−1 X l=1 sl X i=1 sl+1 X j=1 (wi,j(l))2 (2.4) L’ effetto del secondo termine sul risultato totale è tanto maggiore quanto più è grande il parametro λ.

Una volta selezionata la funzione da minimizzare, va scelto l’algoritmo di ottimizzazione da usare a questo scopo; solitamente la scelta ricade sul gradient descent (o metodo di discesa del gradiente), il quale permette di ricercare la presenza di un minimo locale muovendosi lungo il gradiente della funzione costo C. A questo punto si procede calcolando di volta in volta l’uscita della rete dato l’ingresso somministrato, si valorizza il termine di loss al passo corrente e si procede con l’aggiornamento dei pesi.

Per un approfondimento sull’algoritmo di discesa del gradiente e le sue varianti principali si rimanda all’Appendice A. Per approfondire invece il

(25)

2.4 Addestramento di una rete neurale 25

fenomeno di overfitting, come questo si manifesti nelle reti neurali e come lo si possa limitare si legga l’Appendice B.

2.4.2

Aggiornamento dei pesi

La fase di aggiornamento dei pesi è essenziale per l’apprendimento della rete. Per spiegare brevemente il procedimento definiamo wij(l) il peso che connette il neurone j del livello l -1 al neurone i del livello l e bi il bias sul neurone

i del livello l. Siano inoltre W e b la matrice contenente tutti i pesi e il vettore di tutti i bias, rispettivamente.

Considerando l’algoritmo di discesa del gradiente, con tali notazioni una singola iterazione aggiorna i parametri secondo le formule:

wij(l)= wij(l)− η ∂

∂wij(l)C(W, b) (2.5)

b(l)i = b(l)i − η ∂

∂b(l)i C(W, b) (2.6)

dove C(W, b) è la funzione costo scelta, mentre η è un parametro di propor-zionalità che influisce su quanto verranno cambiati i pesi durante l’iterazione corrente ed è chiamato con il nome di learning rate. Questa operazione viene poi iterata nel tempo, al fine di ottenere la minimizzazione della loss.

Come si potrà approfondire a breve, nella pratica l’operazione di retro-propagazione dell’errore viene eseguita in modo da evitare il calcolo delle derivate parziali nelle equazioni suddette, velocizzando così l’aggiornamento dei pesi.

2.4.3

Forward Propagation

Prendiamo a titolo di esempio la rete stratificata in figura 2.4. Si illustrerà ora un esempio di forward propagation. Come si può vedere dalla figura, abbiamo a che fare con una rete a tre livelli (il numero di layer è nl=3).

(26)

Figura 2.4: Rete stratificata con tre layer.

Identifichiamo ciascun livello k con il nome Lk in modo che L1 sia

l’input-layer e Lnl il layer di output. La rete considerata avrà dunque i seguenti

parametri: (W, b) = (W(1), b(1), W(2), b(2)). Consideriamo inoltre che siano: • w(l)ij il peso della connessione che va dal neurone j del layer l al neurone

i nel layer l+1. Nel nostro caso avremo che 1 ≤ i ≤ 3, 1 ≤ j ≤ 3, 1 ≤ l ≤ 3.

• W(l) corrisponde all’intera matrice costituita dai pesi fra i neuroni del

layer l e il successivo l+1.

• a(l)i corrisponde all’attivazione del neurone i del layer l, ovvero all’usci-ta della sua funzione di attivazione. Nel nostro caso al layer 1 abbiamo a(1)i = x(l)i per 1 ≤ i ≤ 3, ovvero al primo strato le attivazioni sono sostituite dagli ingressi alla rete. Anche qui 1 ≤ l ≤ 3.

• b(l)i è il bias che viene fornito al neurone i dello strato l+1. In figura il vettore dei bias di ciascun livello è rappresentato dai neuroni di colore più scuro. Anche qui abbiamo 1 ≤ i ≤ 3, 1 ≤ l ≤ 3.

(27)

2.4 Addestramento di una rete neurale 27

• sl corrisponde invece al numero di neuroni dello strato l, senza

con-siderare i neuroni introdotti per rappresentare il bias, per 1 ≤ l ≤ 3.

Nell’esempio si ha W(1) ∈ R3x3 e W(2) ∈ R1x3. Si noti che i neuroni di bias

non ricevono nessun input in quanto essi danno una uscita costante per ogni ingresso. Detta f (·) la funzione di attivazione scelta per i singoli neuroni, l’output della rete si può calcolare a partire dalle seguenti equazioni:

a(2)1 = f (w11(1)x1+ w (1) 12x2+ w (1) 13x3+ b (1) 1 ) a(2)2 = f (w21(1)x1+ w (1) 22x2+ w (1) 23x3+ b (1) 2 ) a(2)3 = f (w31(1)x1+ w (1) 32x2+ w (1) 33x3+ b (1) 3 ) hW,b(x) = a (3) 1 = f (w (2) 11a (2) 1 + w (2) 12a (2) 2 + w (2) 13a (2) 3 + b (2) 1 )

In particolare si può notare che, proprio come accennavamo, l’uscita finale della rete corrisponde a una funzione della combinazione lineare dei suoi ingressi, ovvero: hW,b(x) = f (WT~x) = f ( 3 X i=1 wixi+ b) (2.7)

Questo procedimento viene applicato strato per strato in reti con un numero di livelli arbitrario, ed è detto di forward propagation.

2.4.4

Backward Propagation

Si considerino le equazioni per l’aggiornamento dei pesi e dei bias: wij(l)= wij(l)− η ∂

∂wij(l)

C(W, b)

b(l)i = b(l)i − η ∂

(28)

Sebbene il calcolo di una singola derivata parziale sia un procedimento piut-tosto veloce da effettuare, quando abbiamo a che fare con milioni di para-metri potrebbe diventare il collo di bottiglia del processo di ottimizzazione. Per questo motivo è stato ideato un algoritmo che permetta di evitare il cal-colo di tutte le derivate parziali della funzione costo (bisognerebbe fare una derivata per ognuno dei milioni di parametri della rete): appunto l’algoritmo di retro-propagazione dell’errore.

In pratica il processo prevede di calcolare l’errore δ che la rete ha pro-dotto in uscita e di retro-propagarlo allo strato precedente. Questo natural-mente deve essere fatto in modo da "compensare" l’effetto della funzione di attivazione.

Figura 2.5: Processo di formazione dell’errore. In figura W è la matrice dei pesi del livello preso in considerazione, Σ è il nodo sommatore degli ingressi pesati e f (·) la funzione di attivazione. In uscita confronteremo il risultato con la sua label e valuteremo l’errore.

A questo punto l’errore retro-propagato viene moltiplicato per la mappa di attivazione (trasposta) ottenuta dall’uscita dei neuroni durante la forward propagation; lo scopo è di calcolare quanto ciascuna connessione deve essere modificata in misura del suo contributo alla formazione dell’errore a valle dello strato.

wij(l)= wij(l)− η ∗ al−1k δjl (2.8) b(l)i = b(l)i − η ∗ δl

j (2.9)

In sostanza invece che calcolare le derivate parziali si sfrutta la conoscenza della mappa di attivazione calcolata durante la fase di forward propagation, abbattendo l’onere computazionale.

(29)

2.5 Hyper-parameters di una rete neurale 29

Se denotiamo con L l’ultimo strato, a questo punto saranno noti tutti gli errori parziali di ciascun neurone al livello L-1. Noti questi errori parziali si può retro-propagare ognuno di essi al livello precedente, e così via fino all’input layer.

2.5

Hyper-parameters di una rete neurale

Come già discusso nella sezione 2.4.2, l’addestramento di una rete neurale è un problema che viene risolto in maniera iterativa, ricercando un minimo locale della funzione costo prescelta, sperando di ottenere risultati simili al caso di minimo assoluto.

In questo contesto esistono alcuni parametri che influiscono più di altri "ad alto livello" sulla ricerca del minimo: chiameremo questi ultimi con il nome di iper-parametri del modello e li sceglieremo opportunamente in modo da velocizzare la discesa del gradiente verso la soluzione finale del problema. Come si renderà evidente nel corso dell’elaborato esistono diversi iper-parametri da selezionare; fra di essi, il learning rate è senza dubbio di grande importanza, così come il tipo di ottimizzatore scelto. Per un approfondimen-to si rimanda all’Appendice A.

2.6

Reti neurali convolutive

Le reti neurali convolutive (CNN) sono una tipologia di reti stratificate e addestrate mediante paradigma di apprendimento supervisionato. Queste reti si ispirano all’organizzazione della corteccia visiva animale ed effettuano l’assunzione che gli input abbiano una precisa struttura di dati, come ad esempio un’immagine nel nostro caso.

Anche le CNN sono caratterizzate dalla presenza di un insieme di pa-rametri allenabili (weight e bias); ogni neurone riceve una somma pesata

(30)

di ingressi e risponde secondo una funzione di attivazione, tipicamente non lineare. L’insieme dei layer di una CNN porta a un’architettura composta di tre blocchi principali:

• uno strato iniziale (input layer ) in cui verrà introdotta l’immagine da analizzare;

• uno o più strati interni (hidden layers) che propagano le informazioni lungo la rete estraendo man mano features più astratte e significative; • uno strato di uscita (output layer ) che restituirà il risultato dell’analisi

dell’input.

Lo scopo di questa pila di strati è di mappare ciascun ingresso su una partico-lare uscita, che rappresenta la probabilità che tale ingresso ha di appartenere ad una determinata classe.

2.7

Struttura delle CNN

A differenza delle reti neurali stratificate con un’architettura fully-connected (FC), i layer di quelle convolutive hanno i neuroni organizzati in tre dimen-sioni: larghezza, altezza e profondità. Inoltre nelle CNN i neuroni di un layer sono connessi solo ad una piccola regione del layer precedente, invece che a tutti i neuroni (come accade in un’architettura FC). Questo permetterà di abbattere notevolmente il numero di pesi da aggiornare e di velocizzare le operazioni di addestramento della rete.

2.8

Principali tipologie di layer di una CNN

Esistono diversi strati che si possono implementare in una CNN, ciascuno con una specifica funzione. Qui di seguito vengono riportate le tipologie più comuni e quelle utilizzate in questo lavoro di tesi.

(31)

2.8 Principali tipologie di layer di una CNN 31

2.8.1

Convolutional layer

Questo è il tipo di layer principale e il suo compito è l’estrazione delle features salienti in grado di caratterizzare l’ingresso.

Fra i suoi parametri strutturali va indicato il numero di filtri da im-plementare al suo interno; più filtri si scelgono più sarà grande il numero di feature descriventi l’ingresso che la rete può apprendere in questo livel-lo. Vanno poi definite anche le dimensioni dei filtri e se questi si devono far traslare su tutta l’immagine oppure operandone un sottocampionamento (parametro di stride).

Ogni filtro è tridimensionale e la sua terza dimensione corrisponde sempre al numero di canali in ingresso al layer.

Durante la forward propagation si trasla (operazione di convoluzione) ciascun filtro lungo la larghezza e l’altezza del volume di input, producendo la mappa di attivazione (o anche detta feature map o activation map) bidi-mensionale relativa a quel filtro. Man mano che il kernel si sposta lungo le dimensioni della matrice, si effettua un prodotto scalare, fra i valori del filtro e quelli della porzione della matrice al quale è applicato. Se abbiamo a che fare con k filtri otterremo k feature map in uscita, che impilate formeranno il volume di output da dare in ingresso allo strato successivo.

L’obiettivo della rete sarà quello di apprendere i coefficienti dei filtri da applicare in modo da creare un’attivazione in concomitanza con la presenza di una qualche feature in una determinata regione spaziale dell’input.

A tal proposito citiamo che spesso invece che l’operazione di convoluzio-ne vieconvoluzio-ne effettuato il calcolo della cross-correlazioconvoluzio-ne; cioè spesso per motivi implementativi si preferisce non ribaltare il kernel del filtro da far trasla-re lungo l’immagine: basterà infatti che la trasla-rete apptrasla-renda i coefficienti in maniera speculare per ottenere il medesimo risultato.

A questo punto il volume di uscita di un layer convolutivo è costituito dall’incolonnamento di tutte le activation map calcolate durante il filtraggio.

(32)

Ciascun elemento di questo volume può essere interpretato come l’output di un neurone che osserva solo un piccola regione dell’input e che condivide i suoi parametri con gli altri neuroni nella stessa feature map (che è ricavata dall’applicazione dello stesso filtro).

In figura 2.6 viene rappresentato sinteticamente lo schema di funziona-mento di una rete composta da più strati convolutivi. Come si può vedere ciascun layer convolutivo trasforma un volume 3D di input in un volume 3D di output. Man mano che dal primo strato l’informazione si propaga verso l’uscita della rete, ciascuno strato contribuisce ad estrarre features sempre più astratte, fin quando all’ultimo livello si effettua la classificazione dell’immagine.

Figura 2.6: A sinistra: una classica rete neurale a 3 livelli con architettura stratificata FC. A destra: una rete costituita da strati convolutivi arrangia i suoi neuroni in tre dimensioni e da come uscita un vettore di score.

Receptive field

In questo contesto va introdotto il concetto di connettività locale, o di re-ceptive field : in pratica è come se ciascun neurone vedesse una porzione limitata del volume di input e desse in uscita una risposta relativa solo a questo campo di vista (fig. 2.7). Lo scopo quindi non è tanto quello di in-dividuare spazialmente una ben determinata feature, quanto verificare che essa sia presente o meno nell’ingresso.

(33)

2.8 Principali tipologie di layer di una CNN 33

Figura 2.7: Concetto di receptive field e depth column. Come si vede un neurone (cerchio blu sulla destra) osserva solo una porzione del volume di input.

Bisogna considerare infine come l’utilizzo di un receptive field limitato faccia diminuire considerevolmente il numero di pesi da addestrare rispetto al caso delle architetture fully connected, dove ogni neurone ha un peso che lo collega ad ogni uscita dello strato precedente.

Organizzazione dello spazio

È opportuno approfondire alcuni parametri utili per il dimensionamento degli strati convolutivi. I tre parametri che seguono determinano la dimen-sione del volume di output di un livello e dunque dell’input da aspettarsi nell’eventuale livello successivo.

• Depth del volume di output: è un parametro che controlla il numero di neuroni del layer convolutivo che sono connessi alla stessa regione dell’input. L’insieme di questi neuroni viene detto depth column. Un esempio è l’insieme di neuroni visto in figura 2.7 sulla destra. In pratica la depth column è data dal numero di filtri che usiamo nel livello convolutivo.

• Il parametro di stride invece indica il passo con cui spostare il recepti-ve field lungo ciascun piano dell’input. Ad esempio se si ha uno stride pari a 1 ci sarà una depth column di neuroni ogni unità spaziale della matrice di input.

(34)

In sostanza lo stride riflette il passo di sottocampionamento nell’opera-zione di convolunell’opera-zione: l’utilizzo di uno stride maggiore può portare ad una riduzione dell’overlapping fra receptive field consecutivi e a volu-mi di uscita più piccoli; senza contare che sottocampionando divolu-minuirà l’onere computazionale.

• Infine va considerato lo zero-padding. L’ operazione di convoluzione matematicamente richiederebbe che venga effettuato uno zero-padding lungo i bordi del volume di input, assumendo che all’infuori della fine-stra di osservazione (la matrice di input) l’ingresso valga zero. Tuttavia a volte nelle reti si preferisce non effettuare questa assunzione e valu-tare il risultato del filtraggio solo dove conosciamo veramente i valori dell’ingresso, effettuando la cosiddetta convoluzione di tipo valid. In pratica si decide di scartare parte dell’informazione relativa alle regioni di bordo assumendo che sia in un certo senso "incompleta".

Questo comporta la riduzione della dimensione dell’input: ad esempio in reti CNN particolarmente profonde a volte si adotta la strategia di effettuare n convoluzioni successive senza padding, ritagliando di stra-to in strastra-to il bordo della volume in ingresso al nuovo livello, fino a ridurre l’intera immagine di input a un unico pixel in uscita dalla rete.

Utilizzo di layer convolutivi in una rete CNN

Di solito una CNN possiede una serie di layer convolutivi: i primi di questi, partendo dall’input layer ed andando verso l’output layer, servono per ot-tenere feature di basso livello, come ad esempio linee orizzontali o verticali, angoli, contorni vari.

Più si prosegue verso l’output layer della rete, più le feature diventa-no di alto livello, ovvero rappresentadiventa-no figure anche piuttosto complesse in maniera sempre più astratta.

(35)

2.8 Principali tipologie di layer di una CNN 35

In sostanza, dunque, più layer convolutivi possiede una rete e più feature dettagliate essa riesce ad elaborare, a discapito però dell’aumento del numero di parametri da allenare (e di conseguenza sia dei tempi di calcolo, sia del rischio che la rete faccia overfitting).

2.8.2

ReLU layer

ReLU è l’abbreviazione di "Rectified Linear Units". Questo layer è carat-terizzato dall’applicazione della funzione di attivazione di tipo ReLU, de-terminata dalla formula f (x) = max{0; x} e mostrata in figura 2.8. È una funzione di attivazione ampiamente utilizzata [13] in quanto, ad esempio a differenza della tangente iperbolica o della sigmoide, non presenta regioni di saturazione nella sua dinamica e questo evita alla rete di ristagnare in una situazione in cui la variazione degli input agisce pochissimo sulla variazione degli output e in cui la rete apprende in maniera estremamente lenta (il gradiente ristagna).

Figura 2.8: Alcune funzioni di attivazione della famiglia ReLU.

A parte il vantaggio di evitare le regioni di saturazione, con la ReLU si introduce sparsity nella matrice contenente le attivazioni dei neuroni, che comincia a presentare diversi zeri al suo interno. Ciò facilita e velocizza il meccanismo di retro-propagazione degli errori in quanto verranno analizzati soltanto quei tragitti in cui un neurone ha contribuito alla formazione del-l’errore a valle (ovvero dove il neurone era attivo e contribuiva attivamente

(36)

alla formazione della feature map successiva), mentre un neurone che da output a zero è come se fosse spento o disattivato. Inoltre avere matrici più "sparse" aiuta a far sì che piccole variazioni della feature map in uscita da un layer non si riflettano in variazioni significative nei livelli più a valle.

Un potenziale svantaggio della ReLU è che quando il neurone non è attivo ha sempre gradiente zero. Questo potrebbe far sì che neuroni che non sono attivi inizialmente non diventino mai attivi poichè ottimizzatori basati sul metodo del gradiente non aggiorneranno mai i loro pesi [14]. Per questo motivo esistono anche delle varianti della funzione ReLU che evitano di dare uscite completamente nulle; alcune sono illustrate in figura 2.8.

2.8.3

Pooling layer

Questi layer vengono utilizzati spesso a valle di layer di tipo convolutivo. Il loro scopo principale è quello di ridurre la dimensione dell’input al layer successivo e di spingere la rete alla produzione di features più astratte.

Un altro scopo per cui si effettua l’operazione di pooling è quello di otte-nere un’invarianza traslazionale dell’immagine: infatti con il pooling piccole traslazioni dell’ingresso non si riflettono in modifiche rilevanti nelle feature estratte a valle.

Esistono diverse strategie di pooling; le più comuni sono l’average poo-ling (o anche detto L2 poopoo-ling) [15], in cui si estrae la radice quadrata della somma dei quadrati dei pixel osservati, e il max pooling [16, 17, 18], in cui si estrae il valore massimo fra i pixel nella finestra di osservazione. Naturalmente se nel secondo caso la compressione comporta la perdita di informazione più radicale (i pixel vengono presi oppure no), nel caso del L2 pooling si condensa l’informazione di tutti i pixel in un unico pixel; entrambi gli approcci sono largamente utilizzati. Esistono comunque dei lavori teorici che danno delle linee guida su che tipo di pooling bisognerebbe utilizzare nelle varie situazioni [17].

(37)

2.8 Principali tipologie di layer di una CNN 37

Una rappresentazione grafica del processo di pooling e di come esso com-porti sempre un processo di sottocampionamento si può vedere nelle figure 2.9 e 2.10.

Figura 2.9: Esempio di applicazione di max pooling con filtri 2x2 e stride di 2 su una matrice 4x4. Si noti l’effetto di sottocampionamento.

Figura 2.10: Pooling e sottocampionamento.

2.8.4

Batch Normalization layer

L’addestramento delle Deep Neural Network può essere reso complicato da un ulteriore processo detto Internal Covariate Shift. Esso corrisponde

(38)

al cambiamento della distribuzione delle attivazioni della rete dovuto alla modifica dei suoi parametri durante la fase di addestramento.

Le varianti più comuni dell’algoritmo di discesa del gradiente prevedono la ricerca del minimo della funzione costo fornendo alla rete di volta in volta solo piccole porzioni del training set (dette minibatch) scelte casualmente fra i campioni a disposizione. Tuttavia questo fa sì che la rete veda minibatch sempre diversi e la spinge ad adattare di continuo i propri pesi per rispondere meglio all’ultima porzione di campioni fornita.

In questo contesto è evidente come una maggiore omogeneità del training set al contrario permetta alla rete di trovare più agilmente i pesi che vadano bene per tutti i suoi ingressi. Infatti è noto [20] come l’addestramento di una rete converga più velocemente se i suoi ingressi sono sottoposti a un processo di sbiancamento − ad esempio centrandoli su un valor medio nullo e imponendo una varianza unitaria − e se sono decorrelati.

A partire da quanto osservato si può intuire come la rete potrebbe trarre un beneficio dall’applicazione dell’operazione di sbiancamento anche sugli ingressi degli strati interni, che mantenga la distribuzione degli input di ogni livello più omogenea e rimuova gli effetti dell’internal covariate shift.

Aggiungiamo inoltre che nel caso in cui si utilizzino funzioni di attiva-zione come la tangente iperbolica o la sigmoide, può sorgere il cosiddetto problema del vanishing gradient [21]: questo è un problema che sorge in concomitanza dei neuroni di uno strato i cui input abbiano valori molto elevati, in prossimità della soglia di saturazione della loro funzione di attiva-zione. In queste situazioni anche grandi variazioni dell’ingresso producono piccole, se non trascurabili, variazioni dell’uscita, con conseguente rallenta-mento del processo di apprendirallenta-mento del neurone stesso. In particolare si può dimostrare analiticamente come al crescere del numero di livelli diventi sempre più rilevante questo tipo di problema. Per questo spesso nelle re-ti profonde trovano impiego ulteriori livelli che hanno come unico scopo la normalizzazione dell’uscita dello strato corrente − appunto i layer di batch

(39)

2.8 Principali tipologie di layer di una CNN 39

normalization − che riscalano le attivazioni in modo da farle rientrare nella regione di linearità della funzione di attivazione. Un’alternativa, comunque, può essere l’utilizzo di funzioni che non presentano regioni di saturazione, come ad esempio le ReLU.

Infine accenniamo come la Batch Normalization sembri avere effetti bene-fici sulla ricerca di feature in grado di generalizzare il modello; cioè sembra avere un effetto di regolarizzazione sulla rete. Addirittura in certi casi ci permette di ridurre di molto l’utilizzo del drop-out, se non di rimuoverlo completamente [22].

In definitiva, la Batch Normalization permette di effettuare un addestra-mento molto più veloce, rendendo possibile l’utilizzo di parametri di learning rate più elevati ed effettuando una regolarizzazione del modello (che ridu-ce la neridu-cessità di adottare tecniche come il drop-out [22]). Inoltre ci dà la possibilità di usare efficientemente anche funzioni di attivazione con regio-ni di saturazione, evitando di rimanere bloccati in regioregio-ni di ristagno del gradiente.

2.8.5

Fully-connected layer

Questa tipologia di strato è analogo agli strati di una classica rete neurale di tipo fully-connected ed è lo strato che ha lo scopo di effettuare ragionamenti di alto livello [23, 24].

Qui ciascun neurone è connesso a tutti i neuroni del layer precedente e ne pesa le attivazioni tramite i suoi weight. Tale layer, a differenza degli strati convolutivi, non gode della proprietà di connettività locale: un FC layer infatti è connesso all’intero volume di input e quindi, come si può immaginare, si avranno moltissime connessioni.

Date le loro caratteristiche questi strati vengono generalmente usati come ultimi strati di una rete convolutiva; il concetto è che in uscita alla rete, al momento dell’analisi delle feature map finali, è importante cercare di carpire

(40)

tutta l’informazione disponibile in ingresso al FC layer. Anche per questo tali livelli sono caratterizzati in genere dalla presenza di un gran numero di neuroni da addestrare e sono di conseguenza i più suscettibili al fenomeno di overfitting. Per tale motivo durante l’addestramento su di essi spesso si attua la tecnica del drop-out come metodo di regolarizzazione (Appendice B).

Solitamente si utilizza più di un layer FC in serie e l’ultimo di essi avrà un numero di uscite pari al numero di classi presenti nel data set. I k valori finali saranno infine dati in pasto all’output layer, il quale, tramite una specifica funzione probabilistica, come ad esempio la funzione di softmax regression, effettuerà la classificazione.

Annoveriamo infine una strategia implementativa che ci permette di so-stituire un FC layer con uno strato di tipo convolutivo. A seguito dell’e-strazione di features dai livelli interni alla rete, il tensore finale in ingresso al FC layer diventa una matrice kxNxN. In questo caso, invece che fornire i pixel del tensore a una barriera di neuroni (FC layer), si può mettere a valle un altro strato convolutivo con k filtri di dimensione NxN da ricavare. In pratica la rete apprenderà i coefficienti dei filtri invece che i pesi delle connessioni con un classico FC, dando in definitiva lo stesso risultato, ma diminuendo i tempi di calcolo [25].

2.8.6

Output layer

L’ultimo livello di una CNN è detto output layer. Qui avviene sempre la fase di classificazione dell’ingresso, il quale viene assegnato a una classe piuttosto che a un’altra mediante l’utilizzo di un classificatore.

Ci sono diversi classificatori possibili: il più comune è l’operatore di softmax, ma esistono reti in cui le features finali vengono classificate dal noto SVM oppure da un Random Forest, o altro ancora.

(41)

2.9 Considerazioni finali sulle CNN 41

2.9

Considerazioni finali sulle CNN

Come ormai sarà evidente, la gestione di tutti questi parametri (e ce ne sono molti altri) è tutt’altro che semplice. Esistono degli strumenti di ricerca automatica, come quelli che sfruttano la cosiddetta strategia del grid search, ma sono molto lenti e generalmente si fa molto prima scegliendo gli iper-parametri affidandosi al proprio intuito e all’esperienza.

Inoltre in generale non esiste mai una strategia sicuramente migliore di un’altra e molto spesso non è possibile confrontare due reti diverse, soprat-tutto se queste sfruttano data set diversi. Invece esistono sempre diverse strategie possibili e non si può mai sapere a priori quale sia migliore di un’altra per il nostro scopo; non resta che provare e riprovare.

Per concludere sottolineiamo come sia ragionevole pensare che addestran-do la rete con training set sempre più numerosi e variegati sia sempre possi-bile ottenere un margine di miglioramento. Il punto è comprendere quanto valga la pena "accanirsi" con una particolare architettura piuttosto che la-sciar perdere e passare ad altre soluzioni o ad altri problemi. In maniera più romantica potremmo dire che addestrare una rete è un processo simile alla stesura un libro: non si finisce mai veramente di scriverlo, a un certo punto, semplicemente, lo si abbandona.

(42)
(43)

Capitolo 3

Pre-processing dell’immagine

Le dimensioni delle immagini mammografiche possono variare da 1914x2294 a 4095x5625 pixel. Per ridurre il carico di lavoro computazionale l’approccio seguito prevede una fase di pre-processing che consiste nell’identificare le macroaree contenenti pixel con caratteristiche tali da essere etichettabili co-me calcificazioni mammarie. Nelle aree identificate verranno poi segco-mentate le microcalcificazioni mediante una rete neurale convolutiva.

Partendo dunque dal metodo illustrato da Arodz et al. [27], si è genera-lizzato l’algoritmo proposto con lo scopo di poter identificare le macroaree di cui sopra su tutte le tipologie di mammografie. Alla fine del processo il numero di pixel che verranno analizzati dalla rete neurale convolutiva con lo scopo di segmentare le microcalcificazioni risulterà ridotto a circa il 20% del totale.

Per favorire il processo di labeling all’operatore esperto è stata sviluppata una graphical user interface (GUI) che permetterà all’utente sia di proces-sare l’immagine mammografica sia di visualizzare i risultati presentati dal sistema di machine learning. Al suo avvio l’applicazione sviluppata mostra una semplice interfaccia (fig. 3.1) che permette all’operatore esperto di sele-zionare l’area della mammella all’interno dell’immagine. Questa operazione ci permette di rimuovere gran parte del background, che non contiene

(44)

in-formazioni utili ai fini diagnostici, e di ridurre così ulteriormente il carico computazionale.

Figura 3.1: In figura è possibile vedere una schermata della user interface e come sia possibile selezionare la regione su cui effettuare l’analisi mediante utilizzo del cursore.

Premendo il pulsante "Find calcifications" si può cominciare la fase di estrazione delle regioni di interesse (ROI) mediante la serie di passaggi che vedremo nei prossimi paragrafi. In breve, seguiranno:

• una fase di denoising per il miglioramento qualitativo dell’immagine; • il miglioramento locale del contrasto della mammografia tramite

fil-traggi passa-banda e un filtro puntuale di tipo esponenziale;

• l’applicazione di una soglia e l’estrazione della maschera delle regioni in cui possano giacere le microcalcificazioni (le ROI).

3.1

Contrasto dell’immagine mammografica

Il contrasto di una immagine di mammografia spesso è povero, specialmente in tessuti ad alta densità e ricchi di ghiandole (fig. 3.2). In questi casi è

(45)

3.1 Contrasto dell’immagine mammografica 45

difficile valutare la presenza di microcalcificazioni anche per un radiologo esperto.

Figura 3.2: Esempio di mammelle con diverse densità. Da sinistra verso destra si può osservare l’aumento della porzione di tessuto ghiandolare all’interno della mammella.

Nella fase di pre-processing è necessario ottimizzare il contrasto per con-durre una ricerca efficace delle microcalcificazioni. Infatti, la fase finale delle operazioni di pre-processing prevederà l’applicazione di una soglia atta ad estrarre la maschera contenente le macroaree da analizzare. Sperimental-mente si dimostra che il valore di soglia che permetterà l’estrazione di tutte le aree di interesse si attesta attorno al 20% del range di valori di grigio assunti dall’immagine.

Sfruttando i campi dicom contenenti le informazioni di WindowCenter e WindowWidth l’algoritmo limiterà il range di livelli di grigio alla suddetta finestratura con l’obiettivo di incentrare l’analisi sulle variazioni di contrasto nello specifico range.

Nel caso in cui tali campi dicom non fossero valorizzati, resta comunque la possibilità di effettuare un aggiustamento del contrasto premendo il pulsante "Adjust contrast" nell’interfaccia utente. Questo essenzialmente esegue due operazioni:

• utilizza un modello Gaussian Mixture per individuare e rimuovere il picco del fondo dall’immagine;

(46)

• effettua la moltiplicazione puntuale per una tangente iperbolica ed espande così la dinamica dell’immagine nella regione corrispondente a livelli di grigio più bassi, ovvero dove si collocano le microcalcificazioni. Gli effetti qualitativi delle due operazioni descritte si possono osservare nell’esempio illustrato nelle figure 3.3 e 3.4.

Figura 3.3: Applicazione del modello Gaussian Mixture e individuazione del picco relativo al fondo. Applicazione della soglia e rimozione del picco.

Figura 3.4: Espansione dell’istogramma nella regione relativa ai livelli di grigio più bassi, dove si trovano le microcalcificazioni.

(47)

3.2 Ricerca delle microcalcificazioni 47

3.2

Ricerca delle microcalcificazioni

In un’immagine mammografica le microcalcificazioni appaiono come punti ad elevata intensità rispetto al loro background. Nella pratica questi pun-ti sono associabili a livelli di grigio più bassi nell’istogramma, in quanto rappresentativi di una regione di maggiore assorbimento dei raggi X.

Graficando il profilo delle intensità di grigio che attraversa il diametro di una microcalcificazione si osserva un innalzamento locale dell’intensità lungo tale sezione (fig. 3.6).

Figura 3.5: Esempio di microcalcificazioni. A sinistra: una microcalcificazione isolata; a destra: un cluster di microcalcificazioni di varie geometrie e intensità.

Figura 3.6: Esempio di andamento del livello di grigio lungo il profilo della microcalcificazione nella figura di sinistra.

(48)

Il profilo ottenuto fa intuire come ci sia la possibilità di individuare la regione mediante l’utilizzo di filtri passa-banda. Tuttavia, la variabilità delle dimensioni e della geometria delle microcalcificazioni rappresentano carat-teristiche dell’immagine che vanno ad inficiare il corretto funzionamento di tali filtri.

Per rendere il filtraggio immune da variazioni di forma e intensità si procede con:

• impiego di filtraggi consecutivi operato con filtri di dimensione e orien-tamento diversi;

• identificazione delle posizioni relative ai valori massimi ottenuti nelle immagini filtrate.

Nonostante dia buoni risultati per la fase di pre-processing questo approc-cio è piuttosto oneroso a livello computazionale, soprattutto date le grandi dimensioni delle immagini mammografiche, e non sempre risulta efficace.

Perciò, è stato scelto di seguire un approccio diverso [27], come si illu-strerà nel seguito. In particolare verranno affrontate:

• una fase di pre-filtraggio dell’immagine; • una fase di denoising;

• una fase di contrast enhancement ;

• la fase di estrazione delle ROI da analizzare con la rete neurale.

3.2.1

Pre-filtraggio dell’immagine

Partendo da un filtraggio mediano con un kernel 3x3 su tutta la mammogra-fia si passa all’applicazione di un filtraggio ad-hoc sull’immagine risultante I0, effettuato secondo i passaggi a seguire.

(49)

3.2 Ricerca delle microcalcificazioni 49

Il filtro ad-hoc è stato costruito come suggerito in [27] a partire dallo studio del tipico andamento dei livelli di grigio in prossimità di una micro-calcificazione e può essere osservato in figura 3.7. Il profilo del filtro è stato utilizzato per la generazione del filtro bidimensionale in figura.

In primo luogo l’immagine I0 viene filtrata con il filtro bidimensionale

per la produzione dell’immagine I1. I1 viene poi ulteriormente filtrata con

il filtro 2D per ottenere I2. Infine viene calcolata l’immagine I3 a partire da

I0 applicando il filtro monodidimensionale su tutte le sue righe e poi sulle

sue colonne.

Come risultato abbiamo ottenuto tre immagini con contrasto aumentato in corrispondenza delle lesioni: filtrata con il filtro 2D una volta (I1), filtrata

con il filtro 2D due volte (I2) e filtrata con il filtro 1D (I3). Le tre immagini

ottenute sono quindi moltiplicate fra di loro pixel per pixel per produrre l’immagine finale IF 1 (pixel-wise multiplication).

La moltiplicazione pixel-wise preserva solo quelle regioni sospette che sono presenti in tutte e tre le immagini, riducendo il rumore. In questo contesto l’utilizzo di filtri 1D ci aiuta a rintracciare le microcalcificazioni con forme irregolari, prive di simmetria radiale.

Figura 3.7: Filtro ad-hoc utilizzato per le operazioni di pre-filtraggio dell’immagine.

(50)

esposto, mentre figura 3.9 si puó vedere l’effetto dei suddetti passaggi su una porzione dell’immagine.

Figura 3.8: Operazioni di pre-filtraggio dell’immagine e formazione di IF 1.

Figura 3.9: Operazioni di pre-filtraggio applicate su una piccola porzione esemplificativa dell’immagine.

3.2.2

Operazioni di denoising

L’applicazione dei precedenti filtri produrrà IF 1, un’immagine

caratteriz-zata da microcalcificazioni messe in risalto rispetto al background locale accompagnate da un rumore diffuso. Perciò l’operazione successiva è quella

(51)

3.2 Ricerca delle microcalcificazioni 51

di denoising che avrà come obiettivo la rimozione del rumore, mantenendo inalterate le aree delle microcalcificazioni.

La rimozione del rumore è effettuata in accordo ai seguenti passaggi. • Sottrazione all’immagine della sua versione mediata con un filtro

me-diano 4x4, per ottenerne una versione ad alta frequenza IHF.

• Operazione di soglia per produrre una maschera binaria dei punti ad alta frequenza e ad alta intensità (MH), in cui sono presenti le possibili

microcalcificazioni. La soglia è stata posta al 10% del range di livelli di grigio presenti nell’immagine.

• Modifica della maschera secondo la relazione:

MH0 = MH − BinaryOpening(MH, 1) (3.1)

dove BinaryOpening(·) è la funzione di apertura che rimuove da MH

tutti gli elementi con raggio minore di 1 pixel. Questo fa sì che riman-gano solamente piccoli punti isolati (plausibilmente una microcalcifi-cazione dovrebbe generare un gruppo di pixel ad alta intensità e non corrispondere quindi a un pixel isolato).

• Applicazione di un filtro mediano 3x3 in corrispondenza dei pixel ri-masti nella maschera (corrispondenti a rumore ad elevata intensità di segnale) e produzione dell’immagine risultante IF 2.

In figura 3.10 sono illustrate schematicamente le operazioni di denoining suddette.

3.2.3

Aumento del contrasto

I passi successivi della fase di pre-processing consistono in un aumento del contrasto mediante metodi basati sulla trasformata wavelet discreta 2D.

(52)

Figura 3.10: Operazioni di denoising e formazione del risultato IF 2.

La trasformata wavelet bidimensionale decompone l’immagine in un set di coefficienti di approssimazione e tre set di coefficienti di dettaglio (lungo le direzioni orizzontale, verticale e obliqua). I coefficienti di approssimazione contengono le componenti di larga scala dell’immagine (e quindi quelle a bassa frequenza), mentre quelli di dettaglio corrispondono ai fenomeni di piccola scala (e quindi sono relativi alle regioni ad alta frequenza, lungo la rispettiva direzione).

Considerando che in una mammografia le microcalcificazioni appaiono come piccole e luminose protrusioni, ci aspetteremmo che la decomposizione wavelet contenga tali regioni per lo più nelle componenti di dettaglio.

Sulla base di questa osservazione si costruisce una matrice di enhance-ment Me che ci aiuti ad enfatizzare le microcalcificazioni e al contempo a

(53)

3.2 Ricerca delle microcalcificazioni 53

sopprimere il tessuto normale.

Dopo aver subito le operazioni di denoising, la mammografia pre-filtrata va incontro a un filtraggio mediano con kernel 3x3 (IF 3). L’immagine

risul-tante è soggetta a un filtraggio wavelet su 5 livelli utilizzando la wavelet di Daubechies di quarto ordine [28]. Dopo la decomposizione l’immagine viene ricostruita azzerando la componente di approssimazione a livello inferiore.

A questo punto l’immagine risultante Ir (che chiameremo risultato

del-l’operazione di wavelet enhancement ) è utilizzata per creare la matrice di enhancement del contrasto Me in accordo alla formula seguente:

Me(i, j) = et∗Ir(i,j) (3.2)

dove (i, j) sono le coordinate del pixel corrente e il parametro t > 0 controlla la forza dell’enhancement.

Prima di essere applicata alla mammografia la matrice viene normalizza-ta nell’intervallo [0, 1]. Dopodiché l’aumento del contrasto è ottenuto molti-plicando pixel per pixel i valori dell’immagine IF 2 con quelli della maschera

Me . Dunque per ogni coppia di coordinate (i, j) si effettua il prodotto:

Ie(i, j) = IF 2(i, j) ∗ Me(i, j) (3.3)

Chiameremo Ie il risultato dell’operazione della fase di exponential

enhance-ment.

In figura 3.11 sono illustrate schematicamente le operazioni di ottimiz-zazione del contrasto, mentre i risultati delle operazioni di wavelet ed ex-ponential enhancement sono illustrati in figura 3.12. Si noti dalla figura come il procedimento abbia portato ad un importante aumento di inten-sità in corrispondenza delle lesioni, che appaiono ben più bianche del loro background.

(54)

Figura 3.11: Operazioni di aumento del contrasto e formazione del risultato finale Ie.

(55)

3.2 Ricerca delle microcalcificazioni 55

3.2.4

Estrazione della maschera

Una volta che le lesioni sono state enfatizzate dal sistema, applicando una operazione di soglia sull’immagine Ie si puó estrarre dall’immagine la

ma-schera dei pixel da analizzare con la rete neurale. La soglia scelta cor-risponderà ad una frazione th del range di livelli di grigio contenuti nel-l’immagine, tale da assicurarci sperimentalmente di includere sempre le microcalcificazioni con un buon margine di sicurezza.

Al fine di evitare che l’algoritmo escluda microcalcificazioni dall’analisi si produrrà anche un elevato numero di falsi positivi. Il risultato della soglia puó essere osservato in figura 3.13.

Figura 3.13: Risultato dell’applicazione della soglia sull’immagine ottenuta.

Per assicurarci un ulteriore margine di sicurezza sull’inclusione di tutte le microcalcificazioni nella maschera ottenuta (MC) sono state effettuate le

seguenti operazioni:

MC = BinaryClosing(MC, 2) (3.4)

MC = BinaryDilation(MC, 2) (3.5)

ovvero sono state applicate le operazioni di closing prima e dilation poi sulla maschera, ciascuna con un raggio di 2 pixel.

(56)

Il risultato delle operazioni e la maschera finale si possono osservare in figura 3.14.

Figura 3.14: Effetto delle operazioni di closing e dilation sulla maschera finale.

3.2.5

Scelta del parametro di enhancement e della

so-glia

Quando si hanno più parametri da tunare, la strategia tipicamente adottata per scegliere il loro valore consiste nell’utilizzo del grid search. Il parametro di enhancement t (formula 3.2) e la soglia finale th usata per l’estrazione della maschera (sezione 3.2.4) sono stati definiti con tale metodica.

Nella strategia del grid search l’utente definisce un set finito di valori da esplorare per ognuno dei parametri. Viene testato il procedimento con una particolare combinazione di valori e si stima una funzione costo opportuna. La scelta del set di valori ottimo viene fatta in base alla capacità di abbattere maggiormente tale funzione.

Poiché nel nostro caso esiste la necessità di non perdere alcuna calcifica-zione e al contempo di ridurre il più possibile il numero di pixel da analizza-re successivamente con la analizza-rete neurale, sceglieanalizza-remo quel set di parametri in

(57)

3.2 Ricerca delle microcalcificazioni 57

grado di darci la maggiore sensitivity possibile lasciando al contempo il più basso possibile il numero di falsi positivi.

La sensitivity viene definita come: sens = T P

T P + F N (3.6)

dove T P sono i veri positivi e F N i falsi negativi. In pratica l’indice misura la frazione di casi positivi (cioè i pixel appartenenti a una microcalcificazione) individuati sul totale.

Il problema principale del grid search risiede nella sua complessità com-putazionale, che cresce esponenzialmente con il numero di parametri da tro-vare. Se abbiamo m parametri, ciascuno esplorato su n valori, allora la complessità diventa O(nm). Sfortunatamente, a causa dell’andamento espo-nenziale, nonostante il grid search sia altamente parallelizzabile (essendo le prove con ciascun set di parametri indipendenti l’una dall’altra), spesso il risparmio di tempo ottenuto con la forte parallelizzazione dei calcoli non è sufficiente ad ottenere soluzioni in tempi brevi. In questo contesto citiamo un altro approccio in grado di convergere molto prima quando si effettua il tuning di un elevato numero di parametri liberi, ovvero il random search.

(58)

Riferimenti

Documenti correlati

[r]

Usando la definizione, si determinino se possibile la derivata destra e la derivata sinistra di f in 0, e si determini c in modo che f sia derivabile in 0.. Si dia una

Riportare un insieme di passaggi sufficiente per motivare le affermazioni via via fatte.. Tempo:

In vitro and in vivo studies have proven the therapeutic potential of placenta-derived cells and, in particular, of MSC isolated from different regions of human placenta such as

Tra i problemi del Calcolo delle Variazioni che hanno tra le incognite un'iper- superficie K di }Rn (n ~ 2), uno tipico è stato proposto, nell'ambito della Visione Computerizzata,

In base alle regole sul segno dei minori, quando una forma quadratica in R 2 risulta semidefinita positiva.

L’obiettivo di questo studio osservazionale è determinare l’impatto di un programma di 12 settimane di riabilitazione cardiovascolare basato sulla combinazione di esercizio