Problema della scomparsa del gradiente

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search

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 ad ogni iterazione un aggiornamento proporzionale alla derivata parziale della funzione di perdita 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 . Poiché nell'algoritmo di retropropagazione i gradienti ai vari livelli vengono moltiplicati tramite la regola della catena, il prodotto di numeri in decresce esponenzialmente rispetto alla profondità 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] sia 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.

Soluzioni[modifica | modifica wikitesto]

Il problema può essere affrontato usando differenti funzioni di attivazione, ad esempio funzioni rettificate come ReLU,[5] usando differenti algoritmi di addestramento, ad esempio Rprop, che dipende solo dal segno del gradiente e non dalla sua norma,[6] oppure usando metodi che non dipendono dal gradiente per l'ottimizzazione dei parametri, come algoritmi genetici e particle swarm optimization,[7] 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.[8][9]

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.[10] 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.[9] Tale modello è utile per l'estrazione di caratteristiche da dati strutturati ad alta dimensionalità.[11]

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).[12] Nelle reti LSTM lo stato del modello si propaga nel tempo senza attraversare funzioni non lineari, prevenendo la cancellazione o esplosione del gradiente.[13] Le reti LSTM hanno ottenuto risultati allo stato dell'arte in molti problemi inerenti sequenze temporali, come riconoscimento della scrittura o elaborazione del linguaggio naturale.[14][15]

Le reti neurali residuali permettono di contrastare la scomparsa del gradiente in reti molto profonde, grazie all'aggiunta di connessioni di 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à.[16][17]

Note[modifica | modifica wikitesto]

  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. ^ (EN) Garrett B. Goh, Nathan O. Hodas e Abhinav Vishnu, Deep learning for computational chemistry, in Journal of Computational Chemistry, vol. 38, nº 16, 15 giugno 2017, pp. 1291–1307, DOI:10.1002/jcc.24764/abstract, PMID 28272810, arXiv:1701.04503.
  4. ^ Razvan Pascanu, Tomas Mikolov e Yoshua Bengio, On the difficulty of training Recurrent Neural Networks, 21 novembre 2012.
  5. ^ (EN) Xavier Glorot, Antoine Bordes e Yoshua Bengio, Deep Sparse Rectifier Neural Networks, in PMLR, 14 giugno 2011.
  6. ^ Sven Behnke, Hierarchical Neural Networks for Image Interpretation. (PDF), Lecture Notes in Computer Science, vol. 2766, Springer, 2003.
  7. ^ Sepp Hochreiter's Fundamental Deep Learning Problem (1991), su people.idsia.ch. URL consultato il 7 gennaio 2017.
  8. ^ Jürgen Schmidhuber, Deep learning in neural networks: An overview, in Neural Networks, vol. 61, 2015, pp. 85–117, DOI:10.1016/j.neunet.2014.09.003, PMID 25462637, arXiv:1404.7828.
  9. ^ a b G. E. Hinton, S. Osindero e Y. Teh, A fast learning algorithm for deep belief nets (PDF), in Neural Computation, vol. 18, nº 7, 2006, pp. 1527–1554, DOI:10.1162/neco.2006.18.7.1527, PMID 16764513.
  10. ^ J. Schmidhuber., "Learning complex, extended sequences using the principle of history compression," Neural Computation, 4, pp. 234–242, 1992.
  11. ^ G. Hinton, Deep belief networks, in Scholarpedia, vol. 4, nº 5, 2009, pp. 5947, Bibcode:2009SchpJ...4.5947H, DOI:10.4249/scholarpedia.5947.
  12. ^ Sepp Hochreiter e Jürgen Schmidhuber, Long Short-Term Memory, in Neural Computation, vol. 9, nº 8, 1997, pp. 1735–1780, DOI:10.1162/neco.1997.9.8.1735, PMID 9377276.
  13. ^ Cristopher Olah, Understanding LSTM networks, su colah.github.io.
  14. ^ 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
  15. ^ A. Graves, M. Liwicki, S. Fernandez, R. Bertolami, H. Bunke e J. Schmidhuber, A Novel Connectionist System for Improved Unconstrained Handwriting Recognition, in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 31, nº 5, 2009, pp. 855–868, DOI:10.1109/tpami.2008.137.
  16. ^ Kaiming He, Xiangyu Zhang, Shaoqing Ren e Jian Sun, Deep Residual Learning for Image Recognition, in arXiv:1512.03385 [cs], 10 dicembre 2015.
  17. ^ Andreas Veit, Michael Wilber e Serge Belongie, Residual Networks Behave Like Ensembles of Relatively Shallow Networks, 20 maggio 2016.
Informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica