Vad är skillnaden mellan feed-forward neuralt nätverk och LSTM ? Hur skiljer de sig åt i sin arkitektur?
Svar
Ett feed-forward neuralt nätverk ser ut så här:
input -> dolda lager 1 -> dolda lager 2 -> … -> dolda lager k -> output.
Varje lager kan ha olika antal neuroner, men det är arkitekturen .
En LSTM (långsiktig kortminnescell) är en speciell typ av nod i ett neurala nätverk. Den kan placeras i ett feed-forward neuralt nätverk, och det är vanligtvis När det händer kallas det feedforward neurala nätverket en LSTM (förvirrande!).
Så hur fungerar en LSTM? Ta en titt på mitt svar här: Glöm skikt i ett återkommande neuralt nätverk (RNN) –
tl; dr: en LSTM-cell har tre grindar, var och en används för att modulera sin ingång på något sätt: en ingångsgrind, en glömgrind och en utgångsgrind. Den har ett ”minne” och en utgång som modifieras av grindarna. Det vill säga inom en enda LSTM-cell:
(input föregående celltillstånd) -> (input & glöm grindar) -> (uppdatera cellstatus)
(input & föregående celltillstånd & uppdaterad celltillstånd) -> (utgångsport)
Du kan stapla dessa celler i många olika konfigurationer. Så det finns inget enda ”LSTM-nätverk” – snarare en uppsättning av många möjliga arkitekturer som kan byggas från dessa grundläggande noder.
Hoppas att du kommer igång!
Kommentarer
- Tack så mycket för ditt svar men kan du lägga till några bilder för att förbättra min förståelse av arkitekturen
- Vad sägs om backproportion i feed-forward-nätverket sker det i feed forward-nätverk
- Hej @codezcar, det finns bilder av LSTM i mitt svar som jag länkade. För ett feed-forward neuralt nätverk finns en bild här: medium.com/random-techpark/… Ja, du kan använda backpropagation för att hitta de optimala vikterna i alla typer av neurala nätverk (mata framåt, LSTM, GRU, … vad som helst!).
Svar
Som nämnts av Philipp hjälper nätverk med återkopplingsslingor till att modellera tid i data.
Du vill leta efter en översikt över olika NN-arkitekturer: https://i.stack.imgur.com/LgmYv.png
Svar
Framåtnätverk är nätverk där varje nod är ansluten med endast noder från följande lager. De har inte ”cirkel” -anslutningar. Data kan bara gå från ingång till utdata utan slingor. Exempel skulle vara Simple Layer Perceptron eller Multilayer Perceptrion. Convolutional Neural Networks är också rent matningsnätverk
I motsats till som är återkommande neurala nätverk. LSTM är en av dessa. Dessa RNN kan också anslutas ”i sidled”. Det betyder att dina data inte bara kan gå vidare till nästa lager utan också till andra noder i samma lager eller bakåt. Från en arkitektur ståndpunkt som innebär att även om du har ett nätverk med kanske bara ett dolt lager, får du ”djup” genom att lägga till slingor i noder i det lagret. Vanligtvis representerar dessa ”tid” i data.
Den här bilden visar vad jag menar med ”djup” genom återkopplingsslingor: https://en.wikipedia.org/wiki/Recurrent_neural_network#/media/File:Recurrent_neural_network_unfold.svg
Även om det är tekniskt noden i din lagerarkitektur blir den djupare och djupare ju fler slingor du lägger till
Svar
Jag vill diskutera lite intuition på hög nivå bakom LSTM-nätverk. Här är några frågor som hjälper dig att utforska aspekterna varför :
- Varför / när skulle vi använda en LSTM över ett feed forward neural network (FFNN)?
- Vilka är för- och nackdelarna med LSTM och hur jämför de sig med FFNN?
- Hur skiljer de sig från traditionella återkommande neurala nätverk (RNN)?
Feed Forward Neural Networks (FFNN)
Låt oss först överväga en standard FFNN med arkitektur:
Som du säkert vet tar denna FFNN tre ingångar, bearbetar dem med hjälp av det dolda lagret och producerar två utgångar. Vi kan utöka denna arkitektur för att inkludera fler dolda lager, men det grundläggande konceptet håller fortfarande: ingångar kommer in, de bearbetas i en riktning och de matas ut i slutet.
Detta koncept förklaras mycket väl genom andra artiklar, så jag kommer inte att gå in mycket mer detaljerat.Nyckelupptagningen är:
Det primära villkoret som skiljer FFNN från återkommande arkitekturer är att ingångarna till en neuron måste komma från skiktet före neuronen.
Återkommande neurala nätverk (RNN)
Återkommande neurala nätverk liknar matematiskt ganska FFNN-modeller. Deras huvudsakliga skillnad är att begränsningen för FFNN inte längre tillämpas:
Ingångar till en neuron kan komma från vilket annat lager som helst.
Du kommer ofta att se att denna arkitektur ofta ”rullas” in i en återkommande enhet som följande:
De ”rullade” enheterna du kan se i arkitekturdiagram kan därför bedrägligt liten. När du rullar ut dem är nätverket ofta ganska djupt!
Lång-korttidsminne (LSTM)
LSTM är en speciell typ av RNN som är utformade för att hantera det försvinnande / exploderande gradientproblemet.
När du tränar en traditionell RNN lider nätverket ofta av försvinnande / exploderande lutningar: rullning av en återkommande enhet resulterar i ett mycket djupt nätverk! Om du går igenom backpropagationsalgoritmen med traditionella RNN-arkitekturer kommer de tidigare lagren att bli mindre och mindre betydelsefulla när vi sprids genom nätverket. Detta gör traditionella RNN: er benägna att glömma information, särskilt data som visas många tidssteg före den aktuella tiden.
Ett exempel på LSTM-celler illustreras som sådana:
Denna struktur liknar den traditionella RNN-avrullade enheten, men nyckelskillnaden med LSTM är grindarna: ingångsgrind, utgångsgrind och glöm grind. Funktionen hos dessa grindar beskrivs väl med deras namn:
- ingångsgrind styr data som kommer in i cellen
- glöm grind styr i vilken utsträckning data förblir inom cellen
- utgångsgrind styr cellens utsignal via aktiveringsfunktionen
Detta github IO-inlägg är en bra introduktion till grunderna i LSTM. Det gör också ett fantastiskt jobb med att förklara intuitionen bakom matematiken i en LSTM.
Egenskaper och ett exempel på användning av RNN
Återkopplingsslingorna ger återkommande neurala nätverk bättre för tidsmässiga utmaningar. Tiden tas med i deras arkitektur!
Låt oss utforska ett exempel:
Kanske använder du ett nätverk för att förutsäga nästa ord i en mening. Anta att du får ingångarna:
Svältande, Alice kör till närmaste butik för att köpa [förutsägelse]
Ett återkommande neuralt nätverk kan glömma det första ordet ”svälter” medan en LSTM helst skulle föröka den. En LSTM skulle därför använda det sammanhang som den hörde tidigare i meningen för att gissa ”mat” medan en RNN kan gissa allt som köps i en butik, särskilt med tanke på en lång mening eller flera meningar.
Stängningsmekanismerna som tillåter denna typ av minne förklaras väl av @StatsSorceress här: Glöm lagret i ett återkommande neuralt nätverk (RNN) –
RNNs är utformade för att hantera sekvenser. Detta kan användas för att analysera video (bildsekvenser), skrivning / tal (ordsekvenser) etc.
LSTM: er är utformade för att låta viktig information kvarstå över tiden. RNN: er kommer ofta att ”glömma” över tiden.
FFNN är minneslösa system; efter att ha bearbetat lite ingång glömmer de allt om den ingången. Säg till exempel att vi tränar ett FFNN som tar 5 ord som ingångar och förutsäger nästa utgång. Den här modellen skulle sedan få inmatningen från exemplet ovan:
närmaste butik att köpa [förutsägelse] .
Detta förlorar tydligt sammanhang, och vi skulle få ett dåligt resultat.
Nu kan du fråga, vad händer om vi gjorde en FFNN som tog många ingångar så att den inkluderade ordet ”svältande” i sina ingångar? Med andra ord, kunde vi inte öka antalet ingångar till ett FFNN för att tillräckligt representera tidigare data?
Svaret är ja, men den här metoden är både ineffektiv och ofta opraktisk. Säg, till exempel, vi måste komma ihåg sammanhang ett helt stycke tillbaka. Vi skulle behöva ett mycket stort FFNN! Dessutom, hur vet vi hur många ord tillbaka vi vill ha som sammanhang? Skulle 20 räcka? 30? 100? LSTM-arkitekturen eliminerar dessa problem helt genom att låta nätverket hantera ett övergående minne. Detta problem förvärras av videobearbetningsutmaningar eftersom varje bild kommer att kräva betydligt mer ingångar än NLP-uppgifter.
Observera dock att LSTM-enheter i sig är mer beräkningskomplexa än enheter i ett FFNN, så träning av dem är ofta svårare och tar mer tid. Trots dessa nackdelar motiverar deras framgång i tidsmässiga datautmaningar deras användning över FFNN.