stub Vad är RNN och LSTM i Deep Learning? - Unite.AI
Anslut dig till vårt nätverk!

AI 101

Vad är RNN och LSTM i Deep Learning?

mm
Uppdaterad on

Många av de mest imponerande framstegen inom naturlig språkbehandling och AI-chatbotar drivs av Återkommande neurala nätverk (RNN) och LSTM-nätverk (Long Short-Term Memory). RNN och LSTM är speciella neurala nätverksarkitekturer som kan bearbeta sekventiell data, data där kronologisk ordning spelar roll. LSTM är väsentligt förbättrade versioner av RNN, kapabel att tolka längre sekvenser av data. Låt oss ta en titt på hur RNN och LSTMS är uppbyggda och hur de möjliggör skapandet av sofistikerade naturliga språkbehandlingssystem.

Vad är feed-forward neurala nätverk?

Så innan vi pratar om hur Long Short-Term Memory (LSTM) och Convolutional Neural Networks (CNN) fungerar, bör vi diskutera formatet för ett neuralt nätverk i allmänhet.

Ett neuralt nätverk är avsett att undersöka data och lära sig relevanta mönster, så att dessa mönster kan appliceras på annan data och nya data kan klassificeras. Neurala nätverk är uppdelade i tre sektioner: ett indatalager, ett dolt lager (eller flera dolda lager) och ett utdatalager.

Ingångslagret är det som tar in data till det neurala nätverket, medan de dolda lagren är det som lär sig mönstren i datan. De dolda lagren i datamängden är kopplade till in- och utdatalagren genom "vikter" och "biases" som bara är antaganden om hur datapunkterna är relaterade till varandra. Dessa vikter justeras under träning. När nätverket tränar jämförs modellens gissningar om träningsdata (utgångsvärdena) mot de faktiska träningsetiketterna. Under utbildningens gång bör nätverket (förhoppningsvis) bli mer exakt på att förutsäga relationer mellan datapunkter, så att det kan klassificera nya datapunkter korrekt. Djupa neurala nätverk är nätverk som har fler lager i mitten/mer dolda lager. Ju fler dolda lager och fler neuroner/noder modellen har, desto bättre kan modellen känna igen mönster i datan.

Vanliga neurala nätverk med feed-forward, som de jag har beskrivit ovan, kallas ofta "täta neurala nätverk". Dessa täta neurala nätverk kombineras med olika nätverksarkitekturer som är specialiserade på att tolka olika typer av data.

Vad är RNN (Recurrent Neural Networks)?

Återkommande neurala nätverk tar den allmänna principen om feed-forward neurala nätverk och gör det möjligt för dem att hantera sekventiell data genom att ger modellen ett internt minne. Den "återkommande" delen av RNN-namnet kommer från det faktum att ingångs- och utmatningsslingan. När utdata från nätverket har producerats, kopieras utdata och returneras till nätverket som input. När man fattar ett beslut analyseras inte bara den aktuella input och output, utan den tidigare inputen beaktas också. För att uttrycka det på ett annat sätt, om den initiala ingången för nätverket är X och utsignalen är H, matas både H och X1 (nästa ingång i datasekvensen) in i nätverket för nästa inlärningsrunda. På detta sätt bevaras kontexten för datan (de tidigare ingångarna) som nätverkstågen.

Resultatet av denna arkitektur är att RNN:er kan hantera sekventiell data. RNNs lider dock 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, speciellt i jämförelse med LSTM.

Vad är LSTM (Long Short-Term Memory Networks)?

Långa korttidsminnesnätverk kan betraktas som förlängningar av RNN:er, och återigen tillämpar konceptet att bevara kontexten för indata. Men LSTM har modifierats på flera viktiga sätt som gör att de kan tolka tidigare data med överlägsna metoder. De ändringar som gjorts i LSTM hanterar problemet med försvinnande gradient och gör det möjligt för LSTM att överväga mycket längre inmatningssekvenser.

LSTM-modeller består av tre olika komponenter, eller grindar. Det är en ingångsgrind, en utgångsgrind och en glömgrind. Ungefär som RNN:er tar LSTM:er hänsyn till indata från föregående tidssteg när man ändrar modellens minne och ingångsvikter. Ingångsporten fattar beslut om vilka värden som är viktiga och bör släppas igenom modellen. En sigmoidfunktion används i ingångsgrinden, som gör bestämningar om vilka värden som ska skickas vidare genom det återkommande nätverket. Noll sänker värdet, medan 1 bevarar det. En TanH-funktion används också här, som avgör hur viktiga ingångsvärdena är för modellen, från -1 till 1.

Efter att aktuella ingångar och minnestillstånd har tagits med i beräkningen, bestämmer utgångsgrinden vilka värden som ska skickas till nästa tidssteg. I utgångsgrinden analyseras värdena och tilldelas en vikt som sträcker sig från -1 till 1. Detta reglerar data innan den förs vidare till nästa tidsstegsberäkning. Slutligen är glömportens uppgift att släppa information som modellen anser vara onödig för att fatta ett beslut om ingångsvärdens natur. Glömporten använder en sigmoidfunktion på värdena, och matar ut tal mellan 0 (glöm detta) och 1 (behåll detta).

Ett LSTM neuralt nätverk består av både speciella LSTM-lager som kan tolka sekventiella orddata och de tätt anslutna som de som beskrivs ovan. När data väl rör sig genom LSTM-lagren fortsätter den till de tätt sammankopplade lagren.

Bloggare och programmerare med specialiteter inom Maskininlärning och Deep Learning ämnen. Daniel hoppas kunna hjälpa andra att använda kraften i AI för socialt bästa.