AI-basisprincipes
Wat zijn RNN’s en LSTMs in Deep Learning?
Veel van de meest indrukwekkende vooruitgang in natuurlijke taalverwerking en AI-chatbots wordt gedreven door Recurrent Neural Networks (RNNs) en Long Short-Term Memory (LSTM)-netwerken. RNNs en LSTMs zijn speciale neurale netwerkarchitecturen die in staat zijn om sequentiële data te verwerken, data waarbij chronologische ordening belangrijk is. LSTMs zijn eigenlijk verbeterde versies van RNNs, die in staat zijn om langere sequenties van data te interpreteren. Laten we eens kijken hoe RNNs en LSTMS zijn gestructureerd en hoe ze de creatie van geavanceerde natuurlijke taalverwerkingsystemen mogelijk maken.
Wat zijn Feed-Forward Neural Networks?
Voordat we bespreken hoe Long Short-Term Memory (LSTM) en Convolutional Neural Networks (CNN) werken, moeten we het formaat van een neurale netwerk in het algemeen bespreken.
Een neurale netwerk is bedoeld om data te onderzoeken en relevante patronen te leren, zodat deze patronen kunnen worden toegepast op andere data en nieuwe data kunnen worden geclassificeerd. Neurale netwerken zijn verdeeld in drie secties: een invoerlaag, een verborgen laag (of meerdere verborgen lagen) en een uitvoerlaag.
De invoerlaag is wat de data in het neurale netwerk invoert, terwijl de verborgen lagen de patronen in de data leren. De verborgen lagen in de dataset zijn verbonden met de invoer- en uitvoerlagen door “gewichten” en “voorkeuren” die alleen maar aannamen zijn van hoe de datapunten met elkaar verbonden zijn. Deze gewichten worden aangepast tijdens de training. Terwijl het netwerk traint, worden de modellen schattingen over de trainingsdata (de uitvoerwaarden) vergeleken met de daadwerkelijke trainingslabels. Tijdens de training zou het netwerk (hopelijk) beter moeten worden in het voorspellen van relaties tussen datapunten, zodat het nieuwe datapunten nauwkeurig kan classificeren. Diepe neurale netwerken zijn netwerken die meer lagen in het midden/more verborgen lagen hebben. Hoe meer verborgen lagen en hoe meer neuronen/knooppunten het model heeft, hoe beter het model patronen in de data kan herkennen.
Gewone, feed-forward neurale netwerken, zoals ik hierboven heb beschreven, worden vaak “dichte neurale netwerken” genoemd. Deze dichte neurale netwerken worden gecombineerd met verschillende netwerkarchitecturen die zijn gespecialiseerd in het interpreteren van verschillende soorten data.
Wat zijn RNNs (Recurrent Neural Networks)?

Recurrent Neural Networks nemen het algemene principe van feed-forward neurale netwerken en maken het mogelijk om sequentiële data te verwerken door het model een interne geheugen te geven. Het “Recurrent” deel van de RNN-naam komt van het feit dat de invoer en uitvoer lussen. Zodra de uitvoer van het netwerk is gegenereerd, wordt de uitvoer gekopieerd en terug naar het netwerk gestuurd als invoer. Bij het nemen van een beslissing worden niet alleen de huidige invoer en uitvoer geanalyseerd, maar ook de vorige invoer. Om het anders te zeggen, als de initiële invoer voor het netwerk X is en de uitvoer H is, worden zowel H als X1 (de volgende invoer in de datasequentie) in het netwerk gestuurd voor de volgende ronde van leren. Op deze manier wordt de context van de data (de vorige invoer) behouden terwijl het netwerk traint.
Als gevolg van deze architectuur zijn RNNs in staat om sequentiële data te verwerken. RNNs lijden echter aan een paar problemen. RNNs lijden aan het verdwijnende gradient- en exploderende gradientprobleem.
De lengte van de sequenties die een RNN kan interpreteren is vrij beperkt, vooral in vergelijking met LSTMs.
Wat zijn LSTMs (Long Short-Term Memory Networks)?
Long Short-Term Memory-netwerken kunnen worden beschouwd als uitbreidingen van RNNs, waarbij opnieuw het concept van het behouden van de context van invoer wordt toegepast. LSTMs zijn echter op verschillende belangrijke manieren aangepast om langere sequenties van data te interpreteren.

LSTM-modellen bestaan uit drie verschillende componenten, of poorten. Er is een invoerpoort, een uitvoerpoort en een vergetenpoort. Net als RNNs nemen LSTMs invoer van de vorige tijdstap in aanmerking bij het aanpassen van het geheugen en de invoergewichten van het model. De invoerpoort neemt beslissingen over welke waarden belangrijk zijn en door het model moeten worden doorgelaten. Een sigmoid-functie wordt gebruikt in de invoerpoort, die bepaalt welke waarden moeten worden doorgegeven aan het recurrente netwerk. Nul laat de waarde vallen, terwijl 1 deze behoudt. Een TanH-functie wordt hier ook gebruikt, die bepaalt hoe belangrijk de invoerwaarden zijn voor het model, variërend van -1 tot 1.
Nadat de huidige invoer en geheugenstatus zijn verwerkt, beslist de uitvoerpoort welke waarden naar de volgende tijdstap moeten worden doorgestuurd. In de uitvoerpoort worden de waarden geanalyseerd en een belangrijkheid toegekend, variërend van -1 tot 1. Dit reguleert de data voordat deze wordt doorgegeven aan de volgende tijdstapberekening. Ten slotte is de taak van de vergetenpoort om informatie te laten vallen die het model overbodig acht om een beslissing over de aard van de invoerwaarden te nemen. De vergetenpoort gebruikt een sigmoid-functie op de waarden, die getallen tussen 0 (vergeet dit) en 1 (houd dit) produceert.
Een LSTM-neuraal netwerk bestaat uit speciale LSTM-lagen die sequentiële woorddata kunnen interpreteren en de dicht verbonden lagen zoals hierboven beschreven. Zodra de data door de LSTM-lagen gaat, gaat deze naar de dicht verbonden lagen.












