LSTM blinkt uit in reeksvoorspellingstaken, waarbij afhankelijkheden op de lange termijn worden vastgelegd. Ideaal voor tijdreeksen, automatische vertalingen en spraakherkenning vanwege orderafhankelijkheid. Het artikel biedt een diepgaande introductie tot LSTM en behandelt het LSTM-model, de architectuur, de werkingsprincipes en de cruciale rol die ze spelen in verschillende toepassingen.
Wat is LSTM?
Langetermijngeheugen is een verbeterde versie van een terugkerend neuraal netwerk ontworpen door Hochreiter & Schmidhuber.
leegte 0
Een traditionele RNN heeft een enkele verborgen toestand die door de tijd heen wordt doorgegeven, waardoor het voor het netwerk moeilijk kan worden om afhankelijkheden op de lange termijn te leren. LSTM-model pak dit probleem aan door een geheugencel te introduceren, een container die informatie voor een langere periode kan vasthouden.
LSTM-architecturen zijn in staat langdurige afhankelijkheden in sequentiële gegevens te leren, waardoor ze zeer geschikt zijn voor taken zoals taal vertaling , spraakherkenning, en voorspellen van tijdreeksen .
LSTM's kunnen ook worden gebruikt in combinatie met andere neurale netwerkarchitecturen, zoals Convolutionele neurale netwerken (CNN's) voor beeld- en videoanalyse.
LSTM-architectuur
De LSTM-architecturen omvatten de geheugencel die wordt bestuurd door drie poorten: de ingangspoort, de vergeetpoort en de uitgangspoort. Deze poorten beslissen welke informatie moet worden toegevoegd aan, verwijderd uit en uitgevoerd uit de geheugencel.
- De ingangspoort bepaalt welke informatie aan de geheugencel wordt toegevoegd.
- De vergeetpoort bepaalt welke informatie uit de geheugencel wordt verwijderd.
- De uitgangspoort bepaalt welke informatie uit de geheugencel wordt uitgevoerd.
Hierdoor kunnen LSTM-netwerken informatie selectief vasthouden of weggooien terwijl deze door het netwerk stroomt, waardoor ze afhankelijkheden op de lange termijn kunnen leren.
De LSTM onderhoudt een verborgen toestand, die fungeert als het kortetermijngeheugen van het netwerk. De verborgen status wordt bijgewerkt op basis van de invoer, de vorige verborgen status en de huidige status van de geheugencel.
Bidirectioneel LSTM-model
Bidirectionele LSTM (Bi LSTM/BLSTM) is een terugkerend neuraal netwerk (RNN) dat sequentiële gegevens zowel in voorwaartse als achterwaartse richting kan verwerken. Hierdoor kan Bi LSTM afhankelijkheden over langere afstanden in sequentiële gegevens leren dan traditionele LSTM's, die sequentiële gegevens slechts in één richting kunnen verwerken.
- Bi LSTM's bestaan uit twee LSTM-netwerken, één die de invoerreeks in voorwaartse richting verwerkt en één die de invoerreeks in achterwaartse richting verwerkt.
- De outputs van de twee LSTM-netwerken worden vervolgens gecombineerd om de uiteindelijke output te produceren.
LSTM-modellen, waaronder Bi LSTM's, hebben state-of-the-art prestaties aangetoond bij verschillende taken, zoals machinevertaling, spraakherkenning en tekstsamenvatting.
Netwerken in LSTM-architecturen kunnen worden gestapeld om diepe architecturen te creëren, waardoor het leren van nog complexere patronen en hiërarchieën in sequentiële gegevens mogelijk wordt. Elke LSTM-laag in een gestapelde configuratie legt verschillende niveaus van abstractie en temporele afhankelijkheden binnen de invoergegevens vast.
LSTM werkt
De LSTM-architectuur heeft een ketenstructuur die vier neurale netwerken en verschillende geheugenblokken bevat cellen .
Informatie wordt vastgehouden door de cellen en de geheugenmanipulaties worden uitgevoerd door de cellen poorten. Er zijn drie poorten –
Vergeet Poort
De informatie die niet langer bruikbaar is in de celstatus wordt verwijderd met de vergeetpoort. Twee ingangen X T (invoer op het specifieke tijdstip) en H t-1 (vorige celuitvoer) worden naar de poort gevoerd en vermenigvuldigd met gewichtsmatrices, gevolgd door de toevoeging van bias. De resulterende wordt door een activeringsfunctie geleid die een binaire uitvoer oplevert. Als voor een bepaalde celstatus de uitvoer 0 is, wordt het stukje informatie vergeten en voor uitvoer 1 wordt de informatie bewaard voor toekomstig gebruik. De vergelijking voor de vergeetpoort is:
waar:
- W_f vertegenwoordigt de gewichtsmatrix die is geassocieerd met de vergeetpoort.
- [h_t-1, x_t] geeft de aaneenschakeling van de huidige invoer en de vorige verborgen status aan.
- b_f is de bias met de vergeetpoort.
- σ is de sigmoïde activeringsfunctie.

Ingangspoort
Het toevoegen van nuttige informatie aan de celstatus gebeurt door de ingangspoort. Eerst wordt de informatie geregeld met behulp van de sigmoïdefunctie en worden de te onthouden waarden gefilterd, vergelijkbaar met de vergeetpoort, met behulp van ingangen H t-1 En X T .. Vervolgens wordt een vector gemaakt met behulp van visachtig functie die een uitvoer geeft van -1 tot +1, die alle mogelijke waarden van h bevatt-1En X T . Tenslotte worden de waarden van de vector en de gereguleerde waarden vermenigvuldigd om de bruikbare informatie te verkrijgen. De vergelijking voor de ingangspoort is:
We vermenigvuldigen de vorige toestand met fT, waarbij we de informatie negeerden die we eerder hadden genegeerd. Vervolgens omvatten we iT*CT. Dit vertegenwoordigt de bijgewerkte kandidaatwaarden, aangepast voor het bedrag dat we hebben gekozen om elke statuswaarde bij te werken.
waar
- ⊙ staat voor elementaire vermenigvuldiging
- tanh is de tanh-activeringsfunctie
Uitgangspoort
De taak om nuttige informatie uit de huidige celstatus te extraheren die als uitvoer moet worden gepresenteerd, wordt uitgevoerd door de uitvoerpoort. Eerst wordt een vector gegenereerd door de tanh-functie op de cel toe te passen. Vervolgens wordt de informatie gereguleerd met behulp van de sigmoïdefunctie en gefilterd op de waarden die moeten worden onthouden met behulp van invoer
Java-generator voor willekeurige getallen
Toepassingen van LSTM
Enkele van de bekende toepassingen van LSTM zijn onder meer:
- Taalmodellering: LSTM's zijn gebruikt voor taken op het gebied van natuurlijke taalverwerking, zoals taalmodellering, automatische vertaling en samenvatting van teksten. Ze kunnen worden getraind om samenhangende en grammaticaal correcte zinnen te genereren door de afhankelijkheden tussen woorden in een zin te leren.
- Spraakherkenning: LSTM's zijn gebruikt voor spraakherkenningstaken zoals het omzetten van spraak naar tekst en het herkennen van gesproken commando's. Ze kunnen worden getraind om patronen in spraak te herkennen en deze aan de bijbehorende tekst te koppelen.
- Tijdreeksvoorspellingen: LSTM's zijn gebruikt voor het voorspellen van tijdreeksen, zoals het voorspellen van aandelenkoersen, het weer en het energieverbruik. Ze kunnen patronen in tijdreeksgegevens leren en deze gebruiken om voorspellingen te doen over toekomstige gebeurtenissen.
- Onregelmatigheidsdetectie: LSTM's zijn gebruikt voor het detecteren van afwijkingen, zoals het detecteren van fraude en netwerkinbraak. Ze kunnen worden getraind om patronen in gegevens te identificeren die afwijken van de norm en deze als potentiële afwijkingen te markeren.
- Aanbevolen systemen: LSTM's zijn gebruikt voor aanbevelingstaken zoals het aanbevelen van films, muziek en boeken. Ze kunnen patronen in het gebruikersgedrag leren en deze gebruiken om gepersonaliseerde aanbevelingen te doen.
- Video-analyse: LSTM's zijn gebruikt voor videoanalysetaken zoals objectdetectie, activiteitsherkenning en actieclassificatie. Ze kunnen worden gebruikt in combinatie met andere neurale netwerkarchitecturen, zoals Convolutional Neural Networks (CNN's), om videogegevens te analyseren en nuttige informatie te extraheren.
LTSM versus RNN
Functie | LSTM (Lange Korte Termijn Geheugen) | RNN (terugkerend neuraal netwerk) |
|---|---|---|
Geheugen | Heeft een speciale geheugeneenheid waarmee het afhankelijkheden op lange termijn in sequentiële gegevens kan leren | Beschikt niet over een geheugeneenheid |
Directionaliteit | Kan worden getraind om sequentiële gegevens zowel in voorwaartse als achterwaartse richting te verwerken Java-arraylist-methoden | Kan alleen worden getraind om opeenvolgende gegevens in één richting te verwerken |
Opleiding | Moeilijker te trainen dan RNN vanwege de complexiteit van de poorten en geheugeneenheid | Gemakkelijker te trainen dan LSTM |
Leren van afhankelijkheid op lange termijn | Ja | Beperkt |
Mogelijkheid om sequentiële gegevens te leren | Ja | Ja |
Toepassingen | Machinevertaling, spraakherkenning, tekstsamenvatting, natuurlijke taalverwerking, tijdreeksvoorspelling | Natuurlijke taalverwerking, machinevertaling, spraakherkenning, beeldverwerking, videoverwerking svm |
Probleem met afhankelijkheden op lange termijn in RNN
Terugkerende neurale netwerken (RNN's) zijn ontworpen om sequentiële gegevens te verwerken door een verborgen toestand te behouden die informatie uit eerdere tijdstappen vastlegt. Ze worden echter vaak geconfronteerd met uitdagingen bij het leren van afhankelijkheden op de lange termijn, waarbij informatie uit verre tijdstappen cruciaal wordt voor het maken van nauwkeurige voorspellingen. Dit probleem staat bekend als het verdwijnende gradiënt- of exploderende gradiëntprobleem.
Hieronder vindt u een aantal veelvoorkomende problemen:
Verdwijnende verloop
Tijdens terugpropagatie door de tijd kunnen gradiënten extreem klein worden omdat ze worden vermenigvuldigd door de keten van terugkerende verbindingen, waardoor het model moeite heeft met het leren van afhankelijkheden die door veel tijdstappen van elkaar gescheiden zijn.
Exploderende gradiënt
Omgekeerd kunnen gradiënten exploderen tijdens backpropagation, wat leidt tot numerieke instabiliteit en het moeilijk maakt voor het model om te convergeren.
Verschillende varianten op het langetermijngeheugen
In de loop van de tijd zijn er verschillende varianten en verbeteringen aan de oorspronkelijke LSTM-architectuur voorgesteld.
Vanille LSTM
Dit is de originele LSTM-architectuur voorgesteld door Hochreiter en Schmidhuber. Het omvat geheugencellen met invoer-, vergeet- en uitvoerpoorten om de informatiestroom te controleren. Het belangrijkste idee is om het netwerk selectief informatie uit de geheugencel te laten bijwerken en vergeten.
Kijkgatverbindingen
In het kijkgaatje LSTM mogen de poorten naast de verborgen staat ook naar de celstatus kijken. Hierdoor kunnen de poorten rekening houden met de celstatus bij het nemen van beslissingen, waardoor meer contextinformatie wordt geboden.
Gated terugkerende eenheid (GRU)
GRU is een alternatief voor LSTM, ontworpen om eenvoudiger en computationeel efficiënter te zijn. Het combineert de invoer- en vergeetpoorten in één enkele updatepoort en voegt de celstatus en verborgen status samen. Hoewel GRU's minder parameters hebben dan LSTM's, is aangetoond dat ze in de praktijk vergelijkbaar presteren.
Conclusie
Long Short-Term Memory (LSTM) is een krachtig type terugkerend neuraal netwerk (RNN) dat zeer geschikt is voor het verwerken van sequentiële gegevens met langdurige afhankelijkheden. Het pakt het verdwijnende gradiëntprobleem aan, een veel voorkomende beperking van RNN's, door een poortmechanisme te introduceren dat de informatiestroom door het netwerk controleert. Hierdoor kunnen LSTM's informatie uit het verleden leren en behouden, waardoor ze effectief zijn voor taken als automatische vertaling, spraakherkenning en natuurlijke taalverwerking.
Controleer ook:
- Lange kortetermijngeheugen (LSTM) RNN in Tensorflow
- Tekstgeneratie met behulp van een terugkerend langetermijngeheugennetwerk
- Langetermijngeheugennetwerken Uitleg
Veelgestelde vragen (FAQ's)
1. Wat is LSTM en waarom wordt het gebruikt?
LSTM, of Long Short-Term Memory, is een soort terugkerend neuraal netwerk dat is ontworpen voor sequentietaken en uitblinkt in het vastleggen en benutten van langetermijnafhankelijkheden in gegevens.
2. Hoe werkt LSTM?
LSTM's gebruiken een celstatus om informatie over eerdere invoer op te slaan. Deze celstatus wordt bij elke stap van het netwerk bijgewerkt en het netwerk gebruikt deze om voorspellingen te doen over de huidige invoer. De celstatus wordt bijgewerkt met behulp van een reeks poorten die bepalen hoeveel informatie de cel in en uit mag stromen.
3. Wat zijn LSTM-voorbeelden?
Voorbeelden van LSTM (Long Short-Term Memory) zijn onder meer spraakherkenning, automatische vertaling en tijdreeksvoorspelling, waarbij gebruik wordt gemaakt van het vermogen om langetermijnafhankelijkheden in sequentiële gegevens vast te leggen.
4. Wat is het verschil tussen LSTM en Gated Recurrent Unit (GRU)?
LSTM heeft een celstatus- en poortmechanisme dat de informatiestroom regelt, terwijl GRU een eenvoudiger updatemechanisme met één poort heeft. LSTM is krachtiger maar langzamer om te trainen, terwijl GRU eenvoudiger en sneller is.
5. Wat is het verschil tussen LSTM en RNN?
- RNN's hebben een eenvoudige terugkerende structuur met unidirectionele informatiestroom.
- LSTM's hebben een poortmechanisme dat de informatiestroom regelt en een celstatus voor het langetermijngeheugen.
- LSTM's presteren over het algemeen beter dan RNN's bij taken waarvoor het leren van afhankelijkheden op de lange termijn vereist is.
6. Is LSTM sneller dan CNN?
Nee, LSTM’s en CNN’s dienen verschillende doeleinden. LSTM's zijn voor sequentiële gegevens; CNN's zijn voor ruimtelijke gegevens.
7. Is LSTM sneller dan GRU?
Over het algemeen wel. GRU's hebben minder parameters, wat kan leiden tot snellere training vergeleken met LSTM's.