Een terugkerend neuraal netwerk (RNN) is een deep learning neuraal netwerk dat getraind is om sequentiële invoer om te zetten in specifieke sequentiële uitvoer. Een traditioneel neuraal netwerk is niet in staat om oude gegevens te onthouden, wat RNN nuttig maakt.
Een neuraal netwerk is een computersysteem dat is geïnspireerd op de structuur van het menselijk brein, en bestaat uit kunstmatige neuronen. Deze netwerken zijn ontworpen om menselijke besluitvormingsprocessen te reproduceren. Maar traditionele neurale netwerken verwerken elke invoer onafhankelijk, zonder de mogelijkheid om de sequentie of context van gegevens te bekijken. Bij het verwerken van de woorden 'rode appel' zou een standaard neuraal netwerk bijvoorbeeld 'rood' niet herkennen als een kenmerk dat de appel beschrijft: de contextuele link tussen de twee ontbreekt volledig.
Dit is een belangrijke beperking, en wel een beperking die gemakkelijk kan voorkomen dat machines ooit iets ontwikkelen wat in de buurt komt van wat beschouwd kan worden als intelligentie. Om deze tekortkoming aan te pakken, ontwikkelden onderzoekers terugkerende neurale netwerken (RNN's). In tegenstelling tot traditionele modellen bevatten RNN's mechanismen om informatie langere tijd te bewaren, waardoor ze een geheugen van eerdere invoer kunnen onderhouden. Dit vermogen stelt RNN's in staat sequenties en contexten binnen gegevens te begrijpen, waardoor ze bijzonder nuttig zijn voor taken waarbij volgorde cruciaal is, zoals taalverwerking of analyse van tijdreeksen.
Een terugkerend neuraal netwerk is ontworpen als een vorm van AI-besluitvorming, die in staat is de volgorde waarin gegevens verschijnen, te herkennen en te behouden. Dit is een cruciale functie voor het verwerken van opeenvolgende informatie, zoals tekst, getallen of tijdreeksgegevens. In tegenstelling tot traditionele neurale netwerken, die elke invoer afzonderlijk behandelen, kunnen RNN's eerdere informatie verbinden met huidige invoer, waardoor een genuanceerder begrip van gegevenssequenties mogelijk is.
Hoewel het concept van het terugkerende neurale netwerk bij de introductie een belangrijke stap voorwaarts was (de basis werd gelegd voor het maken van deep learning-modellen), wordt het grotendeels vervangen door op transformatoren gebaseerde artificial intelligence en grote taalmodellen (LLM). Deze nieuwe ontwikkelingen zijn efficiënter in het verwerken van sequentiële gegevens.
RNN's onderscheiden zich door hun vermogen om reeksen van gegevens te verwerken door relaties en afhankelijkheden tussen afzonderlijke elementen te herkennen. Hoewel alle RNN's dit fundamentele kenmerk delen, zijn de volgende categorieën ontworpen om specifieke soorten uitdagingen op het gebied van gegevensverwerking aan te pakken. Dit zijn de vier hoofdtypen:
Eén-naar-één
De eenvoudigste vorm van een RNN, één-naar-één, beschrijft netwerken waar één invoer wordt verwerkt om één uitvoer te genereren. Dit model dient als basis voor complexere RNN-architecturen.Eén-naar-veel
In deze configuratie wordt één invoer gebruikt om meerdere uitvoerreeksen te genereren. Dit type RNN is ideaal voor taken waarbij de invoer meerdere gerelateerde maar afzonderlijke uitvoerreeksen kan triggeren, zoals het genereren van een zin met een enkel beschrijvend woord of het produceren van een melodie op basis van een muzieknoot.Veel-naar-één
Het veel-naar-één-model verwerkt meerdere ingevoerde gegevenspunten om één uitvoer te produceren. Het wordt vaak gebruikt in toepassingen zoals sentimentanalyse, waar verschillende woorden (invoer) bijdragen aan het bepalen van het algemene sentiment (uitvoer) van een zin of documentVeel-naar-veel
Deze laatste variant verwerkt sequenties zowel in de invoer als in de uitvoer. Dit model is geschikt voor taken zoals vertaling van talen, waarbij een ingevoerde reeks woorden in de ene taal wordt omgezet in een uitgevoerde reeks in een andere taal. Het model is ook geschikt voor situaties waarin de lengte van de invoer- en uitvoerreeksen verschilt.
Een neuraal netwerk zonder looping nodes wordt een feedforward neuraal netwerk genoemd. Dit soort netwerken is vergelijkbaar met een RNN in die zin dat beide modellen proberen om gegevens op een menselijke manier te verwerken met veel onderling verbonden knooppunten. Maar een feedforward neuraal netwerk geeft alleen informatie door en het model onthoudt geen eerder ingevoerde informatie. Aan de hand van het bovenstaande voorbeeld kan dit model zich geen 'rode' herinneren tegen de tijd dat het 'appel' verwerkt heeft.
In plaats daarvan werkt het feedforward neurale netwerk door informatie van de invoerlaag naar de uitvoerlaag te verplaatsen, inclusief verborgen lagen. Dit type model werkt goed voor beeldclassificatie waarbij de invoer en uitvoer onafhankelijk zijn. Toch verschilt dit netwerk van de RNN-netwerken omdat het zich geen sequentie kan herinneren, zoals een terugkerend netwerk dat wel kan.
De RNN-architectuur heeft drie hoofdvarianten, elk aangepast vanuit de basisstructuur om de functionaliteit en prestaties voor specifieke taken te verbeteren. Deze flexibiliteit in het ontwerp helpt te voldoen aan de unieke eisen van verschillende taken voor het verwerken van gegevensreeksen. De volgende varianten wijzigen de manier waarop gegevens worden verwerkt en uitgevoerd, waardoor meer gespecialiseerde toepassingen op een reeks gebieden mogelijk zijn:
Een bidirectioneel terugkerend neuraal netwerk (BRNN) verwerkt gegevensreeksen voorwaarts en achterwaarts. De voorwaartse laag werkt zeer vergelijkbaar met de eerste RNN-laag, maar de achterwaartse laag werkt anders om informatie in een tweede richting te verplaatsen. Door beide lagen te combineren, wordt de voorspelling nauwkeuriger.
Long Short-Term Memory (LSTM) is een model dat is ontworpen met een langer geheugen. Een basis-RNN kan alleen de allerlaatste invoer onthouden. LSTM kan invoer uit eerdere sequenties gebruiken om de voorspelling nauwkeuriger te maken. Bekijk dit voorbeeld van vereenvoudigde gegevensinvoer: De appel is rood. Anne houdt alleen van rode appels. Een LSTM zou zich herinneren dat de appel rood is bij het verwerken van informatie over welk soort appels in deze situatie belangrijk is. Een RNN zou zich niet herinneren dat de appel rood is, omdat die informatie in een eerdere reeks werd gepresenteerd.
Een gated recurrent unit (GRU) is een geavanceerde variant van het standaard terugkerende neurale netwerk, die is ontworpen om een aantal beperkingen met betrekking tot geheugenretentie aan te pakken. GRU's bevatten 'gates', mechanismen die de informatiestroom regelen. Zo is er de update gate, die bepaalt hoeveel informatie uit het verleden (van vorige stappen) behouden moet blijven, en de reset gate, die bepaalt hoeveel van de oude informatie moet worden vergeten. Hierdoor kunnen GRU's selectief informatie bewaren of verwijderen, waardoor ze zeer effectief zijn voor taken waarbij inzicht in de context of de volgorde van gebeurtenissen van cruciaal belang is.
RNN's zijn zeer veelzijdig in het verwerken van gegevens waarbij reeksen betrokken zijn, waardoor ze geschikt zijn voor een breed scala aan toepassingen. Hier volgen enkele van de meest voorkomende gebruiksmogelijkheden:
Taalmodellering en het genereren van tekst
RNN's kunnen het volgende woord in een zin voorspellen op basis van eerdere woorden, wat cruciaal is voor taken zoals automatisch aanvullen in zoekmachines of het automatisch genereren van leesbare tekst.Spraakherkenning
Deze netwerken kunnen audiogegevens in de loop der tijd verwerken, waardoor ze ideaal zijn voor het herkennen van gesproken woorden in real time en het omzetten ervan in tekst, zoals te zien is bij virtuele assistenten en mobiele spraak-naar-tekst toepassingen.Machinevertaling
RNN's kunnen reeksen van woorden in de ene taal analyseren en omzetten in een andere, waarbij grammaticale en contextuele nauwkeurigheid in het vertaalproces behouden blijft.Beeldherkenning
Hoewel het niet zo gebruikelijk is voor deze taak als andere modellen zoals CNN's, kunnen RNN's worden gebruikt voor het analyseren van reeksen beelden, zoals het lezen van handgeschreven tekst of het sequentieel verwerken van videoframes.Voorspellen van tijdreeksen
RNN's zijn zeer geschikt voor het voorspellen van toekomstige waarden in een reeks op basis van historische gegevens, wat van toepassing is op gebieden zoals aandelenmarktprognoses, weersvoorspellingen en vraagvoorspellingen in de retail.
Er zijn enkele uitdagingen die gepaard gaan met het gebruik van een RNN. Dit maakt deel uit van de vraag of RNN's moeten worden vervangen door nieuwere neurale netwerken en variaties erop. Dit zijn vier van de grootste obstakels bij het gebruik van een terugkerend neuraal netwerk:
Exploderende gradiënt
De gradiënt verwijst naar de gevoeligheid van het foutenpercentage dat overeenkomt met de parameters van het model. Als de gradiënt exponentieel toeneemt, kan deze instabiel worden. Als dat gebeurt, wordt het beschouwd als een exploderende gradiënt. Dat soort fouten kan leiden tot overfitting, een fenomeen waarbij het model accuraat kan voorspellen met trainingsgegevens, maar niet hetzelfde kan doen met werkelijke gegevens.Verdwijnende gradiënt
Deze uitdaging doet zich voor wanneer de gradiëntwaarden tijdens de training tot bijna nul dalen, waardoor het leerproces aanzienlijk wordt vertraagd of helemaal wordt gestopt. Een verdwijnende gradiënt maakt het voor een RNN moeilijk om de trainingsgegevens effectief vast te leggen en ervan te leren, wat vaak leidt tot underfitting, waarbij het model geen nauwkeurige voorspellingen kan maken voor nieuwe gegevens.Problemen bij het verwerken van lange reeksen
RNN's kunnen problemen hebben met lange gegevensreeksen. Deze beperking doet zich voor omdat de relevante informatie over lange reeksen kan worden verdund, waardoor het model niet effectief van dergelijke gegevens kan leren.Trage trainingstijd.
Aangezien een RNN gegevens sequentieel verwerkt, kan het geen grote hoeveelheden informatie tegelijkertijd verwerken. Deze sequentiële verwerking resulteert in langere trainingstijden, waardoor RN's minder efficiënt zijn in vergelijking met andere modellen die gegevens parallel kunnen verwerken, zoals transformatoren.
Naast de mogelijkheid om informatie sequentieel te verwerken, zijn er een paar andere belangrijke voordelen om te vertrouwen op een terugkerend neuraal netwerk:
RNN's zijn uitgerust met structuren zoals LSTM-eenheden (lang kortetermijngeheugen) waarmee ze informatie over langere perioden kunnen onthouden. Deze functie is van cruciaal belang voor taken waarbij inzicht in de context uit het verleden nodig is om nauwkeurige voorspellingen te kunnen doen voor toekomstige gebeurtenissen.
RNN's kunnen worden gecombineerd met convolutionele neurale netwerken (CNN's) om hun capaciteit voor het verwerken van ruimtelijke gegevens, zoals beelden en video's, te verbeteren. Met deze combinatie kunnen RNN's niet alleen patronen in de loop der tijd herkennen, maar ook hun 'gezichtsveld' uitbreiden in termen van pixelgegevens, waardoor de analyse van reeksen in visuele invoer wordt verbeterd.
In tegenstelling tot veel andere neurale netwerkarchitecturen, kunnen RNN's invoerreeksen van verschillende lengte verwerken zonder dat de invoer opnieuw hoeft te worden vormgegeven of de grootte hoeft te worden gewijzigd. Hierdoor zijn ze zeer veelzijdig voor toepassingen zoals spraakherkenning, waarbij de duur van de invoergegevens aanzienlijk kan variëren.
RNN's zijn van nature ontworpen voor het verwerken van sequenties waarbij de timing tussen gebeurtenissen cruciaal is. Dit maakt ze uitzonderlijk goed voor toepassingen zoals het voorspellen van de aandelenkoers, het componeren van muziek en andere tijdgevoelige analyses waarbij de volgorde en timing van historische gegevenspunten cruciaal zijn voor het voorspellen van de toekomst.
Zoals gezegd bestaan RNN's uit kunstmatige neuronen die zijn ontworpen om menselijke besluitvorming na te bootsen. Deze kunstmatige neuronen zijn gegevensverwerkende knooppunten die samenwerken om complexe taken uit te voeren. De neuronen zijn ingedeeld in verschillende hoofdlagen: invoer, uitvoer en verborgen lagen. De invoerlaag ontvangt de informatie die moet worden verwerkt en de uitvoerlaag levert het resultaat. Verwerking, analyse en voorspelling van gegevens vinden plaats in de verborgen laag.
Een RNN werkt door de sequentiële gegevens die het ontvangt, stap voor stap door te geven door de verborgen lagen. Maar de verborgen laag bevat een terugkerende workflow of self-loopingfunctie. De verborgen laag kan eerdere invoer onthouden en gebruiken voor toekomstige voorspellingen in het kortetermijngeheugen. De huidige invoer wordt opgeslagen in het geheugen om te voorspellen in de volgende reeks.
Denk bijvoorbeeld aan de reeks: Regen is nat. Gebruikers willen dat een RNN het idee van 'nat' voorspelt wanneer het de invoer 'regen' ontvangt. De verborgen laag zou het idee van regen verwerken en opslaan. In het geheugen wordt een kopie opgeslagen. Als de laag 'nat' ontvangt, kan deze 'regen' uit zijn geheugen oproepen en een volledige reeks creëren. Die informatie kan dan worden gebruikt om de nauwkeurigheid te verbeteren. Deze functie maakt een RNN nuttig voor spraakherkenning, vertaling en andere taken voor taalmodellering.
Technici die zich bezighouden met machine learning trainen vaak neurale netwerken zoals RNN's door trainingsgegevens in te voeren in het model en vervolgens de prestaties te verfijnen. Neuronen in neurale modellen krijgen 'gewichten' die aangeven hoe invloedrijk tijdens de training geleerde informatie is bij het voorspellen van de uitvoer. Elke laag in een RNN heeft in eerste instantie hetzelfde gewicht.
Technici passen vervolgens de gewichten aan terwijl het model leert om de nauwkeurigheid van de voorspelling te bepalen. Om dit te doen vertrouwen ze op een techniek die Backpropagation Through Time (BPTT) wordt genoemd om modelfouten te berekenen en het gewicht ervan dienovereenkomstig aan te passen. Technici kunnen dit doen om te bepalen welke verborgen status in de reeks een significante fout veroorzaakt en het gewicht opnieuw aanpassen om de foutmarge te verkleinen.
Technici die zich bezighouden met machine learning bouwen een terugkerend neuraal netwerk op met behulp van hun gekozen programmeertalen, zoals Python. Ongeacht de manier waarop zij dit doen, zijn dit de algemene stappen om een RNN te implementeren:
De invoerlaag maken
De eerste stap is het maken van een laag die invoergegevens kan verzamelen. Deze laag bestaat uit kunstmatige neuronen.Verborgen statussen maken
RNN-modellen kunnen meerdere verborgen lagen hebben die de eigenlijke verwerking voor het neurale netwerk uitvoeren. Deze lagen bestaan ook uit kunstmatige neuronen die onderling verbonden zijn. Dat helpt bij het nabootsen van menselijke voorspellingsvermogens en maakt sequentiebepaling mogelijk.De uitvoerlaag maken
Deze laatste laag voorspelt de resultaten. Sommige modellen kunnen downstream ook meer lagen bevatten.Trainen met gewichten
De exacte parameters en foutmarges worden gecreëerd nadat technici het model met gegevens hebben getraind. Het kan enige tijd duren om de gewichten precies aan te passen en om te voorkomen dat gradiënten verdwijnen of exploderen.
Terugkerende neurale netwerken hebben een sterke basis gelegd voor sequentiële gegevensverwerking. Maar ze hebben beperkingen die ertoe hebben geleid dat veel bedrijven vertrouwen op nieuwere en meer geavanceerde modellen en artificial intelligence voor hun behoeften. Daarom maakt het Now Platform® van ServiceNow gebruik van geavanceerde machine learning en generatieve AI. Dit omvat frameworks voor machine learning, Natural Language Understanding, zoeken en automatisering, en analyses en process mining: innovatieve en geavanceerde AI-technologieën die samenwerken om je bedrijf te laten groeien.
Bekijk de demo van ServiceNow vandaag nog om te zien hoe nieuwe neurale netwerkoplossingen je volgende stap op de weg naar succes kunnen zijn.