Memorie pe termen lung și scurt

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 16 martie 2021; verificările necesită 20 de modificări .

Un lanț lung de elemente de memorie pe termen scurt ( ing.  Long short-term memory ; LSTM ) este un tip de arhitectură de rețea neuronală recurentă propusă în 1997 de Sepp Hochreiter și Jurgen Schmidhuber [2] . La fel ca majoritatea rețelelor neuronale recurente, o rețea LSTM este versatilă în sensul că, având în vedere un număr suficient de elemente de rețea, poate efectua orice calcul de care este capabil un computer convențional, ceea ce necesită o matrice adecvată.greutăți, care pot fi considerate ca un program. Spre deosebire de rețelele neuronale recurente tradiționale, rețeaua LSTM este bine adaptată la învățarea sarcinilor de clasificare , procesare și predicție a seriilor temporale în cazurile în care evenimentele importante sunt separate prin decalaje de timp cu durată și limite nedefinite. Imunitatea relativă la durata intervalelor de timp oferă LSTM un avantaj față de rețelele neuronale recurente alternative, modelele Markov ascunse și alte metode de antrenament pentru secvențe în diferite aplicații. Dintre numeroasele realizări ale rețelelor LSTM, se pot evidenția cele mai bune rezultate în recunoașterea scrisului de mână continuu nesegmentat [3] , și victoria din 2009 în competiția de recunoaștere a scrisului de mână ( ICDAR ). Rețelele LSTM sunt folosite și în sarcinile de recunoaștere a vorbirii , de exemplu, rețeaua LSTM a fost componenta principală a rețelei, care în 2013 a atins un prag de eroare record de 17,7% în sarcina de recunoaștere a fonemelor pe corpus clasic de vorbire naturală TIMIT [4] . Începând cu 2016, companiile de top în tehnologie, inclusiv Google , Apple , Microsoft și Baidu , folosesc rețelele LSTM ca o componentă fundamentală a noilor produse [5] [6] .

Arhitectură

O rețea LSTM este o rețea neuronală artificială care conține module LSTM în locul sau în plus față de alte module de rețea. Un modul LSTM este un modul de rețea recurent capabil să stocheze valori atât pe perioade scurte, cât și pe perioade lungi de timp. Cheia acestei capacități este că modulul LSTM nu utilizează o funcție de activare în cadrul componentelor sale recurente. Astfel, valoarea stocată nu este neclară în timp, iar gradientul sau penalitatea nu dispare atunci când se folosește metoda backpropagation through time când se antrenează o rețea neuronală artificială . 

LSTM-urile sunt adesea grupate în „blocuri” care conțin diverse LSTM-uri. Un astfel de dispozitiv este tipic pentru rețelele neuronale multistrat „profunde” și contribuie la implementarea calculului paralel folosind echipamente adecvate. În formulele de mai jos, fiecare variabilă, scrisă cu litere italice mici, denotă un vector de dimensiuni egal cu numărul de module LSTM din bloc.

Blocurile LSTM conțin trei sau patru „porți” care sunt folosite pentru a controla fluxul de informații la intrările și ieșirile din memoria acestor blocuri. Aceste porți sunt implementate ca o funcție logistică pentru a calcula o valoare în intervalul [0; unu]. Înmulțirea cu această valoare este utilizată pentru a permite sau a interzice parțial fluxul de informații în și în afara memoriei. De exemplu, "poarta de intrare" controlează măsura în care o nouă valoare intră în memorie, iar "poarta uitată" controlează măsura în care o valoare este reținută în memorie. „Poarta de ieșire” controlează măsura în care valoarea din memorie este utilizată la calcularea funcției de activare a ieșirii pentru bloc. (În unele implementări, poarta de intrare și poarta uitare sunt implementate ca o singură poartă. Ideea este că vechea valoare ar trebui uitată atunci când există o nouă valoare care merită reținută).

Greutățile din blocul LSTM ( și ) sunt folosite pentru a seta direcția de funcționare a porților. Aceste greutăți sunt definite pentru valorile introduse în bloc (inclusiv ieșirea din pasul de timp anterior ) pentru fiecare dintre porți. Astfel, blocul LSTM determină cum să-și gestioneze memoria în funcție de aceste valori, iar antrenamentul cu greutăți permite blocului LSTM să învețe o funcție care minimizează pierderea. Blocurile LSTM sunt de obicei antrenate folosind retropropagarea în timp.

LSTM tradițional

LSTM tradițional cu porți uitare [2] [7] și ( înseamnă produs Hadamard ):

Variabile:

Functii de activare :

LSTM cu ochi

Eye LSTM cu porți uitați [8] [9] nu este utilizat, folosit ca înlocuitor în majoritatea locurilor:

LSTM convoluțional

LSTM convoluțional [10] ( înseamnă operator de convoluție ):

Antrenament

Pentru a minimiza eroarea generală a LSTM pe întregul set de secvențe de antrenament, coborârea gradientului iterativ, cum ar fi propagarea inversă derulată în timp, poate fi utilizată pentru a schimba fiecare dintre greutăți proporțional cu derivata sa, în funcție de magnitudinea erorii. Principala problemă cu coborârea gradientului pentru rețelele neuronale recurente standard este aceea că gradienții de eroare scad la o rată exponențială pe măsură ce întârzierea de timp dintre evenimentele importante crește, ceea ce a fost identificat în 1991 [11] [12] . Cu blocurile LSTM, totuși, atunci când valorile de eroare se propagă înapoi din stratul de ieșire, eroarea este blocată în memoria blocului. Acesta se numește „carusel de erori”, care „alimentează” în mod continuu o eroare înapoi la fiecare dintre porți până când sunt antrenați să renunțe la o valoare. Astfel, retropropagarea obișnuită a erorilor este eficientă pentru antrenarea unui bloc LSTM pentru a reține valori pentru perioade de timp foarte lungi.

LSTM poate fi, de asemenea, antrenat utilizând o combinație a unui algoritm evolutiv pentru greutățile din straturile ascunse și matricele pseudoinverse sau o mașină de suport vector pentru greutățile din stratul de ieșire. [13] În învățarea prin întărire, LSTM-urile pot fi antrenate prin căutarea directă în spațiu pentru strategii, strategii evolutive sau algoritmi genetici .

Aplicații

Sunt descrise exemple de aplicare a LSTM: în robotică [14] , pentru analiza seriilor temporale [15] , pentru recunoașterea vorbirii [4] [16] [17] , în învățarea ritmică [9] , pentru generarea de compoziții muzicale [18] , în învățarea gramaticală ( învățare artificială a gramaticii engleze  ) [8] [19] [20] , în sarcini de recunoaștere a scrisului de mână [21] [22] , pentru recunoașterea activității umane [23] , în sarcina identificării proteinelor omoloage [24] .

Note

  1. Klaus Greff; Rupesh Kumar Srivastava; Jan Koutnik; Bas R. Steunebrink & Jürgen Schmidhuber (2015), LSTM: A Search Space Odyssey, arΧiv : 1503.04069 . 
  2. 12 Sepp Hochreiter ; Jurgen Schmidhuber . Memoria pe termen lung // Calcul  neuronal   : jurnal. - 1997. - Vol. 9 , nr. 8 . - P. 1735-1780 . - doi : 10.1162/neco.1997.9.8.1735 . — PMID 9377276 . Arhivat din original pe 26 mai 2015. Copie arhivată (link indisponibil) . Preluat la 4 februarie 2017. Arhivat din original la 26 mai 2015. 
  3. A. Graves, M. Liwicki, S. Fernandez, R. Bertolami, H. Bunke, J. Schmidhuber. Un nou sistem de conexiune pentru recunoașterea neconstrânsă îmbunătățită a scrisului de mână. IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 31, nr. 5, 2009.
  4. 1 2 Graves, Alex; Mohamed, Abdel-rahman; Hinton, Geoffrey. Recunoașterea vorbirii cu rețele neuronale recurente profunde  //  Acoustics, Speech and Signal Processing (ICASSP), 2013 IEEE International Conference on : journal. - 2013. - P. 6645-6649 .
  5. Cu QuickType, Apple vrea să facă mai mult decât să ghicească următorul text. Vrea să vă ofere un AI.  (engleză) . CABLAT . Data accesului: 16 iunie 2016. Arhivat din original pe 24 martie 2017.
  6. Rețele neuronale recurente - Rețele de feedback - Lstm Rețea recurentă - Rețea neuronală de feedback - Rețele recurente - Rețea de feedback - Rețea recurentă - - Rețea de feedback . people.idsia.ch _ Preluat la 16 iunie 2016. Arhivat din original la 5 mai 2021.
  7. Felix A. Gers; Jurgen Schmidhuber; Fred Cummins. Învățarea să uitați: predicție continuă cu LSTM  // calcul  neuronal : jurnal. - 2000. - Vol. 12 , nr. 10 . - P. 2451-2471 . - doi : 10.1162/089976600300015015 .
  8. 1 2 3 Gers, F.A.; Schmidhuber, J. LSTM Rețele recurente Învață limbaje simple, fără context și sensibile  la context // Tranzacții IEEE pe  rețele neuronale : jurnal. - 2001. - Vol. 12 , nr. 6 . - P. 1333-1340 . - doi : 10.1109/72.963769 .
  9. 1 2 3 Gers, F.; Schraudolph, N.; Schmidhuber, J. Învățarea timpului precis cu rețelele recurente LSTM  //  Journal of Machine Learning Research  : journal. - 2002. - Vol. 3 . - P. 115-143 .
  10. Xingjian Shi; Zhurong Chen; Hao Wang; Dit-Yan Yeung; Wai-kin Wong; Wang-chun Woo. Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting  //  Proceedings of the 28th International Conference on Neural Information Processing Systems : journal. - 2015. - P. 802-810 .
  11. S. Hochreiter. Untersuchungen zu dynamischen neuronalen Netzen. Teză de diplomă, Institut f. Informatic, Technische Univ. Munchen, 1991.
  12. S. Hochreiter, Y. Bengio, P. Frasconi și J. Schmidhuber. Fluxul de gradient în rețele recurente: dificultatea de a învăța dependențe pe termen lung. În SC Kremer și JF Kolen, editori, A Field Guide to Dynamical Recurrent Neural Networks. IEEE Press, 2001.
  13. Schmidhuber, J.; Wierstra, D.; Gagliolo, M.; Gomez, F. Training Recurrent Networks de Evolino   // Neural Computation. - 2007. - Vol. 19 , nr. 3 . - P. 757-779 . - doi : 10.1162/neco.2007.19.3.757 .
  14. H. Mayer, F. Gomez, D. Wierstra, I. Nagy, A. Knoll și J. Schmidhuber. Un sistem pentru chirurgia cardiacă robotică care învață să facă noduri folosind rețele neuronale recurente. Robotică Avansată, 22/13-14, pp. 1521-1537, 2008.
  15. J. Schmidhuber și D. Wierstra și F. J. Gomez. Evolino: Neuroevoluție hibridă / Căutare liniară optimă pentru învățarea secvenței. Proceedings of the 19th International Joint Conference on Artificial Intelligence (IJCAI), Edinburgh, pp. 853-858, 2005.
  16. Graves, A.; Schmidhuber, J. Clasificarea fonemelor Framewise cu LSTM bidirecțional și alte arhitecturi de rețele  neuronale //  Neural Networks : journal. - 2005. - Vol. 18 , nr. 5-6 . - P. 602-610 . - doi : 10.1016/j.nenet.2005.06.042 .
  17. S. Fernandez, A. Graves, J. Schmidhuber. O aplicație a rețelelor neuronale recurente pentru identificarea discriminativă a cuvintelor cheie. Intl. Conf. privind rețelele neuronale artificiale ICANN'07, 2007.
  18. D. Eck și J. Schmidhuber. Învățarea structurii pe termen lung a blues-ului. În J. Dorronsoro, ed., Proceedings of Int. Conf. on Artificial Neural Networks ICANN'02, Madrid, paginile 284-289, Springer, Berlin, 2002.
  19. Schmidhuber, J.; Gers, F.; Eck, D.; Schmidhuber, J.; Gers, F. Învățarea limbilor neobișnuite: o comparație a rețelelor recurente simple și LSTM   // Neural Computation : jurnal. - 2002. - Vol. 14 , nr. 9 . - P. 2039-2041 . doi : 10.1162 / 089976602320263980 .
  20. Perez-Ortiz, JA; Gers, F.A.; Eck, D.; Filtrele Schmidhuber, J. Kalman îmbunătățesc performanța rețelei LSTM în probleme de nerezolvat de rețelele recurente tradiționale  //  Neural Networks : journal. - 2003. - Vol. 16 , nr. 2 . - P. 241-250 . - doi : 10.1016/s0893-6080(02)00219-8 .
  21. A. Graves, J. Schmidhuber. Recunoaștere offline a scrisului de mână cu rețele neuronale recurente multidimensionale. Advances in Neural Information Processing Systems 22, NIPS'22, pp 545-552, Vancouver, MIT Press, 2009.
  22. A. Graves, S. Fernandez, M. Liwicki, H. Bunke, J. Schmidhuber. Recunoaștere online neconstrânsă a scrisului de mână cu rețele neuronale recurente. Advances in Neural Information Processing Systems 21, NIPS'21, pp 577-584, 2008, MIT Press, Cambridge, MA, 2008.
  23. M. Baccouche, F. Mamalet, C Wolf, C. Garcia, A. Baskurt. Învățare profundă secvențială pentru recunoașterea acțiunii umane. 2nd International Workshop on Human Behavior Understanding (HBU), AA Salah, B. Lepri ed. Amsterdam, Olanda. pp. 29-39. Note de curs în informatică 7065. Springer. 2011
  24. Hochreiter, S.; Heusel, M.; Obermayer, K. Detectare rapidă a omologiei proteinelor pe bază de model fără aliniere  //  Bioinformatică : jurnal. - 2007. - Vol. 23 , nr. 14 . - P. 1728-1736 . - doi : 10.1093/bioinformatics/btm247 . — PMID 17488755 .

Link -uri