Rekurrentne närvivõrk

Rekurrentne närvivõrk (RNN) on tehisnärvivõrkude klass, kus ühendused sõlmede vahel moodustavad suunatud graafi mööda jada. See võimaldab närvivõrgul ära tunda mustreid andmejadades. Erinevalt pärilevivõrkudest saab RNN kasutada oma sisemist olekut (mälu), et töödelda sisendite järjendeid. See muudab need kasutatavaks toimingutes nagu segmenteerimata ja ühendatud käekirja tuvastamine või kõnetuvastus.
Mõistet "rekurrentne närvivõrk" kasutatakse valimatult, et viidata kahele laiale liigile sarnase üldise struktuuriga närvivõrkudele, millest üks on lõpliku siirdega ja teine on piiramatu siirdega. Mõlemad neist väljendavad ajalist dünaamilist käitumist. Lõpliku siirdega rekurrentne võrk on tsükliteta suunatud graaf, mille saab kirja panna ja asendada rangelt pärilevivõrguga, samas piiramatu siirdega rekurrentne võrk on suunatud tsükleid sisaldav graaf, mida ei ole võimalik asendada pärilevivõrguga.
Nii lõpliku siirdega kui ka piiramatu siirdega rekurrentsed võrgud võivad omada lisaks veel salvestatud olekut, mis võib olla otsese närvivõrgu kontrolli all. Salvestatud olek võib olla ka asendatud teise võrgu või graafiga, kui see sisaldab ajalisi viivitusi või tagasisideahelaid. Sellised kontrollitud olekud on üks osa tüüpides LSTM ja GRU.
Ajalugu.
Rekurrentsed närvivõrgud töötati välja 1980. aastatel. Hopfieldi võrgud avastas 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 mitmes rakendusvaldkonnas.
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 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äiustasid 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 formula_1 sisendsõlme. Sisend koosneb vektorite jadast läbi aja formula_2 {formula_3}. Sisendsõlmede ühendused on defineeritud kaalude maatriksis formula_4. Peidetud kiht koosneb rekurrentsetest sõlmedest, millel on vähemalt üks tagasileviühendus. Peidetud kihis on formula_5 sõlme, mis on omavahel ühendatud läbi aja rekurrentsete ühendustega. Peidetud kiht defineerib süsteemi oleku ehk mälu:
formula_6, kus
formula_7,
formula_8 on peidetud kihi aktivatsioonifunktsioon ja formula_9 on peidetud sõlmede kaaluvektor.
Peidetud kiht on ühendatud väljundkihti kaalutud ühendustega formula_10. Väljundkihil on formula_11 sõlme formula_12, mis arvutatakse nii:
formula_13, kus
formula_14 on aktivatsioonifunktsioon ja formula_15 on väljundkihi kaalude vektor.
Neid samme korratakse järjestikku üle aja formula_16
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 varasematest mudelitest, mis põhinesid Markovi peitmudelil ja muudel sarnastel kontseptidel.
Rakendused.
Rekurrentsete närvivõrkude rakendusi: