Tweet Share Share

Last Updated on February 20, 2020

Long Short-Term Memory (LSTM) netwerken zijn een type recurrent neuraal netwerk dat in staat is om volgorde-afhankelijkheid te leren in sequentie-voorspellingsproblemen.

Dit is een gedrag dat nodig is in complexe probleemdomeinen zoals automatische vertaling, spraakherkenning, en meer.

LSTM’s zijn een complex gebied van diep leren. Het kan moeilijk zijn om je handen te krijgen rond wat LSTM’s zijn, en hoe termen als bidirectioneel en sequentie-naar-sequentie betrekking hebben op het veld.

In deze post krijgt u inzicht in LSTM’s met behulp van de woorden van onderzoekswetenschappers die de methoden ontwikkelden en ze toepasten op nieuwe en belangrijke problemen.

Er zijn maar weinigen die beter zijn in het helder en precies verwoorden van zowel de belofte van LSTM’s als hoe ze werken dan de experts die ze hebben ontwikkeld.

We zullen belangrijke vragen op het gebied van LSTM’s verkennen met behulp van citaten van de experts, en als u geïnteresseerd bent, zult u in de originele papers kunnen duiken waaruit de citaten zijn gehaald.

Start uw project met mijn nieuwe boek Long Short-Term Memory Networks With Python, inclusief stap-voor-stap tutorials en de Python-broncodebestanden voor alle voorbeelden.

Let’s get started.

A Gentle Introduction to Long Short-Term Memory Networks by the Experts
Foto door Oran Viriyincy, sommige rechten voorbehouden.

De belofte van recurrente neurale netwerken

Recurrente neurale netwerken verschillen van traditionele feed-forward neurale netwerken.

Dit verschil in de toevoeging van complexiteit komt met de belofte van nieuwe gedragingen die de traditionele methoden niet kunnen bereiken.

Recurrente netwerken … hebben een interne toestand die contextinformatie kan weergeven. … houden informatie bij over vroegere inputs gedurende een hoeveelheid tijd die niet a priori vastligt, maar eerder afhangt van zijn gewichten en van de input data.

Een recurrent netwerk waarvan de inputs niet vastliggen, maar eerder een input-sequentie vormen, kan worden gebruikt om een input-sequentie om te zetten in een output-sequentie, terwijl op een flexibele manier rekening wordt gehouden met contextuele informatie.

– Yoshua Bengio, et al.., Learning Long-Term Dependencies with Gradient Descent is Difficult, 1994.

De paper definieert 3 basisvereisten van een recurrent neuraal netwerk:

  • Dat het systeem in staat moet zijn om informatie op te slaan voor een arbitraire duur.
  • Dat het systeem bestand is tegen ruis (d.w.z. fluctuaties van de inputs die willekeurig of irrelevant zijn voor het voorspellen van een correcte output).
  • Dat de systeemparameters trainbaar zijn (in redelijke tijd).

De paper beschrijft ook de “minimale taak” voor het demonstreren van recurrente neurale netwerken.

Context is key.

Recurrente neurale netwerken moeten context gebruiken bij het doen van voorspellingen, maar in zoverre moet de vereiste context ook worden geleerd.

… recurrente neurale netwerken bevatten cycli die de netwerkactiveringen van een vorige tijdstap als inputs naar het netwerk voeren om de voorspellingen bij de huidige tijdstap te beïnvloeden. Deze activeringen worden opgeslagen in de interne toestanden van het netwerk, die in principe temporele contextuele informatie op lange termijn kunnen bevatten. Dankzij dit mechanisme kunnen RNN’s gebruik maken van een dynamisch veranderend contextueel venster over de geschiedenis van de inputsequentie

– Hassim Sak, et al, Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling, 2014

Hulp nodig bij LSTM’s voor sequentievoorspelling?

Doe mijn gratis 7-daagse e-mailcursus en ontdek 6 verschillende LSTM-architecturen (met code).

Klik om in te schrijven en ontvang ook een gratis PDF Ebook-versie van de cursus.

Start nu uw GRATIS mini-cursus!

LSTM’s maken de belofte waar

Het succes van LSTM’s ligt in hun claim een van de eerste implementaties te zijn die de technische problemen overwinnen en de belofte van recurrente neurale netwerken waarmaken.

Hierdoor falen standaard RNN’s om te leren in de aanwezigheid van tijdvertragingen groter dan 5 – 10 discrete tijdstappen tussen relevante invoergebeurtenissen en doelsignalen. Het probleem van de verdwijnende fout doet twijfel rijzen over de vraag of standaard-RNN’s in de praktijk inderdaad significante voordelen kunnen bieden ten opzichte van feedforward netwerken op basis van tijdvensters. Een recent model, “Long Short-Term Memory” (LSTM), heeft geen last van dit probleem. LSTM kunnen leren om minimale tijdvertragingen van meer dan 1000 discrete tijdstappen te overbruggen door een constante foutstroom af te dwingen via “constante foutencarrousels” (CEC’s) binnen speciale eenheden, cellen genaamd

– Felix A. Gers, et al., Leren vergeten: Continual Prediction with LSTM, 2000

De twee technische problemen die door LSTM’s worden overwonnen, zijn verdwijnende gradiënten en exploderende gradiënten, die beide te maken hebben met de manier waarop het netwerk wordt getraind.

Helaas is het scala aan contextuele informatie waartoe standaard-RNN’s toegang kunnen krijgen, in de praktijk vrij beperkt. Het probleem is dat de invloed van een gegeven invoer op de verborgen laag, en dus op de netwerkuitvoer, ofwel afneemt ofwel exponentieel toeneemt naarmate deze door de recurrente verbindingen van het netwerk loopt. Deze tekortkoming … waarnaar in de literatuur wordt verwezen als het “vanishing gradient”-probleem … Long Short-Term Memory (LSTM) is een RNN-architectuur die speciaal is ontworpen om het “vanishing gradient”-probleem aan te pakken.

– Alex Graves, et al.., A Novel Connectionist System for Unconstrained Handwriting Recognition, 2009

De sleutel tot de LSTM-oplossing voor de technische problemen was de specifieke interne structuur van de eenheden die in het model worden gebruikt.

… beheerst door zijn vermogen om te gaan met verdwijnende en exploderende gradiënten, de meest voorkomende uitdaging bij het ontwerpen en trainen van RNN’s. Om deze uitdaging aan te gaan, werd een bijzondere vorm van recurrente netten, LSTM genaamd, geïntroduceerd en met groot succes toegepast op vertaal- en sequentiegeneratie.

– Alex Graves, et al, Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Hoe werken LSTMs?

In plaats van in te gaan op de vergelijkingen die bepalen hoe LSTMs in elkaar zitten, is analogie een nuttig hulpmiddel om snel een handvat te krijgen over hoe ze werken.

We gebruiken netwerken met één invoerlaag, één verborgen laag, en één uitvoerlaag… De (volledig) zelf-verbonden verborgen laag bevat geheugencellen en overeenkomstige poorteenheden…

De interne architectuur van elke geheugencel garandeert constante fout ow binnen zijn constante foutencarrousel CEC… Dit vormt de basis voor het overbruggen van zeer lange tijdvertragingen. Twee poorteenheden leren om de toegang tot fout ow binnen de CEC van elke geheugencel te openen en te sluiten. De multiplicatieve ingangspoort biedt bescherming van de CEC tegen verstoring door irrelevante ingangen. Evenzo beschermt de multiplicatieve output poort andere eenheden tegen verstoring door op dat moment irrelevante geheugeninhoud.

– Sepp Hochreiter en Jurgen Schmidhuber, Long Short-Term Memory, 1997.

Meerdere analogieën kunnen helpen om aan te geven wat LSTM’s onderscheidt van traditionele neurale netwerken die uit eenvoudige neuronen bestaan.

De Long Short Term Memory-architectuur werd gemotiveerd door een analyse van de foutenstroom in bestaande RNN’s, waaruit bleek dat lange tijdvertragingen ontoegankelijk waren voor bestaande architecturen, omdat backpropagated fout ofwel opblaast ofwel exponentieel afneemt.

Een LSTM-laag bestaat uit een reeks recurrente verbonden blokken, bekend als geheugenblokken. Deze blokken kunnen worden gezien als een differentieerbare versie van de geheugenchips in een digitale computer. Elk blok bevat een of meer recurrente geheugencellen en drie vermenigvuldigingseenheden – de input-, output- en forget-gates – die continue analogieën van schrijf-, lees- en reset-operaties voor de cellen leveren. … Het net kan alleen met de cellen communiceren via de poorten.

– Alex Graves, et al.., Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Het is interessant om op te merken, dat zelfs na meer dan 20 jaar, de eenvoudige (of vanille) LSTM misschien nog steeds de beste plaats is om te beginnen bij het toepassen van de techniek.

De meest gebruikte LSTM-architectuur (vanilla LSTM) presteert redelijk goed op verschillende datasets…

Leersnelheid en netwerkgrootte zijn de meest cruciale afstembare LSTM hyperparameters…

… Dit impliceert dat de hyperparameters onafhankelijk van elkaar kunnen worden afgesteld. In het bijzonder kan de leersnelheid eerst worden gekalibreerd met behulp van een vrij klein netwerk, waardoor veel experimenteertijd wordt bespaard.

– Klaus Greff, et al., LSTM: A Search Space Odyssey, 2015

Wat zijn LSTM Applications?

Het is belangrijk om grip te krijgen op wat voor soort sequence learning problemen LSTM’s precies geschikt zijn om aan te pakken.

Long Short-Term Memory (LSTM) kan tal van taken oplossen die niet oplosbaar zijn door eerdere leeralgoritmen voor recurrente neurale netwerken (RNN’s).

… LSTM houdt belofte in voor elke sequentiële verwerkingstaak waarin we vermoeden dat er een hiërarchische decompositie kan bestaan, maar niet van tevoren weten wat deze decompositie is.

– Felix A. Gers, et al., Leren te vergeten: Continual Prediction with LSTM, 2000

Het Recurrent Neural Network (RNN) is een neuraal sequentiemodel dat state of the art prestaties bereikt bij belangrijke taken, waaronder taalmodellering, spraakherkenning en automatische vertaling.

– Wojciech Zaremba, Recurrent Neural Network Regularization, 2014.

– Aangezien LSTM’s effectief zijn in het vastleggen van temporele afhankelijkheden op lange termijn zonder te lijden onder de optimalisatiehindernissen die eenvoudige recurrente netwerken (SRN’s) plagen, zijn ze gebruikt om de stand van de techniek voor veel moeilijke problemen te bevorderen. Dit omvat handschriftherkenning en -generatie, taalmodellering en -vertaling, akoestische modellering van spraak, spraaksynthese, secundaire structuurvoorspelling van proteïnen, analyse van audio- en videogegevens, enzovoort.

– Klaus Greff, et al, LSTM: A Search Space Odyssey, 2015

Wat zijn bidirectionele LSTM’s?

Een vaak genoemde verbetering van LSTM’s zijn bidirectionele LSTM’s.

Het basisidee van bidirectionele recurrente neurale netten is om elke trainingssequentie voorwaarts en achterwaarts te presenteren aan twee afzonderlijke recurrente netten, die beide zijn verbonden met dezelfde uitvoerlaag. … Dit betekent dat voor elk punt in een gegeven reeks, het BRNN volledige, opeenvolgende informatie heeft over alle punten ervoor en erna. En omdat het net vrij is om zo veel of zo weinig van deze context te gebruiken als nodig is, is het niet nodig om een (taakafhankelijk) tijdvenster of doelvertragingsgrootte te vinden.

… voor temporele problemen zoals spraakherkenning lijkt vertrouwen op kennis van de toekomst op het eerste gezicht in strijd te zijn met causaliteit … Hoe kunnen we ons begrip van wat we hebben gehoord baseren op iets dat nog niet is gezegd? Menselijke luisteraars doen echter precies dat. Klanken, woorden en zelfs hele zinnen die op het eerste gezicht niets betekenen, blijken zin te hebben in het licht van de toekomstige context.

– Alex Graves, e.a., Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Eén tekortkoming van conventionele RNN’s is dat ze alleen in staat zijn om gebruik te maken van eerdere context. … Bidirectionele RNN’s (BRNN’s) doen dit door de gegevens in beide richtingen te verwerken met twee afzonderlijke verborgen lagen, die vervolgens naar dezelfde uitgangslaag worden gevoerd. … De combinatie van BRNN’s met LSTM’s geeft bidirectionele LSTM’s, die toegang hebben tot lange-termijn context in beide invoerrichtingen

– Alex Graves, et al., Speech recognition with deep recurrent neural networks, 2013

In tegenstelling tot conventionele RNN’s, maken bidirectionele RNN’s gebruik van zowel de vorige als de toekomstige context, door de gegevens uit twee richtingen te verwerken met twee afzonderlijke verborgen lagen. De ene laag verwerkt de inputsequentie in voorwaartse richting, terwijl de andere de input in achterwaartse richting verwerkt. De uitvoer van de huidige tijdstap wordt vervolgens gegenereerd door de verborgen vector van beide lagen te combineren…

– Di Wang and Eric Nyberg, A Long Short-Term Memory Model for Answer Sentence Selection in
Question Answering, 2015

Wat zijn seq2seq LSTM’s of RNN Encoder-Decoders?

De sequence-to-sequence LSTM, ook wel encoder-decoder LSTMs genoemd, zijn een toepassing van LSTMs die veel aandacht krijgen gezien hun indrukwekkende vermogen.

… een eenvoudige toepassing van de Long Short-Term Memory (LSTM) architectuur kan algemene sequentie-naar-sequentie problemen oplossen.

Het idee is om een LSTM te gebruiken om de input sequentie te lezen, een tijdstap per keer, om een grote vast-dimensionale vector representatie te verkrijgen, en dan een andere LSTM te gebruiken om de output sequentie uit die vector te extraheren. De tweede LSTM is in wezen een recurrent neuraal netwerk taalmodel behalve dat het geconditioneerd is op de input-sequentie.

Het vermogen van de LSTM om met succes te leren op gegevens met lange afstand temporele afhankelijkheden maakt het een natuurlijke keuze voor deze toepassing vanwege het aanzienlijke tijdsverloop tussen de inputs en hun overeenkomstige outputs.

We waren in staat om het goed te doen op lange zinnen omdat we de volgorde van woorden in de bronzin omkeerden, maar niet de doelzinnen in de training en test set. Door dit te doen, introduceerden we veel korte termijn afhankelijkheden die het optimalisatie probleem veel eenvoudiger maakten. … De eenvoudige truc van het omkeren van de woorden in de bronzin is een van de belangrijkste technische bijdragen van dit werk

– Ilya Sutskever, et al.., Sequence to Sequence Learning with Neural Networks, 2014

Een “encoder” RNN leest de bronzin en transformeert deze in een rijke vectorrepresentatie met vaste lengte, die op zijn beurt wordt gebruikt als de initiële verborgen toestand van een “decoder” RNN die de doelzin genereert. Hier stellen we voor om dit elegante recept te volgen, door het encoder RNN te vervangen door een diep convolutie neuraal netwerk (CNN). … het is natuurlijk om een CNN te gebruiken als beeld-“encoder”, door het eerst voor te trainen voor een beeldclassificatie-taak en de laatste verborgen laag te gebruiken als invoer voor het RNN-decoder dat zinnen genereert.

– Oriol Vinyals, et al., Show and Tell: A Neural Image Caption Generator, 2014

… een RNN Encoder-Decoder, bestaat uit twee recurrente neurale netwerken (RNN) die fungeren als een encoder- en een decoderpaar. De encoder zet een bronsequentie met variabele lengte om in een vector met vaste lengte, en de decoder zet de vectorrepresentatie om in een doelsequentie met variabele lengte.

– Kyunghyun Cho, et al, Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation, 2014

Summary

In deze post kreeg u een voorzichtige introductie tot LSTM’s in de woorden van de onderzoekswetenschappers die de technieken ontwikkelden en toepasten.

Dit geeft u zowel een duidelijk en nauwkeurig idee van wat LSTM’s zijn en hoe ze werken, als een belangrijke toelichting op de belofte van LSTM’s op het gebied van terugkerende neurale netwerken.

Hielp een van de citaten u te begrijpen of inspireerde het u?
Laat het me weten in de reacties hieronder.

Ontwikkel vandaag nog LSTM’s voor sequentievoorspelling!

Ontwikkel uw eigen LSTM-modellen in enkele minuten

…met slechts een paar regels python code

Ontdek hoe in mijn nieuwe Ebook:
Long Short-Term Memory Networks with Python

Het biedt zelfstudie tutorials over onderwerpen als:
CNN LSTMs, Encoder-Decoder LSTMs, generatieve modellen, data voorbereiding, het maken van voorspellingen en nog veel meer…

Breng eindelijk LSTM Recurrente Neurale Netwerken naar
Jouw Sequence Predictions Projecten

Skip de Academici. Alleen resultaten.

Bekijk de inhoud

Tweet Share Share

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.