Rekurrentne närvivõrk

Ajalugu

Rekurrentsed närvivõrgud töötati välja 1980. aastatel. Hopfieldi võrgud avasts John Hopfield 1982. aastal.

LSTM

Pika lühiajalise mälu (ingl long short term memory, edaspidi LSTM) võrgud avastati Hochreiteri ja Schmidhuberi poolt 1997. aastal ja saavutati mitmeid täpsusrekordeid mitmetes rakendusvaldkondades.
2007. aasta paiku tegi LSTM murrangulisi samme kõnetuvastuses, edestades traditsioonilisi mudeleid teatud kõnetuvastusrakendustes. 2009. aastal oli LSTM võrk esimene RNN, mis võitis mustrituvastuskonkursi, saades esimesi kohti mitmetel konkurssidel segmenteerimata käekirja tuvastamises. 2014. aastal kasutas Hiina otsingumootor Baidu CTC (ingl Connectionist Temporal Classification) treenitud RNN-i, et murda Switchboard Hub5'00 kõnetuvastuse võrdlusalus, kasutamata lisaks ühtegi traditsioonilist kõne töötlemise meetodit.
LSTM parandas ka suure sõnavaraga kõnetuvastust ja kõnesünteesi, seda kasutati Google'i Androidis. 2015. aastal tegi Google'i kõnetuvastus teadaolevalt suure, 49% hüppe, kasutades CTC-treenitud LSTM-i, mida kasutas Google'i häälotsing.
LSTM purustas rekordeid, parandades masintõlget, keele modelleerimist ja mitmekeelset keeletöötlust. LSTM võrgud koos konvolutsiooniliste närvivõrkudega (CNN) täiustatasid ka automaatset pildi pealkirjastamist.

Arhitektuur

Järgnevalt on välja toodud kaks populaarset rekurrentse närvivõrgu arhitektuuri.

Tavaline rekurrentne närvivõrk

Tavaline RNN koosneb kolmest kihist: sisend-, peidetud rekurrentne- ja väljundkiht. Sisendkihil on  sisendsõlme. Sisend koosneb vektorite jadast läbi aja  {}. Sisendsõlmede ühendused on defineeritud kaalude maatriksis . Peidetud kiht koosneb rekurrentsetest sõlmedest, millel on vähemalt üks tagasileviühendus. Peidetud kihis on  sõlme, mis on omavahel ühendatud läbi aja rekurrentsete ühendustega. Peidetud kiht defineerib süsteemi oleku ehk mälu:
, kus
,
 on peidetud kihi aktivatsioonifunktsioon ja  on peidetud sõlmede kaaluvektor.
Peidetud kiht on ühendatud väljundkihti kaalutud ühendustega . Väljundkihil on  sõlme , mis arvutatakse nii:
, kus
 on aktivatsioonifunktsioon ja  on väljundkihi kaalude vektor.

Neid samme korratakse järjestikku üle aja 
Juhendamisega õppe jaoks diskreetses ajas, andmejadad reaalarvuliste väärtustega sisendvektoritest antakse sisendsõlmedele ükshaaval. Igal ajajärgul arvutab iga mittesisendsõlm oma praeguse aktivatsiooni mittelineaarse funktsioonina kõikidest temasse ühenduvate ühikute aktivatsioonide kaalutud summast. Näiteks kui sisendjada on kõnesignaal, mis vastab räägitud numbrile, siis tahetud lõppväljund jada lõpus võib olla silt, mis klassifitseerib numbri.
Iga jada tekitab vea, mille suurus arvuliselt on kõikide võrgu poolt arvutatud aktivatsioonide kõrvalekallete summa vastavatest tahetud signaalidest. Mitmeid jadasid sisaldava treeninghulga puhul on viga võrdne kõigi individuaalsete jadade vigade summaga.

Pikk lühiajaline mälu (LSTM)

LSTM on süvaõppesüsteem, mis väldib haihtuva gradiendi probleemi (ingl vanishing gradient problem). LSTM on tavaliselt täiendatud rekurrentsete lülitustega, mida kutsutakse unustuslülitusteks. LSTM takistab tagasilevivigade haihtumist või plahvatamist. Selle asemel saavad vead voolata läbi piiramata arvu virtuaalsete kihtide. Nii saab LSTM õppida ülesanded, mis nõuavad mälestusi ja sündmusi, mis juhtusid tuhandeid või isegi miljoneid diskreetseid ajajärke varem. Probleemi spetsiifilist LSTM sarnast topoloogiat saab edasi arendada. LSTM töötab isegi siis, kui oluliste sündmuste vahel on pikk aeg ning palju muid sündmusi ja suudab käsitleda signaale, mis hõlmavad väikese ja suure sagedusega komponente.
LSTM suudab õppida ära tundma kontekstitundlikke keeli erinevalt varasematast mudelitest, mis põhinesid Markovi peitmudelil ja muudel sarnastel kontseptidel.