En lång kedja av korttidsminneselement ( eng. Long short-term memory ; LSTM ) är en typ av återkommande neural nätverksarkitektur som föreslagits 1997 av Sepp Hochreiter och Jurgen Schmidhuber [2] . Liksom de flesta återkommande neurala nätverk är ett LSTM-nätverk universellt i den meningen att det, med ett tillräckligt antal nätverkselement, kan utföra vilken beräkning som helst som en konventionell dator är kapabel till, vilket kräver en lämplig viktmatris , vilket kan betraktas som en program. Till skillnad från traditionella återkommande neurala nätverk är LSTM-nätverket väl anpassat för att lära sig uppgifterna att klassificera , bearbeta och förutsäga tidsserier i fall där viktiga händelser separeras av tidsfördröjningar med obestämd varaktighet och gränser. Den relativa immuniteten mot varaktigheten av tidsluckor ger LSTM en fördel gentemot alternativa återkommande neurala nätverk, dolda Markov-modeller och andra träningsmetoder för sekvenser i olika tillämpningar. Av de många prestationerna i LSTM-nätverk kan man peka ut de bästa resultaten i igenkänning av icke-segmenterad kontinuerlig handskrift [3] och segern 2009 i tävlingen för handskriftsigenkänning ( ICDAR ). LSTM-nätverk används också i taligenkänningsuppgifter , till exempel var LSTM -nätverket huvudkomponenten i nätverket, som 2013 nådde en rekordfelströskel på 17,7 % i fonemigenkänningsuppgiften på den klassiska naturliga talkorpusen TIMIT [4] . Från och med 2016 använder ledande teknikföretag inklusive Google , Apple , Microsoft och Baidu LSTM-nätverk som en grundläggande komponent i nya produkter [5] [6] .
Ett LSTM-nätverk är ett artificiellt neuralt nätverk som innehåller LSTM-moduler istället för eller utöver andra nätverksmoduler. En LSTM-modul är en återkommande nätverksmodul som kan lagra värden för både korta och långa tidsperioder. Nyckeln till denna förmåga är att LSTM-modulen inte använder en aktiveringsfunktion inom sina återkommande komponenter. Det lagrade värdet blir alltså inte suddigt i tid, och gradienten eller bestraffningen försvinner inte när man använder backpropagation through time-metoden när man tränar ett artificiellt neuralt nätverk .
LSTM är ofta grupperade i "block" som innehåller olika LSTM. En sådan anordning är typisk för "djupa" flerskiktiga neurala nätverk och bidrar till implementeringen av parallell beräkning med användning av lämplig utrustning. I formlerna nedan betecknar varje variabel, skriven med gemener kursiv stil, en vektor med dimensioner lika med antalet LSTM-moduler i blocket.
LSTM-block innehåller tre eller fyra "grindar" som används för att styra informationsflödet vid ingångarna och utgångarna på minnet för dessa block. Dessa grindar är implementerade som en logistisk funktion för att beräkna ett värde i området [0; ett]. Multiplicering med detta värde används för att delvis tillåta eller förneka informationsflödet in och ut ur minnet. Till exempel styr "ingångsgrinden" i vilken utsträckning ett nytt värde kommer in i minnet, och "glömgrinden" styr i vilken utsträckning ett värde bibehålls i minnet. "Utgångsgrinden" styr i vilken utsträckning värdet i minnet används vid beräkning av utgångsaktiveringsfunktionen för blocket. (I vissa implementeringar implementeras ingångsporten och glömporten som en enda grind. Tanken är att det gamla värdet ska glömmas bort när det finns ett nytt värde värt att komma ihåg).
Vikterna i LSTM-blocket ( och ) används för att ställa in driftriktningen för grindarna. Dessa vikter definieras för värdena som matas in i blocket (inklusive utdata från föregående tidssteg ) för var och en av grindarna. Således bestämmer LSTM-blocket hur det ska hantera sitt minne som en funktion av dessa värden, och styrketräning gör att LSTM-blocket kan lära sig en funktion som minimerar förlusten. LSTM-block tränas vanligtvis med hjälp av backpropagation över tid.
Traditionell LSTM med glömportar [2] [7] och ( står för Hadamard-produkt ):
Variabler:
Eye LSTM med glöm grindar [8] [9] används inte, används som ersättning på de flesta ställen:
Convolutional LSTM [10] ( står för convolution operator ):
För att minimera det totala felet för LSTM över hela uppsättningen av träningssekvenser, kan iterativ gradientnedstigning såsom tidsupprullad backpropagation användas för att ändra var och en av vikterna i proportion till dess derivata beroende på storleken på felet. Det största problemet med gradientnedstigning för vanliga återkommande neurala nätverk är att felgradienter minskar i en exponentiell takt när tidsfördröjningen mellan viktiga händelser ökar, vilket identifierades 1991 [11] [12] . Med LSTM-block, men när felvärden sprids tillbaka från utgångsskiktet, låses felet i blockets minne. Detta kallas en "felkarusell", som kontinuerligt "matar" ett fel tillbaka till var och en av grindarna tills de tränas att kassera ett värde. Således är regelbunden felåterförökning effektiv för att träna ett LSTM-block för att komma ihåg värden under mycket långa tidsperioder.
LSTM kan också tränas med en kombination av en evolutionär algoritm för vikterna i de dolda lagren och pseudoinversa matriser , eller en stödvektormaskin för vikterna i utlagret. [13] I förstärkningsinlärning kan LSTM tränas genom att direkt söka utrymmet efter strategier, evolutionära strategier eller genetiska algoritmer .
Exempel på LSTM-tillämpningar beskrivs: inom robotik [14] , för tidsserieanalys [15] , för taligenkänning [4] [16] [17] , vid rytmisk inlärning [9] , för generering av musikaliska kompositioner [18] , i grammatikinlärning ( engelsk artificiell grammatikinlärning ) [8] [19] [20] , i uppgifter för handskriftsigenkänning [21] [22] , för igenkänning av mänsklig aktivitet [23] , i uppgiften att identifiera homologa proteiner [24] .
Ordböcker och uppslagsverk |
---|
Typer av artificiella neurala nätverk | |
---|---|
|
Maskininlärning och datautvinning | |
---|---|
Uppgifter | |
Att lära sig med en lärare | |
klusteranalys | |
Dimensionalitetsreduktion | |
Strukturell prognos | |
Anomali upptäckt | |
Grafisk probabilistiska modeller | |
Neurala nätverk | |
Förstärkningsinlärning |
|
Teori | |
Tidskrifter och konferenser |
|