stub Hva er RNN-er og LSTM-er i dyp læring? - Unite.AI
Kontakt med oss

AI 101

Hva er RNN-er og LSTM-er i dyp læring?

mm
oppdatert on

Mange av de mest imponerende fremskrittene innen naturlig språkbehandling og AI chatbots er drevet av Tilbakevendende nevrale nettverk (RNN) og LSTM-nettverk (Long Short-Term Memory). RNN-er og LSTM-er er spesielle nevrale nettverksarkitekturer som er i stand til å behandle sekvensielle data, data der kronologisk rekkefølge er viktig. LSTM er vesentlig forbedrede versjoner av RNN-er, i stand til å tolke lengre sekvenser av data. La oss ta en titt på hvordan RNN-er og LSTMS-er er strukturert og hvordan de muliggjør opprettelsen av sofistikerte naturlige språkbehandlingssystemer.

Hva er feed-forward nevrale nettverk?

Så før vi snakker om hvordan Long Short-Term Memory (LSTM) og Convolutional Neural Networks (CNN) fungerer, bør vi diskutere formatet til et nevralt nettverk generelt.

Et nevralt nettverk er ment å undersøke data og lære relevante mønstre, slik at disse mønstrene kan brukes på andre data og nye data kan klassifiseres. Nevrale nettverk er delt inn i tre seksjoner: et inngangslag, et skjult lag (eller flere skjulte lag) og et utgangslag.

Inndatalaget er det som tar inn dataene inn i det nevrale nettverket, mens de skjulte lagene er det som lærer mønstrene i dataene. De skjulte lagene i datasettet er koblet til input- og output-lagene med "vekter" og "biases" som bare er antakelser om hvordan datapunktene er relatert til hverandre. Disse vektene justeres under trening. Mens nettverket trener, sammenlignes modellens gjetninger om treningsdataene (utgangsverdiene) mot de faktiske treningsetikettene. I løpet av opplæringen bør nettverket (forhåpentligvis) bli mer nøyaktig til å forutsi forhold mellom datapunkter, slik at det kan klassifisere nye datapunkter nøyaktig. Dype nevrale nettverk er nettverk som har flere lag i midten/mer skjulte lag. Jo flere skjulte lag og flere nevroner/noder modellen har, jo bedre kan modellen gjenkjenne mønstre i dataene.

Vanlige nevrale nettverk med feed-forward, som de jeg har beskrevet ovenfor, kalles ofte "tette nevrale nettverk". Disse tette nevrale nettverkene er kombinert med forskjellige nettverksarkitekturer som spesialiserer seg på å tolke forskjellige typer data.

Hva er RNN-er (Recurrent Neural Networks)?

Gjentakende nevrale nettverk tar det generelle prinsippet om feed-forward nevrale nettverk og gjør dem i stand til å håndtere sekvensielle data ved å gir modellen et internt minne. Den "gjentakende" delen av RNN-navnet kommer fra det faktum at inngangs- og utgangssløyfen. Når utgangen fra nettverket er produsert, kopieres utgangen og returneres til nettverket som input. Når du tar en beslutning, analyseres ikke bare gjeldende input og output, men den forrige inputen vurderes også. For å si det på en annen måte, hvis den første inngangen for nettverket er X og utgangen er H, mates både H og X1 (neste inngangen i datasekvensen) inn i nettverket for neste læringsrunde. På denne måten blir konteksten til dataene (de tidligere inngangene) bevart som nettverkstogene.

Resultatet av denne arkitekturen er at RNN-er er i stand til å håndtere sekvensielle data. Imidlertid lider RNN-er av et par problemer. RNN-er lider av forsvinnende gradient og eksploderende gradientproblemer.

Lengden på sekvenser som en RNN kan tolke er ganske begrenset, spesielt sammenlignet med LSTM-er.

Hva er LSTM-er (Long Short-Term Memory Networks)?

Langtidsminnenettverk kan betraktes som utvidelser av RNN-er, og anvender igjen konseptet om å bevare konteksten til innganger. Imidlertid har LSTM-er blitt modifisert på flere viktige måter som lar dem tolke tidligere data med overlegne metoder. Endringene som er gjort i LSTM-er håndterer problemet med forsvinnende gradient og gjør det mulig for LSTM-er å vurdere mye lengre inngangssekvenser.

LSTM-modeller er laget av tre forskjellige komponenter, eller porter. Det er en inngangsport, en utgangsport og en glemmeport. På samme måte som RNN-er, tar LSTM-er inndata fra forrige tidstrinn i betraktning når du endrer modellens minne og inngangsvekter. Inngangsporten tar beslutninger om hvilke verdier som er viktige og bør slippes gjennom modellen. En sigmoid-funksjon brukes i inngangsporten, som tar avgjørelser om hvilke verdier som skal sendes videre gjennom det tilbakevendende nettverket. Null reduserer verdien, mens 1 beholder den. En TanH-funksjon brukes også her, som bestemmer hvor viktige inngangsverdiene er for modellen, fra -1 til 1.

Etter at gjeldende innganger og minnetilstand er tatt i betraktning, bestemmer utgangsporten hvilke verdier som skal flyttes til neste tidstrinn. I utgangsporten analyseres verdiene og tildeles en viktighet fra -1 til 1. Dette regulerer dataene før de videreføres til neste tidstrinnsberegning. Til slutt er jobben til glemmeporten å slippe informasjon som modellen anser som unødvendig for å ta en beslutning om arten av inngangsverdiene. Forget-porten bruker en sigmoid-funksjon på verdiene, og sender ut tall mellom 0 (glem dette) og 1 (behold dette).

Et LSTM nevralt nettverk er laget av både spesielle LSTM-lag som kan tolke sekvensielle orddata og de tett koblede som de som er beskrevet ovenfor. Når dataene beveger seg gjennom LSTM-lagene, fortsetter de inn i de tett sammenkoblede lagene.

Blogger og programmerer med spesialiteter innen Maskinlæring og Dyp læring emner. Daniel håper å hjelpe andre å bruke kraften til AI til sosialt gode.