En lang kæde af korttidshukommelseselementer ( eng. Long short-term memory ; LSTM ) er en type tilbagevendende neural netværksarkitektur foreslået i 1997 af Sepp Hochreiter og Jurgen Schmidhuber [2] . Som de fleste tilbagevendende neurale netværk er et LSTM-netværk universelt i den forstand, at det med et tilstrækkeligt antal netværkselementer kan udføre enhver beregning, som en konventionel computer er i stand til, hvilket kræver en passende vægtmatrix , som kan betragtes som en program. I modsætning til traditionelle tilbagevendende neurale netværk er LSTM-netværket godt tilpasset til at lære om opgaverne med at klassificere , behandle og forudsige tidsserier i tilfælde, hvor vigtige begivenheder er adskilt af tidsforsinkelser med ubestemt varighed og grænser. Den relative immunitet over for varigheden af tidsgab giver LSTM en fordel i forhold til alternative tilbagevendende neurale netværk, skjulte Markov-modeller og andre træningsmetoder til sekvenser i forskellige applikationer. Af de mange præstationer af LSTM-netværk kan man fremhæve de bedste resultater i genkendelse af ikke-segmenteret kontinuerlig håndskrift [3] og sejren i 2009 i håndskriftsgenkendelseskonkurrencen ( ICDAR ). LSTM-netværk bruges også i talegenkendelsesopgaver , for eksempel var LSTM -netværket hovedkomponenten i netværket, som i 2013 nåede en rekordfejltærskel på 17,7 % i fonemgenkendelsesopgaven på det klassiske naturlige talekorpus TIMIT [4] . Fra og med 2016 bruger førende teknologivirksomheder inklusive Google , Apple , Microsoft og Baidu LSTM-netværk som en grundlæggende komponent i nye produkter [5] [6] .
Et LSTM-netværk er et kunstigt neuralt netværk, der indeholder LSTM-moduler i stedet for eller ud over andre netværksmoduler. Et LSTM-modul er et tilbagevendende netværksmodul, der er i stand til at lagre værdier i både korte og lange perioder. Nøglen til denne evne er, at LSTM-modulet ikke bruger en aktiveringsfunktion i dets tilbagevendende komponenter. Den lagrede værdi bliver således ikke sløret i tide, og gradienten eller straffen forsvinder ikke, når man bruger backpropagation through time-metoden, når man træner et kunstigt neuralt netværk .
LSTM'er er ofte grupperet i "blokke", der indeholder forskellige LSTM'er. En sådan enhed er typisk for "dybe" flerlags neurale netværk og bidrager til implementeringen af parallel databehandling ved hjælp af passende udstyr. I formlerne nedenfor angiver hver variabel, skrevet med små kursiv, en vektor med dimensioner svarende til antallet af LSTM-moduler i blokken.
LSTM-blokke indeholder tre eller fire "gates", der bruges til at styre informationsstrømmen ved ind- og udgangene af hukommelsen af disse blokke. Disse porte er implementeret som en logistisk funktion til at beregne en værdi i området [0; en]. Multiplikation med denne værdi bruges til delvist at tillade eller afvise strømmen af information ind og ud af hukommelsen. For eksempel styrer "inputporten" i hvilket omfang en ny værdi kommer ind i hukommelsen, og "glemporten" styrer i hvilket omfang en værdi bevares i hukommelsen. "Outputporten" styrer, i hvilket omfang værdien i hukommelsen bruges til at beregne udgangsaktiveringsfunktionen for blokken. (I nogle implementeringer er input-porten og forget-porten implementeret som en enkelt port. Tanken er, at den gamle værdi skal glemmes, når der er en ny værdi, der er værd at huske).
Vægtene i LSTM-blokken ( og ) bruges til at indstille portenes driftsretning. Disse vægte er defineret for de værdier, der føres ind i blokken (inklusive output fra det forrige tidstrin ) for hver af portene. Således bestemmer LSTM-blokken, hvordan dens hukommelse skal styres som en funktion af disse værdier, og vægttræning giver LSTM-blokken mulighed for at lære en funktion, der minimerer tabet. LSTM-blokke trænes normalt ved hjælp af backpropagation over tid.
Traditionel LSTM med glemmeporte [2] [7] og ( står for Hadamard-produkt ):
Variabler:
Eye LSTM med glemmeporte [8] [9] bruges ikke, bruges som erstatning de fleste steder:
Convolutional LSTM [10] ( står for convolution operator ):
For at minimere den overordnede fejl af LSTM over hele sættet af træningssekvenser, kan iterativ gradientnedstigning såsom tidsudrullet backpropagation bruges til at ændre hver af vægtene i forhold til dens afledte afhængigt af størrelsen af fejlen. Hovedproblemet med gradientnedstigning for standard tilbagevendende neurale netværk er, at fejlgradienter falder med en eksponentiel hastighed, efterhånden som tidsforsinkelsen mellem vigtige begivenheder øges, hvilket blev identificeret i 1991 [11] [12] . Med LSTM-blokke, men når fejlværdier forplanter sig tilbage fra outputlaget, låses fejlen i blokkens hukommelse. Dette kaldes en "fejlkarrusel", som konstant "føder" en fejl tilbage til hver af portene, indtil de er trænet til at kassere en værdi. Således er regelmæssig fejltilbageføring effektiv til at træne en LSTM-blok til at huske værdier i meget lange tidsperioder.
LSTM kan også trænes ved hjælp af en kombination af en evolutionær algoritme for vægtene i de skjulte lag og pseudoinverse matricer eller en støttevektormaskine til vægtene i outputlaget . [13] I forstærkningslæring kan LSTM'er trænes ved direkte at søge i rummet efter strategier, evolutionære strategier eller genetiske algoritmer .
Eksempler på LSTM-anvendelse er beskrevet: i robotteknologi [14] , til tidsserieanalyse [15] , til talegenkendelse [4] [16] [17] , i rytmisk læring [9] , til generering af musikalske kompositioner [18] , i grammatikindlæring ( engelsk kunstig grammatikindlæring ) [8] [19] [20] , i opgaver med håndskriftsgenkendelse [21] [22] , til genkendelse af menneskelig aktivitet [23] , i opgaven med at identificere homologe proteiner [24] .
Ordbøger og encyklopædier |
---|
Typer af kunstige neurale netværk | |
---|---|
|
Machine learning og data mining | |
---|---|
Opgaver | |
At lære med en lærer | |
klyngeanalyse | |
Dimensionalitetsreduktion | |
Strukturel prognose | |
Anomali detektion | |
Grafer sandsynlighedsmodeller | |
Neurale netværk | |
Forstærkende læring |
|
Teori | |
Tidsskrifter og konferencer |
|