• Non ci sono risultati.

Esiste un ulteriore iper-parametro oltre al learning rate che ci può aiutare a velocizzare la ricerca del minimo, esso prende il nome di momentum [36].

Il metodo del momento prevede di non considerare solamente le informa- zioni relative al gradiente della funzione costo al passo corrente, ma di tener conto anche di come il gradiente sta evolvendo nel tempo. In termini mate- matici questo significa considerare non solo la derivata prima del gradiente, ma anche la sua derivata seconda.

Di conseguenza la forma classica della regola di aggiornamento sarà:

vi+1 = γvi− η∇f (xi) (A.3)

xi+1 = xi+ vi+1 (A.4)

dove vi+1 è è il vettore velocità corrente, γ è il coefficiente del momento e

appartiene all’intervallo [0, 1] (tipicamente viene imposto circa a 0.9). Il vantaggio dell’introduzione del momento è quello di aumentare il passo di convergenza fin tanto che il gradiente punta nella stessa direzione e di smorzare le brusche variazioni del gradiente quando esso cambia direzione, riducendo così le oscillazioni dovute al rumore e cercando di far proseguire

A.5 Utilizzo del momentum 85

la ricerca del minimo lungo traiettoria corrente. Esiste una variante con cui viene applicato il momento nella ricerca del minimo con la discesa del gradiente, ovvero il cosiddetto momento di Nesterov [26]:

vi+1= γvi− η · ∇f (xi+ γvi) (A.5)

Confrontato al metodo del momento classico, che prima calcola il gradiente corrente e poi si muove nella direzione del gradiente cumulativo aggiornato, con il momento di Nesterov prima ci si muove nella direzione del preceden- te gradiente cumulativo γvi, poi si calcola il nuovo gradiente e solo dopo

si fa l’aggiornamento dei parametri. Questo espediente previene che l’otti- mizzatore si muova troppo velocemente e permette di ottenere performance migliori [37].

Appendice B

Overfitting e strategie di

regolarizzazione

Quando si lavora con le reti neurali è importante considerare il concetto di overfitting. Esso si potrebbe tradurre come un eccessivo adattamento del modello statistico che abbiamo creato ai dati utilizzati per la sua costruzio- ne: in pratica ciò che succede è che il modello si adatta ai dati osservati (il campione statistico) perché presenta un numero di parametri eccessivo rispetto al numero di osservazioni.

Un modello assurdo e sbagliato si potrebbe adattare perfettamente ai dati disponibili se è abbastanza complesso, addirittura fino a cominciare a giustificare persino il rumore (fig. B.1).

Per sottolineare l’importanza dell’overfitting vale la pena raccontare un aneddoto sul fisico premio Nobel Enrico Fermi, a cui fu chiesto il suo parere riguardo a un modello matematico che alcuni colleghi avevano proposto co- me soluzione di un importante problema di fisica irrisolto. Il modello aveva dimostrato un’eccellente validità sperimentale, ma Fermi era scettico: venu- to a conoscenza della presenza di quattro parametri liberi impostabili nel modello rispose: "Ricordo che il mio amico Johnny von Neumann diceva, con quattro parametri posso fittare un elefante, e con cinque posso fargli

Figura B.1: Una serie di dati all’incirca lineare affetti da rumore, approssimabile sia da un modello lineare che da uno polinomiale. Nonostante il secondo si adatti perfettamente ai dati, ci si aspetta che la versione lineare sia in grado di generalizzare meglio.

muovere il tronco" (per chi fosse curioso, il modello dell’elefante a quattro parametri può essere trovato in [38]).

Il punto, naturalmente, è che un modello con un elevato numero di para- metri liberi può descrivere un range di fenomeni estremamente vasto: anche se il modello dà buoni risultati con i dati forniti esso potrebbe non aver colto le informazioni necessarie ad analizzare veramente a fondo il problema, pur riuscendo a giustificare i dati che ha visto.

Fermi e von Neumann erano sospettosi di un modello con quattro pa- rametri liberi, le nostre reti a volte contengono milioni (se non miliardi) di parametri. Dovremmo fidarci di loro?

Esistono diverse tecniche per ridurre il rischio di overfitting, come le regolarizzazioni L1, L2, il drop-out e in parte anche la batch normalization. Comunque va tenuto presente che un ottimo modo per limitare il fenomeno è quello di aumentare il campione di training, il ché spinge la rete a trovare soluzioni al problema che siano generali, vere, piuttosto che a memorizzare gli esempi visti durante l’addestramento.

B.1 Overfitting nelle reti neurali 89

B.1

Overfitting nelle reti neurali

Consideriamo a titolo di esempio il caso in cui la funzione costo sul training set diminuisca come in figura B.2 (per semplicità in figura è rappresentata la loss soltanto a partire da epoca 200).

Figura B.2: Andamento della funzione costo sui dati di training fra epoca 200 ed epoca 400.

La situazione sembrerebbe incoraggiante: la funzione continua a decre- scere esattamente come ci aspetteremmo fino ad epoca 400.

Guardiamo ora come cambia l’accuratezza sul validation set durante l’ad- destramento (fig. B.3). Anche qui la finestra di osservazione considerata è a partire da epoca 200. Come si può osservare nelle prime 200 epoche l’ac- curatezza aumenta fino a raggiungere circa l’82%; poi gradualmente l’ap- prendimento rallenta fino ad epoca 280, quando praticamente si arriva a un valore massimo e la rete quasi smette di imparare (nelle epoche successive si osservano solo piccole oscillazioni stocastiche attorno al valore di accu- racy raggiunto ad epoca 280). Ciò evidentemente appare in contrasto con quanto visto nel grafico precedente, dove la funzione costo sui dati di trai- ning continua a diminuire: se guardassimo solo la loss sembrerebbe che il

Figura B.3: Accuratezza (%) sui dati del validation set fra epoca 200 ed epoca 400.

nostro modello stia ancora migliorando. Eppure l’accuracy dimostra come il miglioramento sia fittizio.

Possiamo quindi concludere che ciò che la rete impara dopo epoca 280 non è più informazione utile e non generalizza sui dati di test. Diciamo in questo caso che la rete sta overfittando o che sta avvenendo un fenomeno di overtraining della rete oltre epoca 280.

Ci potremmo domandare se sia corretto confrontare i grafici della funzio- ne costo sul training set e dell’accuratezza sul validation set: in altre parole stiamo confrontando due funzioni diverse su due campioni diversi. Cosa suc- cederebbe se confrontassimo la funzione in figura B.2 con la funzione costo sui dati di validazione? Oppure potremmo confrontare l’accuratezza della classificazione ottenuta sul validation con quella sul training set. Nei fatti, a prescindere dal tipo di confronto che facciamo osserveremo come si ma- nifesti lo stesso fenomeno. Consideriamo ad esempio la funzione costo sul validation set (fig. B.4).

Possiamo vedere come il valore della loss migliori circa fino ad epoca 15 mentre poi cominci a peggiorare, nonostante la funzione costo sui dati

B.1 Overfitting nelle reti neurali 91

Figura B.4: Funzione costo sui dati del validation set fino ad epoca 400.

di training continui a decrescere. Questo è un altro segnale che il nostro modello sta overfittando. Non possiamo fare a meno di notare a questo punto come una domanda sorga spontanea: dovremmo guardare epoca 15 o epoca 280 come punto in cui l’overfitting prende il sopravvento sull’apprendimento della rete? Da un punto di vista pratico, quello di cui ci importa veramente è il miglioramento dell’accuratezza nella classificazione dei dati di test e quindi ha più senso guardare epoca 280 come il punto critico per contenere l’overfitting.

Un altro segnale della presenza di overfitting può essere osservato sul- l’accuratezza ottenuta sui dati di training; si consideri la figura B.5. L’accu- ratezza aumenta fino a raggiungere il 100%! Questo vuol dire che la rete sta classificando correttamente tutto il campione di training (ad esempio tutte le 100.000 immagini passate nel training set), mentre la migliore accuratezza sul validation set è solo dell’82.27%. Dunque la rete sta davvero comincian- do a memorizzare i campioni di addestramento piuttosto che apprendere features generali.

Figura B.5: Accuratezza (%) sui dati di training.

l’addestramento non appena l’accuratezza sui dati di validazione giunge a saturazione. In tal senso si dice che si applica una strategia di early stopping (per un breve approfondimento si veda il paragrafo successivo).

Giunti a questo punto ci si può domandare perché non applicare la stra- tegia suddetta monitorando l’accuratezza sui dati di test piuttosto che su quelli di validazione. Di fatti, questo fa parte di una strategia più generale che prevede l’utilizzo dei dati di validazione per la scelta di tutti gli iper- parametri della rete, fra i quali il numero di epoche a cui fermarsi, il learning rate, l’architettura migliore, e così via. Per comprendere il motivo va con- siderato che se scegliessimo gli iper-parametri in modo che diano le migliori prestazioni possibili sul test set, potremmo finire per avere overfitting sui da- ti di test. Ovvero, potremmo finire per trovare un set di iper-parametri che vadano bene solo per quel particolare set di dati ma che non siano altrettanto validi per altri data set.

Per tutelarci da questa eventualità useremo un set di validazione e una volta trovata la configurazione ottimale di parametri sperimenteremo la rete su un set di dati diverso (tipicamente più grande), ovvero il test set.

Documenti correlati