LSTM

No ''testwiki''
Pāriet uz navigāciju Pāriet uz meklēšanu

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

LSTM šūna var apstrādāt datus secīgi un saglabāt tās slēpto stāvokli laika gaitā.

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 Wqun Uqsatur ievada un atkārtojumu svarojuma saistību, kur indekss q var būt gan ievada vārti i, izvada vārti o, aizmiršanas vārti f vai atmiņas šūna c, atkarībā no tā, kas tiek aprēķināts. Šajā sadaļā tiek izmants "vektora apzīmējums". Piemēram, cth ir nevis viena LSTM vienības šūna, bet h 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]

ft=σg(Wfxt+Ufht1+bf)it=σg(Wixt+Uiht1+bi)ot=σg(Woxt+Uoht1+bo)ct=ftct1+itσc(Wcxt+Ucht1+bc)ht=otσh(ct)

kur sākotnējās vērtības ir c0=0 un h0=0 un operators apzīmē Hadamard produktu (element-gudrs produkts). Apakšindekss t apzīmē laika soli.

Mainīgie

  • xtd: LSTM vienības ievades vektors
  • fth: aizmiršanas vārtu aktivizācijas vektors
  • ith: ievades vārtu aktivizācijas vektors
  • oth: izvades vārtu aktivizācijas vektors
  • hth: slēptā stāvokļa vektors, zināms arī kā LSTM vienības izejas vektors
  • cth: šūnas stāvokļa vektors
  • Wh×d, Uh×h un bh: svara matricas un novirzes vektora parametri, kas jāapgūst apmācības laikā

mainīgie d un h attiecas uz ievades funkciju skaitu un slēpo vienības skaitu.

Aktivizācijas funkcijas

  • σg: sigmoid funkcija.
  • σc: hyperbolic tangent funkcija.
  • σh: hyperbolic tangent funkcija vai kā LSTM raksts[24][25] raksta, σh(x)=x.

Peephole LSTM

Peephole LSTM vienība ar ievada i, izvada o, un aizmiršanas fvārtiem. Katrus no šiem vārtiem var uzskatīt par "standarta" neironu vairāku slāņu neirona tīklā. Tie, izmantojot aktivizēšanas funkciju, aprēķina svērto summu aktivizāciju. it,ot un ftlaika tgaitā attēlo attiecīgi ievada, izvada un aizmiršanas vārtu aktivizēšanu. 3 izejas bultas no atmiņas šūnas c uz 3 vārtiem i,o un f attēlo peephole savienojumus. Šie peephole savienojumi faktiski apzīmē atmiņas šūnas caktivizēšanas ieguldījumu laikā ar soli t1, t.i. ieguldījumu ct1 nevis ct, kā bildē attēlots. Citiem vārdiem sakot, vārti i,o un f aprēķina aktivizēšanos ar laika soli t (it,ot un ft), ņemot vērā arī atmiņas šūnas aktivizēšanu c ar laika soli t1,t.i, ct1. Vienīgā bulta, kas iziet no atmiņas šūnas no kreisās uz labo pusi, nav peephole savienojums un apzīmē ct. Mazie aplīši ar × simbolu ir element-gudrs reizinājums. Lielie apļi ar S veida līkni atspoguļo diferencējamas funkcijas pielietojumu (piemēram, sigmoido funkciju) ar svērto summu. Ir arī daudzi citi LSTM veidi.[6]

Peephole savienojumi ļauj vārtiem piekļūt constant error carousel (CEC), kura aktivizācija ir šūnas stāvoklis.[26] ht1 netiek izmantots, tā vietā vairums vietās izmanto ct1.

ft=σg(Wfxt+Ufct1+bf)it=σg(Wixt+Uict1+bi)ot=σg(Woxt+Uoct1+bo)ct=ftct1+itσc(Wcxt+Ucct1+bc)ht=otσh(ct)

Peephole konvolūcijas LSTM

Peephole konvolūcijas LSTM.[27] Simbols * apzīmē konvulūcijas operatoru.

ft=σg(Wf*xt+Uf*ht1+Vfct1+bf)it=σg(Wi*xt+Ui*ht1+Vict1+bi)ct=ftct1+itσc(Wc*xt+Uc*ht1+bc)ot=σg(Wo*xt+Uo*ht1+Voct+bo)ht=otσh(ct)

Atsauces

Veidne:Atsauces