Grunderna i AI
Vad är RNN och LSTMs i djupinlärning?
Många av de mest imponerande framstegen inom naturlig språkbehandling och AI-chattbotar drivs av Recurrent Neural Networks (RNNs) och Long Short-Term Memory (LSTM)-nätverk. RNNs och LSTMs är specialiserade neuronnätverksarkitekturer som kan bearbeta sekventiell data, data där kronologisk ordning har betydelse. LSTMs är i princip förbättrade versioner av RNNs, kapabla att tolka längre sekvenser av data. Låt oss ta en titt på hur RNNs och LSTMs är strukturerade och hur de möjliggör skapandet av sofistikerade system för naturlig språkbehandling.
Vad är Feed-Forward Neural Networks?
Innan vi diskuterar hur Long Short-Term Memory (LSTM) och Convolutional Neural Networks (CNN) fungerar, bör vi diskutera formatet för ett neuronnätverk i allmänhet.
Ett neuronnätverk är avsett att undersöka data och lära sig relevanta mönster, så att dessa mönster kan tillämpas på annan data och ny data kan klassificeras. Neuronnätverk delas in i tre sektioner: en inmatningslager, ett dolt lager (eller flera dolda lager) och ett utmatningslager.
Inmatningslagret är det som tar in data i neuronnätverket, medan de dolda lagren är det som lär sig mönstren i data. De dolda lagren i datamängden är anslutna till inmatnings- och utmatningslagren med “vikter” och “bias” som är antaganden om hur datapunkterna är relaterade till varandra. Dessa vikter justeras under utbildning. När nätverket utbildas, jämförs modellens gissningar om utbildningsdata (utmatningsvärdena) mot de faktiska utbildningsetiketterna. Under utbildningsförloppet bör nätverket (hoppas) bli mer exakt i att förutsäga relationer mellan datapunkter, så att det kan klassificera nya datapunkter korrekt. Djupa neuronnätverk är nätverk som har fler lager i mitten/fler dolda lager. Ju fler dolda lager och ju fler neuroner/noder modellen har, desto bättre kan modellen känna igen mönster i data.
Reguljära, feed-forward neuronnätverk, som de jag beskrivit ovan, kallas ofta “täta neuronnätverk”. Dessa täta neuronnätverk kombineras med olika nätverksarkitekturer som specialiserar sig på att tolka olika typer av data.
Vad är RNNs (Recurrent Neural Networks)?

Recurrent Neural Networks tar den allmänna principen för feed-forward neuronnätverk och möjliggör dem att hantera sekventiell data genom att ge modellen en intern minnesfunktion. Den “Recurrent” delen av RNN-namnet kommer från det faktum att inmatningen och utmatningen loopar. När utmatningen från nätverket produceras, kopieras utmatningen och returneras till nätverket som inmatning. När ett beslut fattas, analyseras inte bara den aktuella inmatningen och utmatningen, utan även den tidigare inmatningen. För att uttrycka det på ett annat sätt, om den initiala inmatningen för nätverket är X och utmatningen är H, matas både H och X1 (nästa inmatning i datasekvensen) in i nätverket för nästa omgång av inlärning. På detta sätt bevaras kontexten av data (tidigare inmatningar) medan nätverket utbildas.
Resultatet av denna arkitektur är att RNNs kan hantera sekventiell data. Men RNNs lider av ett par problem. RNNs lider av försvinnande gradient och exploderande gradientproblem.
Längden på sekvenser som en RNN kan tolka är ganska begränsad, särskilt i jämförelse med LSTMs.
Vad är LSTMs (Long Short-Term Memory Networks)?
Long Short-Term Memory-nätverk kan betraktas som utvidgningar av RNNs, återigen tillämpande konceptet att bevara kontexten av inmatningar. Men LSTMs har modifierats på flera viktiga sätt som tillåter dem att tolka tidigare data med överlägsna metoder. De ändringar som gjorts i LSTMs hanterar det försvinnande gradientproblemet och möjliggör LSTMs att överväga mycket längre inmatningssekvenser.

LSTM-modeller består av tre olika komponenter, eller grindar. Det finns en inmatningsgrind, en utmatningsgrind och en glömskegrind. Liksom RNNs, tar LSTMs inmatningar från den tidigare tidssteget i beaktande när de modifierar modellens minne och inmatningsvikter. Inmatningsgrinden fattar beslut om vilka värden som är viktiga och bör släppas igenom modellen. En sigmoidfunktion används i inmatningsgrinden, som fattar beslut om vilka värden som ska släppas igenom det rekurrerande nätverket. Noll släpper värden, medan 1 bevarar dem. En TanH-funktion används också här, som bestämmer hur viktiga inmatningsvärdena är för modellen, med värden mellan -1 och 1.
Efter att nuvarande inmatningar och minnestillstånd har beaktats, bestämmer utmatningsgrinden vilka värden som ska skickas till nästa tidssteg. I utmatningsgrinden analyseras värdena och tilldelas en viktighet mellan -1 och 1. Detta reglerar data innan de skickas till nästa tidsstegsberäkning. Slutligen är glömskegrindens uppgift att släppa information som modellen anser onödig för att fatta ett beslut om inmatningsvärdenas natur. Glömskegrinden använder en sigmoidfunktion på värdena, med utmatning av värden mellan 0 (glöm det) och 1 (bevara det).
Ett LSTM-neuronnätverk består av både specialiserade LSTM-lager som kan tolka sekventiell orddata och de täta anslutningarna som beskrivits ovan. När data passerar genom LSTM-lagren, fortsätter den till de täta anslutningarna.












