Problema della scomparsa del gradiente

Da testwiki.
Vai alla navigazione Vai alla ricerca

Il problema della scomparsa del gradiente (in lingua inglese vanishing gradient problem) è un fenomeno che crea difficoltà nell'addestramento delle reti neurali profonde tramite retropropagazione dell'errore mediante discesa stocastica del gradiente. In tale metodo, ogni parametro del modello riceve a ogni iterazione un aggiornamento proporzionale alla derivata parziale della funzione di costo rispetto al parametro stesso. Una delle principali cause è la presenza di funzioni di attivazione non lineari classiche, come la tangente iperbolica o la funzione logistica, che hanno gradiente a valori nell'intervallo (0,1). Poiché nell'algoritmo di retropropagazione i gradienti ai vari livelli vengono moltiplicati tramite la regola della catena, il prodotto di n numeri in (0,1) decresce esponenzialmente rispetto alla profondità n della rete. Quando invece il gradiente delle funzioni di attivazione può assumere valori elevati, un problema analogo che può manifestarsi è quello dell'esplosione del gradiente.

La retropropagazione dell'errore permise di addestrare le reti neurali tramite apprendimento supervisionato, ma i primi tentativi ebbero limitato successo e nel 1991, nella sua tesi di laurea, Sepp Hochreiter attribuì questa difficoltà al problema da lui chiamato "scomparsa del gradiente"[1][2], che affligge sia le reti neurali feed-forward profonde[3] che quelle ricorsive[4], che dal punto di vista dell'apprendimento sono equivalenti a reti profonde in quanto vengono "srotolate" rispetto alla direzione temporale con un livello per ogni intervallo di tempo.[5]

Illustrazione semplificata nelle reti neurali ricorrenti

In una rete neurale ricorrente dopo n passaggi si ripetono moltiplicazioni di una matrice con un vettore per gli stati nascosti: il vettore di output nascosto hi del livello i dipende dall'output nascosto del livello precedente hi=f(Whi1+b).

Possiamo semplificare la discussione trascurando estremamente la funzione non lineare f, bias b e notando che la matrice dei pesi (W) è sempre lo stesso. In questo caso, l'output finale è solo: hn=Wnh0,

dove h0 è l'input iniziale alla rete. Se W=QλQT può essere diagonalizzato, allora (a causa di Wn=QλnQT) è chiaro che gli autovalori minori di 1 decadono esponenzialmente con profondità n mentre gli autovalori maggiori di 1 esplodono in modo esponenziale con profondità n.[6]

Soluzioni

Il problema può essere affrontato usando differenti funzioni di attivazione, ad esempio funzioni rettificate come ReLU,[7] usando differenti algoritmi di addestramento, ad esempio Rprop, che dipende solo dal segno del gradiente e non dalla sua norma,[8] oppure usando metodi che non dipendono dal gradiente per l'ottimizzazione dei parametri, come algoritmi genetici e particle swarm optimization,[9] il cui costo può diventare tuttavia proibitivo nel caso di reti con un numero molto elevato di parametri.

Rispetto al periodo in cui il problema è stato scoperto, la scomparsa del gradiente è stata parzialmente mitigata con il passare del tempo grazie all'incremento significativo della potenza di calcolo a disposizione, specialmente grazie alla transizione da CPU a GPGPU per l'addestramento dei modelli, anche se ciò non rappresenta di per sé un'effettiva soluzione del problema.[10][11]

Un metodo proposto per contrastare la cancellazione del gradiente nelle reti profonde è quello di eseguire l'addestramento con un approccio multilivello, addestrando i singoli livelli separatamente e poi assemblandoli, e usando la retropropagazione sull'intera rete per rifinire l'addestramento. Jürgen Schmidhuber propose di addestrare i singoli livelli in maniera non supervisionata, in modo che apprendano una rappresentazione compressa del proprio input.[12] Geoffrey Hinton propose nel 2006 le reti deep belief, che modellano l'apprendimento della distribuzione di una rappresentazione ad alto livello tramite più livelli di variabili latenti. Ciascun livello è modellato da una macchina di Boltzmann ristretta e, se addestrato correttamente, garantisce un aumento del limite inferiore della log-verosimiglianza. Quando un numero sufficiente di livelli è stato addestrato, la rete può essere anche usata come modello generativo, ottenendo un nuovo campione a partire dai valori delle funzioni di attivazione del livello più alto.[11] Tale modello è utile per l'estrazione di caratteristiche da dati strutturati ad alta dimensionalità.[13]

Per quanto riguarda le reti neurali ricorsive, anch'esse affette dalla scomparsa del gradiente, che ne riduce la capacità di apprendere relazioni a lungo termine, il settore venne rivoluzionato nel 1997 con l'introduzione, da parte di Sepp Hochreiter e Jürgen Schmidhuber, dell'architettura long-short term memory (LSTM).[14] Nelle reti LSTM lo stato del modello si propaga nel tempo senza attraversare funzioni non lineari, prevenendo la cancellazione o esplosione del gradiente.[15] Le reti LSTM hanno ottenuto notevoli risultati in molti problemi inerenti sequenze temporali, come il riconoscimento della scrittura o l'elaborazione del linguaggio naturale.[16][17]

Le reti neurali residuali permettono di contrastare la scomparsa del gradiente in reti molto profonde, grazie all'aggiunta di connessioni scorciatoia che permettono a una breve sequenza di livelli di imparare non semplicemente la funzione obiettivo, ma il suo residuo ottenuto sottraendo la funzione identità.[18][19]

Note

  1. S. Hochreiter. Untersuchungen zu dynamischen neuronalen Netzen. Diploma thesis, Institut f. Informatik, Technische Univ. Munich, 1991. Advisor: J. Schmidhuber.
  2. S. Hochreiter, Y. Bengio, P. Frasconi, and J. Schmidhuber. Gradient flow in recurrent nets: the difficulty of learning long-term dependencies. In S. C. Kremer and J. F. Kolen, editors, A Field Guide to Dynamical Recurrent Neural Networks. IEEE Press, 2001.
  3. Template:Cita pubblicazione
  4. Template:Cita pubblicazione
  5. Template:Cita libro
  6. Template:Cita libro
  7. Template:Cita pubblicazione
  8. Template:Cita libro
  9. Template:Cita web
  10. Template:Cita pubblicazione
  11. 11,0 11,1 Template:Cita pubblicazione
  12. J. Schmidhuber., "Learning complex, extended sequences using the principle of history compression," Neural Computation, 4, pp. 234–242, 1992.
  13. Template:Cita pubblicazione
  14. Template:Cita pubblicazione
  15. Template:Cita web
  16. Graves, Alex; and Schmidhuber, Jürgen; Offline Handwriting Recognition with Multidimensional Recurrent Neural Networks, in Bengio, Yoshua; Schuurmans, Dale; Lafferty, John; Williams, Chris K. I.; and Culotta, Aron (eds.), Advances in Neural Information Processing Systems 22 (NIPS'22), December 7th–10th, 2009, Vancouver, BC, Neural Information Processing Systems (NIPS) Foundation, 2009, pp. 545–552
  17. Template:Cita pubblicazione
  18. Template:Cita pubblicazione
  19. Template:Cita pubblicazione

Template:Portale