Hvad er forskellen mellem feed-forward neuralt netværk og LSTM ? Hvordan adskiller de sig i deres arkitektur?
Svar
Et feed-forward neuralt netværk ser sådan ud:
input -> skjult lag 1 -> skjult lag 2 -> … -> skjult lag k -> output.
Hvert lag kan have et andet antal neuroner, men det er arkitekturen .
En LSTM (langvarig hukommelsescelle) er en særlig slags knude inden for et neuralt netværk. Det kan sættes i et feedforward neuralt netværk, og det er normalt Når det sker, kaldes feedforward neurale netværk som en LSTM (forvirrende!).
Så hvordan fungerer en LSTM? Se på mit svar her: Glem lag i et tilbagevendende neuralt netværk (RNN) –
tl; dr: en LSTM-celle har tre porte, som hver bruges til at modulere dens input på en eller anden måde: en indgangsport, en glemport og en udgangsport. Den har en “hukommelse” og en udgang, der bliver modificeret af portene. Det vil sige inden for en enkelt LSTM-celle:
(input forrige celletilstand) -> (input & glem porte) -> (opdater cellestatus)
(input & forrige celletilstand & opdateret celletilstand) -> (output gate)
Du kan stable disse celler i mange forskellige konfigurationer. Så der er ikke noget enkelt “LSTM-netværk” – snarere et sæt af mange mulige arkitekturer, der kan bygges fra disse grundlæggende noder.
Håber det kommer i gang!
Kommentarer
- Mange tak for dit svar, men kan du tilføje nogle billeder for at forbedre min forståelse af arkitekturen
- Hvad med back propogation i feed forward-netværket sker det i feed forward-netværk
- Hej @ codezcar, der er billeder af LSTM i mit svar, som jeg linkede. For et feedforward neuralt netværk er et billede her: medium.com/random-techpark/… Ja, du kan bruge backpropagation til at finde de optimale vægte i enhver form for neuralt netværk (feed forward, LSTM, GRU, … overhovedet hvad som helst!).
Svar
Som nævnt af Philipp hjælper netværk med feedback-sløjfer med modellering af tid i dataene.
Du vil gerne se dette for en oversigt over forskellige NN-arkitekturer: https://i.stack.imgur.com/LgmYv.png
Svar
Feed forward-netværk er netværk, hvor hver node kun er forbundet med noder fra det følgende lag. De har ikke “cirkel” -forbindelser. Data kan kun rejse fra input til output uden sløjfer. Eksempler er Simple Layer Perceptron eller Multilayer Perceptrion. Convolutional Neural Networks er også rent feed forward-netværk
I modsætning til der er tilbagevendende neurale netværk. LSTM er et af disse. Disse RNN kan også forbindes “sidelæns”. Det betyder, at dine data ikke kun kan bevæge sig fremad i det næste lag, men også til andre noder i samme lag eller bagud. Fra en arkitektur standpunkt, der betyder, at selvom du har et netværk med måske kun et skjult lag, får du “dybde” ved at tilføje sløjfer til noder i det lag. Normalt repræsenterer disse “tid” i dataene.
Dette billede viser hvad jeg mener med “dybde” gennem feedback-sløjfer: https://en.wikipedia.org/wiki/Recurrent_neural_network#/media/File:Recurrent_neural_network_unfold.svg
Selvom det er teknisk node i din lagarkitektur, bliver den dybere og dybere jo flere sløjfer du tilføjer
Svar
Jeg vil diskutere noget intuition på højt niveau bag LSTM-netværk. Her er nogle spørgsmål, der hjælper med at udforske hvorfor aspekterne:
- Hvorfor / hvornår vil vi bruge en LSTM over et feed forward neuralt netværk (FFNN)?
- Hvad er fordele og ulemper ved LSTMer, og hvordan sammenlignes de med FFNN?
- Hvordan adskiller de sig fra traditionelle tilbagevendende neurale netværk (RNNer)?
Feed Forward Neural Networks (FFNN)
Lad os først overveje et standard FFNN med arkitektur:
Som du sikkert ved, tager denne FFNN tre input, behandler dem ved hjælp af det skjulte lag og producerer to output. Vi kan udvide denne arkitektur til at omfatte flere skjulte lag, men det grundlæggende koncept holder stadig: input kommer ind, de behandles i en retning, og de udsendes i slutningen.
Dette koncept er meget godt forklaret af andre artikler, så jeg vil ikke gå meget mere i detaljer.Nøgleudtagningen er:
Den primære betingelse, der adskiller FFNN fra tilbagevendende arkitekturer er, at input til en neuron skal komme fra laget før neuronen.
Tilbagevendende neurale netværk (RNN)
Tilbagevendende neurale netværk er matematisk meget lig FFNN-modeller. Deres største forskel er, at begrænsningen på FFNN ikke længere anvendes:
Indgange til en neuron kan komme fra ethvert andet lag.
Du vil ofte se, at denne arkitektur ofte “rulles” ind i en tilbagevendende enhed såsom følgende:
De “rullede” enheder, du muligvis kan se i arkitekturdiagrammer, kan derfor vildledende lille. Når du udruller dem, vil netværket ofte være ret dybt!
Lang-kortvarig hukommelse (LSTM)
LSTMer er en speciel type RNN, der er designet til at tackle det forsvindende / eksploderende gradientproblem.
Når du træner en traditionel RNN, lider netværket ofte af forsvindende / eksploderende gradienter: Afrulning af en tilbagevendende enhed resulterer i et meget dybt netværk! Hvis du går igennem backpropagationsalgoritmen ved hjælp af traditionelle RNN-arkitekturer, bliver de tidligere lag mindre og mindre vigtige, når vi udbreder os gennem netværket. Dette gør traditionelle RNNer tilbøjelige til at glemme information, især data, der vises mange tidsspor før det aktuelle tidspunkt.
Et eksempel på en LSTM-celle illustreres som sådan:
Denne struktur svarer til den traditionelle RNN-udrullede enhed, men nøgleforskellen med LSTM er porte: input gate, output gate, og glem gate. Funktionen af disse porte er godt beskrevet ved deres navne:
- input gate styrer data, der kommer ind i cellen
- glem gate styrer, i hvilket omfang data forbliver inden i cellen
- output gate styrer output fra cellen via aktiveringsfunktionen
Dette github IO-indlæg er en fantastisk introduktion til det grundlæggende i LSTMer. Det gør også et fantastisk stykke arbejde med at forklare intuitionen bag matematikken i en LSTM.
Egenskaber og et eksempel på anvendelse af RNN
Feedbacksløjferne giver tilbagevendende neurale netværk bedre til tidsmæssige udfordringer. Tiden tages med i deres arkitektur!
Lad os udforske et eksempel:
Måske bruger du et netværk til at forudsige det næste ord i en sætning. Sig, at du får input:
Sultende, Alice kører til nærmeste butik for at købe [forudsigelse]
Et tilbagevendende neuralt netværk glemmer muligvis det første ord “sulter”, hvorimod en LSTM ideelt ville formere den. En LSTM vil derfor bruge den sammenhæng, den tidligere har hørt i sætningen, til at gætte “mad”, mens en RNN måske gætter alt, hvad der købes i en butik, især givet en lang sætning eller flere sætninger.
Gating-mekanismerne der tillader denne type hukommelse forklares godt af @StatsSorceress her: Glem lag i et tilbagevendende neuralt netværk (RNN) –
RNNer er designet til at håndtere sekvenser. Dette kan bruges til at analysere video (sekvenser af billeder), skrivning / tale (ordsekvenser) osv.
LSTMer er designet til at lade vigtige oplysninger fortsætte over tid. RNNer vil ofte “glemme” over tid.
FFNNer er hukommelsesløse systemer; efter at have behandlet noget input glemmer de alt om denne input. Sig f.eks. vi træner et FFNN, der tager 5 ord som input og forudsiger den næste output. Denne model modtager derefter input fra ovenstående eksempel:
den nærmeste butik at købe [forudsigelse] .
Dette mister helt klart kontekst, og vi ville få et dårligt resultat.
Nu kan du spørge, hvad hvis vi lavede et FFNN, der tog mange input, så det inkluderede ordet “sultende” i sine input? Med andre ord, kunne vi ikke øge antallet af input til et FFNN til tilstrækkeligt at repræsentere tidligere data?
Svaret er ja, men denne metode er både ineffektiv og ofte upraktisk. Sig, for eksempel, vi skal huske sammenhæng et helt afsnit tilbage. Vi har brug for et meget stort FFNN! Desuden, hvordan ved vi, hvor mange ord tilbage, vi vil have som kontekst? Ville 20 være tilstrækkelig? 30? 100? LSTM-arkitekturen eliminerer disse problemer fuldstændigt ved at lade netværket administrere en forbigående hukommelse. Dette problem forværres af videobearbejdningsudfordringer, fordi hver frame vil kræve betydeligt flere input end NLP-opgaver.
Bemærk dog, at LSTM-enheder i sagens natur er mere beregningsmæssigt komplekse end enheder af et FFNN, så træning af dem er ofte sværere og tager mere tid. På trods af disse ulemper berettiger deres succes med tidsmæssige dataudfordringer klart deres anvendelse over FFNN.