Duga kratkoročna memorija

S Vikipedije, slobodne enciklopedije
Ćelija duge kratkoročne memorije (DKM) može da obrađuje podatke sekvencijalno i da zadrži svoje skriveno stanje tokom vremena.

Duga kratkoročna memorija ( DKM )[1] je veštačka neuronska mreža koja se koristi u oblastima veštačke inteligencije i dubokog učenja . Za razliku od standardnih neuronskih mreža unapred, duga kratkoročna memorija ima povratne veze. Takva rekurentna neuronska mreža može da obrađuje ne samo pojedinačne tačke podataka (kao što su slike), već i čitav niz podataka (kao što su govor ili video). Na primer, duga kratkoročna memorija je primenljiva na zadatke kao što su nesegmentirano, povezano prepoznavanje rukopisa,[2] prepoznavanje govora,[3][4] mašinsko prevođenje,[5][6] kontrola robota, [7] video igrice,[8][9] i zdravstvo.[10] Duga kratkoročna memorija je postala najcitiranija neuronska mreža 20. veka.[11]

Uobičajena jedinica duge kratkoročne memorije se sastoji od ćelije, ulaznog gejta, izlaznog gejta[12] i kapije za zaborav .[13] Ćelija pamti vrednosti u proizvoljnim vremenskim intervalima, a tri kapije regulišu tok informacija u i iz ćelije.

Mreže sastavljene od jedinica duge kratkoročne memorije su veoma pogodne za klasifikaciju, obradu i predviđanje na osnovu podataka vremenske serije, pošto može postojati kašnjenje nepoznatog trajanja između važnih događaja u vremenskoj seriji. Jedinice duge kratkoročne memorije su razvijene da se bave problemom nestajanja gradijenta[14] koji se može susresti prilikom obuke tradicionalnih rekurentnih neuronskih mreža. Relativna neosetljivost na dužinu jaza je prednost duge kratkoročne memorije u odnosu na rekurentne neuronske mreže, ali i u odnosu na skrivene Markovljeve modele i druge metode učenja sekvence u brojnim primenama.[traži se izvor]

Ideja[uredi | uredi izvor]

U teoriji, klasične (ili "vanila") rekurentne neuronske mreže mogu da prate proizvoljne dugoročne zavisnosti u ulaznim sekvencama. Problem sa ovom vrstom rekurentnih neuronskih mreža je računske (ili praktične) prirode: kada se obučava vanila rekurentna neuronska mreža koristeći propagaciju unazad, dugoročni gradijenti koji se propagiraju unazad mogu "nestati" (to jest, mogu težiti nuli) ili mogu "eksplodirati“ (to jest, mogu težiti beskonačnosti),[14] zbog proračuna uključenih u proces, koji koriste brojeve sa konačnom preciznošću . Rekurentne neuronske mreže koje koriste jedinice duge kratkoročne memorije delimično rešavaju problem nestajanja gradijenta, jer jedinice duge kratkoročne memorije dozvoljavaju da gradijenti takođe teku nepromenjeni . Međutim, mreže sastavljene od jedinica duge kratkoročne memorije i dalje mogu patiti od problema sa eksplodirajućim gradijentom.[15]

Varijante[uredi | uredi izvor]

U dole navedenim jednačinama, promenljive malim slovima predstavljaju vektore. Matrice i sadrže, težine ulaznih i rekurentnih veza, gde je indeks može biti ulazna kapija , izlazna kapija , kapija zaborava ili memorijska ćelija , u zavisnosti od aktivacije koja se izračunava. U ovom odeljku, stoga, koristimo "vektorsku notaciju". Tako, na primer, nije samo jedna jedinica jedne ćelije duge kratkoročne memorije, već sadrži jedinica ćelije duge kratkoročne memorije.

Duga kratkoročna memorija sa 'kapijom za zaborav'[uredi | uredi izvor]

Kompaktni oblici jednačina za prolaz unapred ćelije duge kratkoročne memorije sa 'kapijom za zaborav' su:[1][13]

gde su početne vrednosti i i operater označava Adamarov proizvod (proizvod po elementima). Oznaka predstavlja indeksiranje vremenskog koraka.

Promenljive[uredi | uredi izvor]

  •  : ulazni vektor za jedinicu duge kratkoročne memorije
  •  : vektor 'zaborava' aktivacije kapije
  •  : ulaz/ažuriranje vektora aktivacije kapije
  •  : vektor aktiviranja izlazne kapije
  •  : vektor skrivenog stanja, takođe poznat kao izlazni vektor jedinice duge kratkoročne memorije
  •  : vektor za aktiviranje ulaza ćelije
  •  : vektor stanja ćelije
  • , i  : matrice težine i parametri vektora pristrasnosti koje treba naučiti tokom treninga

gde se oznake i odnose se na broj ulaznih karakteristika i broj skrivenih jedinica.

Funkcije za aktiviranje[uredi | uredi izvor]

  •  : sigmoidna funkcija .
  •  : hiperbolička tangentna funkcija.
  •  : hiperbolička tangentna funkcija, odnosno, .

"Špijunka" - vrsta duge kratkoročne memorije[uredi | uredi izvor]

Jedinica duge kratkoročne memorije sa špijunkom sa ulazom (tj ), izlazom (tj ), i 'kapijom za zaborav'(tj ).

Prethodna slika je grafički prikaz jedinice duge kratkoročne memorije sa špijunskim vezama. Veze sa špijunkom omogućavaju kapijama pristup vrtešci sa konstantnom greškom, čija je aktivacija stanje ćelije.[16] se ne koristi, dok se koristi na većini mesta.

Svaka od kapija se može smatrati "standardnim" neuronom u neuronskoj mreži sa prosleđivanjem (ili višeslojnoj neuronskoj mreži): to jest, oni izračunavaju aktivaciju (koristeći funkciju aktivacije) ponderisane sume. i predstavljaju aktivacije respektivno ulaznih, izlaznih i zaboravnih kapija, u vremenskom koraku .

Tri strelice za izlaz iz memorijske ćelije do tri kapije i predstavljaju špijunske veze. Ove špijunske veze zapravo označavaju doprinose aktivacije memorijske ćelije u vremenskom koraku , odnosno doprinos (i ne , kao što slika može da sugeriše). Drugim rečima, kapije i računaju njihove aktivacije u vremenskom koraku (tj., i ). Takođe, s obzirom na aktiviranje memorijske ćelije u vremenskom koraku , tj .

Jedna strelica levo-desno koja izlazi iz memorijske ćelije nije špijunska veza i označava se sa .

Mali krugovi koji sadrže simbol predstavljaju elementarno množenje između njegovih ulaza. Veliki krugovi koji sadrže S -sličnu krivu predstavljaju primenu diferencibilne funkcije (poput sigmoidne funkcije) na ponderisani zbir.

Konvoluciona jedinica duge kratkoročne memorije sa špijunkom[uredi | uredi izvor]

Kod konvolucione jedinice duge kratkoročne memorije sa špijunkom oznaka označava operator konvolucije .

Obuka[uredi | uredi izvor]

Rekurentne neuronske mreže koje koriste jedinicu duge kratkoročne memorije mogu se trenirati na nadgledani način na skupu sekvenci za obuku, koristeći optimizacioni algoritam poput spuštanja gradijenta u kombinaciji sa propagacijom unazad kroz vreme da bi se izračunali gradijenti potrebni tokom procesa optimizacije, kako bi se promenila svaka težina mreže sastavljene od jedinica duge kratkoročne memorije proporcionalno derivatu greške (na izlaznom sloju mreže sastavljene od jedinica duge kratkoročne memorije) u odnosu na odgovarajuću težinu.

Problem sa korišćenjem gradijenta spuštanja za standardne rekurentne neuronske mreže je taj što gradijenti greške nestaju eksponencijalno brzo sa veličinom vremenskog kašnjenja između važnih događaja. Ovo bi trebalo da iznosi ako je spektralni radijus od manji od 1.[14][17]

Međutim, kod jedinica duge kratkoročne memorije, kada se vrednosti greške proširuju unazad iz izlaznog sloja, greška ostaje u ćeliji jedinice duge kratkoročne memorije. Ova „vrteška sa greškama“ neprekidno vraća grešku na svaku kapiju jedinice duge kraktoročne memorije, sve dok ne nauče da odseku vrednost.

KVK funkcija skora[uredi | uredi izvor]

Mnoge aplikacije koriste stekove dugih kratkoročnih memorija rekurentnih neuronskih mreža[18] i obučavaju ih konekcionističkom vremenskom klasifikacijom (KVK)[19] kako bi pronašli matricu težine rekurentne neuronske mreže koja maksimizira verovatnoću sekvenci oznaka u skupu za obuku, s obzirom na odgovarajuće ulazne sekvence. Konekcionistička vremenska klasifikacija postiže i usklađivanje i prepoznavanje.

Alternative[uredi | uredi izvor]

Ponekad može biti korisno trenirati (delove) duge kratkoročne memorije neuroevolucijom ili metodama gradijenta politike, posebno kada ne postoji „učitelj“ (tj. oznake za obuku).

Uspešni primeri[uredi | uredi izvor]

Bilo je nekoliko uspešnih priča o obuci, na način bez nadzora, gde je rekurentna neuronska mreža imala jedinice duge kratkoročne memorije.

Bil Gejts je 2018. godine to nazvao „ogromnom prekretnicom u unapređenju veštačke inteligencije“ kada su botovi koje je razvio OpenAI uspeli da pobede ljude u igri Dota 2[8] OpenAI Five se sastoji od pet nezavisnih, ali koordinisanih neuronskih mreža. Svaka mreža je obučena metodom gradijenta politike bez nadzornog učitelja i sadrži jednoslojnu dugotrajnu memoriju od 1024 jedinice koja vidi trenutno stanje igre.

U 2018, OpenAI je takođe obučio sličnu jedinicu duge kratkoročne memorije pomoću gradijenata politike da kontroliše ruku robota nalik čoveku koja manipuliše fizičkim objektima sa neviđenom spretnošću.[7]

U 2019. godini, DipMajnd-ov program AlfaStar je koristio duboko jezgro duge kratkoročne memorije da bi se istakao u kompleksnoj video igrici Starcraft II .[9] Ovo je viđeno kao značajan napredak ka veštačkoj opštoj inteligenciji.[9]

 

Vremenski okvir razvoja[uredi | uredi izvor]

1991: Sep Hohrejter je analizirao problem gradijenta nestajanja i razvio principe metode u svojoj diplomskoj tezi[14], uz savete Jirgena Šmidubera .

1995: „Dugo kratkoročno pamćenje“ objavljeno je u tehničkom izveštaju Sepa Hohrejtera i Jirgena Šmidubera .[20]


1999: Feliks Gers i njegov savetnik Jirgen Šmiduber i Fred Kamins uveli su kapiju za zaborav (koja se takođe naziva „kapija čuvanja“) u arhitekturu duge kratkoročne memorije,[21] omogućavajući dugoj kratkoročnoj memoriji da resetuje sopstveno stanje.[22]

2000: Gers, Šmiduber i Kamins su dodali špijunske veze (veze od ćelije do kapija) u arhitekturu.[13] Pored toga, funkcija aktivacije izlaza je izostavljena.[22]

2001: Gers i Šmiduber su obučili dugu kratkoročnu memoriju da uči jezike koji se ne mogu naučiti tradicionalnim modelima kao što je Skriveni Markovljev model. [23]


2004: Prva uspešna primena duge kratkoročne memorije na govor od strane Šmiduberovog učenika Aleksa Grejvsa i drugih. [23]

2005: Prva publikacija (Grejvs i Šmiduber) o dugoj kratkoročnoj memoriji sa kompletnom propagacijom kroz vreme i o dvosmernoj dugoj kratkoročnoj memoriji. [23]

2005: Den Vierstra, Faustino Gomez i Šmiduber obučavali su dugu kratkoročnu memoriju neuroevolucijom bez 'učitelja'.

2006: Grejvs, Fernandez, Gomez i Šmiduber uvode novu funkciju greške za LSTM: konekcionističku vremensku klasifikaciju (KVK) za istovremeno poravnanje i prepoznavanje sekvenci.[19] Duga kratkoročna memorija obučena za konekcionističku vremensku klasifikaciju dovela je do napretka u prepoznavanju govora. [24][25][26]

Majer i drugi obavili su obučavanje duge kratkoročne memorije za kontrolu robota .

2007: Vierstra, Forster, Piters i Šmiduber obučavali su dugu kratkoročnu memoriju prema gradijentima politike za učenje sa pojačanjem bez 'učitelja'.[27]

Hohrejter, Hojsel i Obermajr su primenili dugu kratkoročnu memoriju na detekciju homologije proteina u oblasti biologije .


2013: Aleks Grejvs, Abdel-rahman Mohamed i Džefri Hinton koristili su mreže sastavljenu od jedinica duge kratkoročne memorije kao glavnu komponentu mreže koja je postigla rekordnu stopu fonemskih grešaka od 17,7% na klasičnom skupu podataka prirodnog govora.


2015: Gugl je počeo da koristi dugu kratkoročnu memoriji koju je obučio pomoću koncekcionističke vremenske klasifikacije za prepoznavanje govora na Gugl Vojsu.[24][25] Prema zvaničnoj blog objavi, novi model je smanjio greške u transkripciji za 49%.[28]



2017: Fejsbuk je obavljao oko 4,5 milijardi automatskih prevoda svakog dana koristeći mreže za dugotrajno pamćenje.[6]

Istraživači sa Državnog univerziteta u Mičigenu, IBM istraživanja i Univerziteta Kornel objavili su studiju na konferenciji za otkrivanje znanja i rudarenje podataka. Njihova T vrsta duge kratkoročne memorije ima bolji učinak na određenim skupovima podataka od standardne duge kratkoročne memorije.


2018: OpenAI je koristio dugu kratkoročnu memoriju obučenu od strane gradijenata politike da pobedi ljude u složenoj video igrici Dota 2,[8] i da kontroliše ruku robota nalik čoveku koja manipuliše fizičkim objektima sa neviđenom spretnošću.[7][23]

2019: DipMajnd je koristio dugu kratkoročnu memoriju obučenu prema gradijentima politike da bi se istakao u kompleksnoj video igrici Starcraft II .[9][23]

Reference[uredi | uredi izvor]

  1. ^ a b Sepp Hochreiter; Jürgen Schmidhuber (1997). „Long short-term memory”. Neural Computation. 9 (8): 1735—1780. PMID 9377276. doi:10.1162/neco.1997.9.8.1735. 
  2. ^ Graves, A.; Liwicki, M.; Fernández, S.; Bertolami, R.; Bunke, H.; Schmidhuber, J. (maj 2009). „A Novel Connectionist System for Unconstrained Handwriting Recognition”. IEEE Transactions on Pattern Analysis and Machine Intelligence. 31 (5): 855—868. CiteSeerX 10.1.1.139.4502Slobodan pristup. ISSN 0162-8828. PMID 19299860. S2CID 14635907. doi:10.1109/tpami.2008.137. 
  3. ^ Sak, Hasim; Senior, Andrew; Beaufays, Francoise (2014). „Long Short-Term Memory recurrent neural network architectures for large scale acoustic modeling” (PDF). Arhivirano iz originala (PDF) 2018-04-24. g. 
  4. ^ Li, Xiangang; Wu, Xihong (2014-10-15). „Constructing Long Short-Term Memory based Deep Recurrent Neural Networks for Large Vocabulary Speech Recognition”. arXiv:1410.4281Slobodan pristup [cs.CL]. 
  5. ^ Wu, Yonghui; Schuster, Mike (2016-09-26). „Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation”. arXiv:1609.08144Slobodan pristup [cs.CL]. 
  6. ^ a b Ong, Thuy (4. 8. 2017). „Facebook's translations are now powered completely by AI”. www.allthingsdistributed.com. Pristupljeno 2019-02-15. 
  7. ^ a b v „Learning Dexterity”. OpenAI Blog. 30. 7. 2018. Arhivirano iz originala 17. 02. 2019. g. Pristupljeno 2019-01-15. 
  8. ^ a b v Rodriguez, Jesus (2. 7. 2018). „The Science Behind OpenAI Five that just Produced One of the Greatest Breakthrough in the History of AI”. Towards Data Science. Arhivirano iz originala 2019-12-26. g. Pristupljeno 2019-01-15. 
  9. ^ a b v g Stanford, Stacy (25. 1. 2019). „DeepMind's AI, AlphaStar Showcases Significant Progress Towards AGI”. Medium ML Memoirs. Pristupljeno 2019-01-15. 
  10. ^ Schmidhuber, Jürgen (2021). „The 2010s: Our Decade of Deep Learning / Outlook on the 2020s”. AI Blog. IDSIA, Switzerland. Pristupljeno 2022-04-30. 
  11. ^ Schmidhuber, Jürgen (2021). „The most cited neural networks all build on work done in my labs”. AI Blog. IDSIA, Switzerland. Pristupljeno 2022-04-30. 
  12. ^ . Arhivirano iz originala|archive-url= zahteva |url= (pomoć) |archive-url= zahteva |archive-date= (pomoć). g.  Nedostaje ili je prazan parametar |title= (pomoć)
  13. ^ a b v Felix A. Gers; Jürgen Schmidhuber; Fred Cummins (2000). „Learning to Forget: Continual Prediction with LSTM”. Neural Computation. 12 (10): 2451—2471. CiteSeerX 10.1.1.55.5709Slobodan pristup. PMID 11032042. S2CID 11598600. doi:10.1162/089976600300015015. 
  14. ^ a b v g Hochreiter, Sepp. Untersuchungen zu dynamischen neuronalen Netzen (PDF) (Teza). Technical University Munich, Institute of Computer Science, advisor: J. Schmidhuber. 
  15. ^ Calin, Ovidiu (14. 2. 2020). Deep Learning Architectures. Cham, Switzerland: Springer Nature. str. 555. ISBN 978-3-030-36720-6. 
  16. ^ Gers, F. A.; Schmidhuber, E. (novembar 2001). „LSTM recurrent networks learn simple context-free and context-sensitive languages” (PDF). IEEE Transactions on Neural Networks. 12 (6): 1333—1340. ISSN 1045-9227. PMID 18249962. doi:10.1109/72.963769. Arhivirano iz originala (PDF) 10. 07. 2020. g. Pristupljeno 09. 06. 2022. 
  17. ^ Hochreiter, S.; Bengio, Y.; Frasconi, P.; Schmidhuber, J. (2001). „Gradient Flow in Recurrent Nets: the Difficulty of Learning Long-Term Dependencies (PDF Download Available)”. Ur.: Kremer and, S. C.; Kolen, J. F. A Field Guide to Dynamical Recurrent Neural Networks. IEEE Press. 
  18. ^ Fernández, Santiago; Graves, Alex; Schmidhuber, Jürgen (2007). „Sequence labelling in structured domains with hierarchical recurrent neural networks”. Proc. 20th Int. Joint Conf. On Artificial Intelligence, Ijcai 2007: 774—779. CiteSeerX 10.1.1.79.1887Slobodan pristup. 
  19. ^ a b Graves, Alex; Fernández, Santiago; Gomez, Faustino; Schmidhuber, Jürgen (2006). „Connectionist temporal classification: Labelling unsegmented sequence data with recurrent neural networks”. In Proceedings of the International Conference on Machine Learning, ICML 2006: 369—376. CiteSeerX 10.1.1.75.6306Slobodan pristup. 
  20. ^ Sepp Hochreiter; Jürgen Schmidhuber,   Nedostaje ili je prazan parametar |title= (pomoć)
  21. ^ Gers, Felix; Schmidhuber, Jürgen; Cummins, Fred (1999). „Learning to forget: Continual prediction with LSTM”. 9th International Conference on Artificial Neural Networks: ICANN '99. 1999. str. 850—855. ISBN 0-85296-721-7. doi:10.1049/cp:19991218. 
  22. ^ a b Klaus Greff; Rupesh Kumar Srivastava; Jan Koutník; Bas R. Steunebrink; Jürgen Schmidhuber (2015). „LSTM: A Search Space Odyssey”. IEEE Transactions on Neural Networks and Learning Systems. 28 (10): 2222—2232. Bibcode:2015arXiv150304069G. PMID 27411231. S2CID 3356463. arXiv:1503.04069Slobodan pristup. doi:10.1109/TNNLS.2016.2582924. 
  23. ^ a b v g d Schmidhuber, Juergen (10. 5. 2021). „Deep Learning: Our Miraculous Year 1990-1991”. arXiv:2005.05744Slobodan pristup [cs.NE]. 
  24. ^ a b Beaufays, Françoise (11. 8. 2015). „The neural networks behind Google Voice transcription”. Research Blog. Pristupljeno 2017-06-27. 
  25. ^ a b Sak, Haşim; Senior, Andrew; Rao, Kanishka; Beaufays, Françoise; Schalkwyk, Johan (24. 9. 2015). „Google voice search: faster and more accurate”. Research Blog (na jeziku: engleski). Pristupljeno 2017-06-27. 
  26. ^ Haridy, Rich (21. 8. 2017). „Microsoft's speech recognition system is now as good as a human”. newatlas.com. Pristupljeno 2017-08-27. 
  27. ^ Wierstra, Daan; Foerster, Alexander; Peters, Jan; Schmidhuber, Juergen (2005). „Solving Deep Memory POMDPs with Recurrent Policy Gradients”. International Conference on Artificial Neural Networks ICANN'07. 
  28. ^ „Neon prescription... or rather, New transcription for Google Voice”. Official Google Blog (na jeziku: engleski). 23. 7. 2015. Pristupljeno 2020-04-25.