Problema del gradient minvant

es troba quan s'entrenen xarxes neuronals artificials amb mètodes d'aprenentatge basats en gradients i retropropagació.

En l'aprenentatge automàtic, el problema del gradient minvant es troba quan s'entrenen xarxes neuronals artificials amb mètodes d'aprenentatge basats en gradients i retropropagació. En aquests mètodes, durant cada iteració d'entrenament, cadascun dels pesos de les xarxes neuronals rep una actualització proporcional a la derivada parcial de la funció d'error respecte al pes actual.[1] El problema és que, en alguns casos, el gradient serà molt petit, evitant efectivament que el pes canviï el seu valor.[1] En el pitjor dels casos, això pot impedir completament la formació continuada de la xarxa neuronal.[1] Com a exemple de la causa del problema, les funcions d'activació tradicionals com la funció tangent hiperbòlica tenen gradients en el rang (0,1], i la retropropagació calcula gradients per la regla de la cadena. Això té l'efecte de multiplicar n d'aquests petits nombres per calcular els gradients de les primeres capes en una xarxa de n capes, el que significa que el gradient (senyal d'error) disminueix exponencialment amb n mentre que les primeres capes s'entrenen molt lentament.

Diagrama de bifurcació de la xarxa recurrent d'una neurona. L'eix horitzontal és b i l'eix vertical és x. La corba negra és el conjunt d'equilibris estables i inestables. Observeu que el sistema presenta histèresi i es pot utilitzar com a memòria d'un bit.

La retropropagació va permetre als investigadors entrenar xarxes neuronals artificials profundes supervisades des de zero, inicialment amb poc èxit. La tesi de diploma de Hochreiter de 1991 va identificar formalment la raó d'aquest fracàs en el "problema del gradient de fuga",[2][3] que no només afecta les xarxes feedforward de moltes capes,[4] sinó també les xarxes recurrents. Aquests últims s'entrenen desplegant-los en xarxes de feedforward molt profundes, on es crea una nova capa per a cada pas de temps d'una seqüència d'entrada processada per la xarxa. (La combinació de desplegament i retropropagació s'anomena retropropagació a través del temps).

Quan s'utilitzen funcions d'activació les derivades de les quals poden prendre valors més grans, es corre el risc de trobar-se amb el problema de gradient explosiu relacionat.

Solucions modifica

Per solucionar aquest problema, es van proposar diversos mètodes.

Normalització de lots modifica

La normalització per lots és un mètode estàndard per resoldre els problemes de gradient d'explosió i de desaparició.[5][6]

Retall de degradat modifica

[7] recomana retallar la norma de   per  :

 
on   és l'hiperparàmetre "llindar", la norma màxima que es permet assolir el gradient. Simplement retalla cada entrada de   per separat per   funciona també a la pràctica.

Jerarquia multinivell modifica

Un és la jerarquia de xarxes multinivell de Jürgen Schmidhuber (1992) entrenada prèviament un nivell a la vegada mitjançant un aprenentatge no supervisat, afinat mitjançant la retropropagació. Aquí cada nivell aprèn una representació comprimida de les observacions que s'alimenta al següent nivell.

Memòria a curt termini modifica

Una altra tècnica especialment utilitzada per a xarxes neuronals recurrents és la xarxa de memòria a curt termini (LSTM) de 1997 per Hochreiter & Schmidhuber.[8]

Maquinari més ràpid modifica

Els avenços del maquinari han fet que des del 1991 fins al 2015, la potència de l'ordinador (especialment la que ofereixen les GPU) s'hagi multiplicat al voltant d'un milió de vegades,

Xarxes residuals modifica

Una de les maneres més noves i efectives de resoldre el problema del gradient de desaparició és amb xarxes neuronals residuals, o ResNets (que no s'ha de confondre amb les xarxes neuronals recurrents).

Altres funcions d'activació modifica

Els rectificadors com ReLU pateixen menys el problema del gradient de desaparició, perquè només saturen en una direcció.[9]

Referències modifica

  1. 1,0 1,1 1,2 Basodi, Sunitha; Ji, Chunyan; Zhang, Haiping; Pan, Yi «"Gradient amplification: An efficient way to train deep neural networks"». Big Data Mining and Analytics, 3, 3, setembre 2020, pàg. 198. DOI: 10.26599/BDMA.2020.9020004. ISSN: 2096-0654 [Consulta: free].
  2. Hochreiter, S.. Untersuchungen zu dynamischen neuronalen Netzen (Tesi) (en alemany). Institut f. Informatik, Technische Univ. Munich., 1991. 
  3. Hochreiter, S. «Gradient flow in recurrent nets: the difficulty of learning long-term dependencies». A: Kremer. A Field Guide to Dynamical Recurrent Neural Networks (en anglès). IEEE Press, 2001. ISBN 0-7803-5369-2. 
  4. Goh, Garrett B.; Hodas, Nathan O.; Vishnu, Abhinav «"Deep learning for computational chemistry"» (en anglès). Journal of Computational Chemistry, 38, 16, 15-06-2017, pàg. 1291–1307. arXiv: 1701.04503. Bibcode: 2017arXiv170104503G. DOI: 10.1002/jcc.24764. PMID: 28272810.
  5. Ioffe, Sergey; Szegedy, Christian «"Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift"» (en anglès). International Conference on Machine Learning, 01-06-2015, pàg. 448–456. arXiv: 1502.03167.
  6. Santurkar, Shibani; Tsipras, Dimitris; Ilyas, Andrew; Madry, Aleksander «"How Does Batch Normalization Help Optimization?"». Advances in Neural Information Processing Systems, 31, 2018.
  7. . 
  8. Hochreiter, Sepp; Schmidhuber, Jürgen «"Long Short-Term Memory"». Neural Computation, 9, 8, 1997, pàg. 1735–1780. DOI: 10.1162/neco.1997.9.8.1735. PMID: 9377276.
  9. Glorot, Xavier; Bordes, Antoine; Bengio, Yoshua «"Deep Sparse Rectifier Neural Networks"» (en anglès). PMLR, 14-06-2011, pàg. 315–323.