LSTM
LSTM — rekurentā mākslīgā neironu tīkla (RNN) paveids “Long Short-Term Memory”,[1] kas tiek izmantots dziļās mācīšanās jomā. Atšķirībā no standarta neironu tīkliem, LSTM ir atgriezeniskās saites savienojumi. Ar LSTM var aprēķināt visu, ko var izmantot Tjūringa mašīna.[2] Tam nevar būt viens datu punkts (piem., attēls vai video). LSTM ir piemērots tādiem uzdevumiem kā saistītā rokraksta atpazīšana[3] un runas atpazīšana.[4] Bloomberg Business Week rakstīja: "Šīs īpašības neapšaubāmi padara LSTM par vislielāko komerciālo AI sasniegumu, ko izmanto visur, sākot no slimību prognozēšanas līdz mūzikas veidošanai."[5]
Bieži sastopama LSTM vienība sastāv no šūnas, ievada vārtiem, izvada vārtiem un aizmiršanas vārtiem. Šūna atceras vērtības patvaļīgos laika intervālos, un trīs vārti regulē informācijas plūsmu uz un no šūnas.
LSTM tika izstrādāts, lai risinātu pārslodzes un izzūdošo gradientu problēmas, kas var rasties, apmācot tradicionālos RNN. Relatīvā nejutība pret tukšiem datiem ir LSTM priekšrocība pār RNN, slēptajiem Markova modeļiem un citām secību mācīšanās metodēm daudzās lietojumprogrammatūrās.
Vēsture

1997. gadā Zeps Hohreiters un Jirgens Šmīdhūbers[1] ierosināja LSTM. Ieviešot Constant Error Carousel (CEC) vienības, LSTM nodarbojas ar pārslodzes un izzūdošām gradienta problēmām. LSTM bloka sākotnējā versija ietvēra šūnas, ievada un izvada vārtus.[6]
1999. gadā Felikss Gers, viņa padomnieks Jirgens Šmīdhūbers un Freds Cummins LSTM arhitektūrā ieviesa aizmiršanas vārtus (sauktus arī par “turēšanas vārtiem”),[7] ļaujot LSTM atjaunot savu stāvokli.[6]
2000. gadā Gers, Šmīdhūbers un Cummins pievienoja arhitektūrā savienojumus no šūnas uz vārtiem.[8] Turklāt izejas aktivizēšanas funkcija tika izlaista.[6]
Citu panākumu vidū LSTM sasniedza rekorda rezultātus dabiskās valodas teksta saspiešanā,[9] saistītā rokraksta atpazīšanā[10] un uzvarēja ICDAR rokraksta sacensībās (2009).
Kopš 2016. gada vadošie tehnoloģiju uzņēmumi, tostarp Google, Apple un Microsoft, izmantoja LSTM kā pamatelementu jaunos produktos.[11] Google izmantoja LSTM runas atpazīšanai viedtālrunī,[12][13] viedajam palīgam Allo[14] un Google tulkotājam.[15] Apple izmanto LSTM "Quicktype" funkcijai iPhone[16][17] un Siri.[18] Amazon izmanto LSTM iekš Amazon Alexa.[19]
2017. gadā Facebook katru dienu veica aptuveni 4,5 miljardus automātisko tulkojumu, izmantojot LSTM tīklus.[20]
2017. gadā Mičiganas Universitāte, IBM pētniecība un Kornela Universitāte pētnieki publicēja pētījumu “Knowledge Discovery and Data Mining” (KDD) konferencē.[21][22] Viņu pētījums apraksta jaunu neironu tīklu, kas noteiktus datu kopumus apstrādā labāk nekā plaši izmantotais LSTM tīkls.
Ideja
Teorētiski, klasiskais RNN var izsekot patvaļīgām ilgtermiņa atkarībām. RNN problēma ir skaitļošanā — RNN apmācības laikā, izmantojot back-propagation, gradienti var "izzust" (tie var būt nulle) vai “pārslogoties” (tie ir tendēti uz bezgalību), jo procesā iesaistītie aprēķini izmanto galīgās precizitātes skaitļus. Izmantojot LSTM vienības, RNN daļēji atrisina gradienta izzušanas problēmu, jo LSTM vienības ļauj gradientiem palikt nemainītiem. Tomēr LSTM tīkli joprojām var ciest no gradienta pārslodzes problēmas.[23]
Arhitektūra
Ir vairākas LSTM vienību arhitektūras. Kopēja arhitektūra sastāv no šūnas (LSTM vienības atmiņas daļas) un trīs informācijas plūsmas "regulatoriem" (vārtiem) — ievada vārtiem, izvada vārtiem un aizmiršanas vārtiem. Dažām LSTM vienības variācijām nav vieni vai vairāki no šiem vārtiem vai varbūt ir citi vārti. Piemēram, GRU nav izvada vārtu.
Šūna ir atbildīga par atkarības saglabāšanu starp ievades secībā esošajiem elementiem. Ievada vārti kontrolē, cik daudz jauno vērtību ieplūst šūnā, aizmiršanas vārti kontrolē, cik lielā mērā vērtība paliek šūnā, un izvada vārti kontrolē, kāda daļa šūnas vērtības tiek izmantota izvada aprēķināšanai LSTM vienībai. LSTM vārtu aktivizēšanas funkcija bieži ir loģistikas funkcija.
Ir savienojumi uz un no LSTM vārtiem, no kuriem daži atkārtojas. Šo savienojumu svars, kas jāapgūst treniņa laikā, nosaka, kā darbojas vārti.
Versijas
Turpmākajos vienādojumos mazie burti ir vektori. Matricas un satur ievada un atkārtojumu svarojuma saistību, kur indekss var būt gan ievada vārti , izvada vārti , aizmiršanas vārti vai atmiņas šūna , atkarībā no tā, kas tiek aprēķināts. Šajā sadaļā tiek izmants "vektora apzīmējums". Piemēram, ir nevis viena LSTM vienības šūna, bet LSTM vienību šūnas.
LSTM ar aizmiršanas vārtiem
Kompaktas vienādojumu formas padotajām LSTM vienībām ar aizmiršanas vārtiem:[1][8]
kur sākotnējās vērtības ir un un operators apzīmē Hadamard produktu (element-gudrs produkts). Apakšindekss apzīmē laika soli.
Mainīgie
- : LSTM vienības ievades vektors
- : aizmiršanas vārtu aktivizācijas vektors
- : ievades vārtu aktivizācijas vektors
- : izvades vārtu aktivizācijas vektors
- : slēptā stāvokļa vektors, zināms arī kā LSTM vienības izejas vektors
- : šūnas stāvokļa vektors
- , un : svara matricas un novirzes vektora parametri, kas jāapgūst apmācības laikā
mainīgie un attiecas uz ievades funkciju skaitu un slēpo vienības skaitu.
Aktivizācijas funkcijas
- : sigmoid funkcija.
- : hyperbolic tangent funkcija.
- : hyperbolic tangent funkcija vai kā LSTM raksts[24][25] raksta, .
Peephole LSTM

Peephole savienojumi ļauj vārtiem piekļūt constant error carousel (CEC), kura aktivizācija ir šūnas stāvoklis.[26] netiek izmantots, tā vietā vairums vietās izmanto .
Peephole konvolūcijas LSTM
Peephole konvolūcijas LSTM.[27] Simbols apzīmē konvulūcijas operatoru.
Atsauces
- ↑ 1,0 1,1 1,2 Veidne:Publikācijas atsauce
- ↑ Veidne:Grāmatas atsauce
- ↑ Veidne:Publikācijas atsauce
- ↑ Veidne:Tīmekļa atsauce
- ↑ Veidne:Ziņu atsauce
- ↑ 6,0 6,1 6,2 6,3 Veidne:Publikācijas atsauce
- ↑ Veidne:Publikācijas atsauce
- ↑ 8,0 8,1 Veidne:Publikācijas atsauce
- ↑ Veidne:Tīmekļa atsauce
- ↑ Veidne:Publikācijas atsauce
- ↑ Veidne:Publikācijas atsauce
- ↑ Veidne:Ziņu atsauce
- ↑ Veidne:Ziņu atsauce
- ↑ Veidne:Ziņu atsauce
- ↑ Veidne:Publikācijas atsauce
- ↑ Veidne:Tīmekļa atsauce
- ↑ Veidne:Ziņu atsauce
- ↑ Veidne:Tīmekļa atsauce
- ↑ Veidne:Tīmekļa atsauce
- ↑ Veidne:Tīmekļa atsauce
- ↑ Veidne:Tīmekļa atsauce
- ↑ Veidne:Tīmekļa atsauce
- ↑ Veidne:Tīmekļa atsauce
- ↑ Veidne:Publikācijas atsauce
- ↑ Veidne:Publikācijas atsauce
- ↑ Veidne:Publikācijas atsauce
- ↑ Veidne:Publikācijas atsauce