Grundlæggende AI
Hvad er RNNs og LSTMs i Deep Learning?
Mange af de mest imponerende fremskridt i naturlig sprogbehandling og AI-chatbots er drevet af Recurrent Neural Networks (RNNs) og Long Short-Term Memory (LSTM) netværk. RNNs og LSTMs er særlige neurale netværksarkitekturer, der kan behandle sekventielle data, data hvor kronologisk orden er vigtig. LSTMs er essentielt forbedrede versioner af RNNs, der kan fortolke længere sekvenser af data. Lad os se, hvordan RNNs og LSTMs er struktureret og hvordan de muliggør oprettelsen af sofistikerede naturlige sprogbehandlingsystemer.
Hvad er Feed-Forward Neural Networks?
Før vi taler om, hvordan Long Short-Term Memory (LSTM) og Convolutional Neural Networks (CNN) fungerer, skal vi diskutere formatet for et neuralt netværk i almindelighed.
Et neuralt netværk er designet til at undersøge data og lære relevante mønstre, så disse mønstre kan anvendes på andre data, og nye data kan klassificeres. Neurale netværk er inddelt i tre sektioner: en inputlag, en skjult lag (eller multiple skjulte lag) og en outputlag.
Inputlaget er, hvad der tager data ind i det neurale netværk, mens de skjulte lag er, hvad der lærer mønstre i data. De skjulte lag i datasættet er forbundet til input- og outputlagene med “vægte” og “forudindtagelser”, som blot er antagelser om, hvordan datapunkterne er relateret til hinanden. Disse vægte justeres under træning. Da netværket trænes, sammenlignes modellens gæt om træningsdata (outputværdierne) med de faktiske træningsmærker. Under træningens forløb burde netværket (heldigvis) blive mere præcist i at forudsige relationer mellem datapunkter, så det kan klassificere nye datapunkter korrekt. Dybe neurale netværk er netværk, der har flere lag i midten/flere skjulte lag. Jo flere skjulte lag og neuroner/noder modellen har, jo bedre kan modellen genkende mønstre i data.
Almindelige feed-forward neurale netværk, som dem, jeg har beskrevet ovenfor, kaldes ofte “tætte neurale netværk”. Disse tætte neurale netværk kombineres med forskellige netværksarkitekturer, der specialiserer sig i at fortolke forskellige typer data.
Hvad er RNNs (Recurrent Neural Networks)?

Recurrent Neural Networks tager det generelle princip for feed-forward neurale netværk og muliggør, at de kan behandle sekventielle data ved at give modellen en intern hukommelse. Den “Recurrent” del af RNN-navnet kommer fra, at input og output løber i ring. Når outputtet fra netværket er produceret, kopieres outputtet og returneres til netværket som input. Når der træffes en beslutning, analyseres ikke kun det aktuelle input og output, men også det foregående input. For at sige det på en anden måde, hvis det første input for netværket er X, og outputtet er H, føres både H og X1 (det næste input i datasekvensen) ind i netværket til næste runde af læring. På denne måde bevares konteksten for data (de foregående input) under, at netværket trænes.
Resultatet af denne arkitektur er, at RNNs kan behandle sekventielle data. Dog lider RNNs under nogle problemer. RNNs lider under forsvindende gradient- og eksploderende gradientproblemer.
Længden af sekvenser, som en RNN kan fortolke, er ret begrænsede, især i sammenligning med LSTMs.
Hvad er LSTMs (Long Short-Term Memory Networks)?
Long Short-Term Memory netværk kan betragtes som udvidelser af RNNs, hvor konceptet med at bevare konteksten for input igen anvendes. Dog er LSTMs ændret på flere vigtige måder, der tillader dem at fortolke tidligere data med bedre metoder. Ændringerne, der er gjort til LSTMs, handler om forsvindende gradientproblemet og muliggør, at LSTMs kan overveje langt længere inputsekvenser.

LSTM-modeller består af tre forskellige komponenter eller porte. Der er en inputport, en outputport og en forgetport. Ligesom RNNs tager LSTMs input fra den foregående tidsstegning med i betragtning, når modellens hukommelse og inputvægte ændres. Inputporten træffer beslutninger om, hvilke værdier der er vigtige og skal lukkes igennem modellen. En sigmoidfunktion anvendes i inputporten, som træffer beslutninger om, hvilke værdier der skal lukkes igennem det rekurrente netværk. 0 dropper værdien, mens 1 bevarer den. En TanH-funktion anvendes også her, som træffer beslutninger om, hvor vigtige inputværdierne er for modellen, med værdier fra -1 til 1.
Efter, at de aktuelle input og hukommelsestilstand er taget i betragtning, træffer outputporten beslutninger om, hvilke værdier der skal føres videre til næste tidsstegning. I outputporten analyseres værdierne og tildeles en vigtighed fra -1 til 1. Dette regulerer data, før de føres videre til næste tidsstegningsberegning. Endelig er forgetportens opgave at droppe information, som modellen betragter som unødvendig for at træffe en beslutning om inputværdiernes natur. Forgetporten anvender en sigmoidfunktion på værdierne, med outputværdier mellem 0 (glem dette) og 1 (bevar dette).
Et LSTM-neuralt netværk består af både specielle LSTM-lag, der kan fortolke sekventielle orddata, og de tæt forbundne lag, som beskrevet ovenfor. Når dataene passerer gennem LSTM-lagene, føres de herefter ind i de tæt forbundne lag.












