Introductie van Recurrent Neural Networks (RNN)

Een terugkerend neuraal netwerk is een type van een kunstmatig neuraal netwerk (ANN) en wordt gebruikt in toepassingsgebieden van natuurlijke taalverwerking (NLP) en spraakherkenning. Een RNN-model is ontworpen om de sequentiële kenmerken van gegevens te herkennen en vervolgens de patronen te gebruiken om het komende scenario te voorspellen.

Werking van recidiverende neurale netwerken

Als we het hebben over traditionele neurale netwerken, zijn alle uitgangen en ingangen onafhankelijk van elkaar, zoals weergegeven in het onderstaande diagram:

Maar in het geval van terugkerende neurale netwerken, wordt de output van de vorige stappen ingevoerd in de input van de huidige toestand. Om bijvoorbeeld de volgende letter van een woord te voorspellen, of om het volgende woord van de zin te voorspellen, is het nodig om de vorige letters of de woorden te onthouden en op te slaan in een vorm van geheugen.

De verborgen laag is degene die enige informatie over de reeks onthoudt. Een eenvoudig voorbeeld uit de praktijk waaraan we RNN kunnen relateren, is wanneer we een film kijken en in veel gevallen zijn we in staat om te voorspellen wat er zal gebeuren, maar wat als iemand zich gewoon bij de film voegt en hem wordt gevraagd te voorspellen wat gaat het volgende gebeuren? Wat zal zijn antwoord zijn? Hij of zij zal geen idee hebben omdat ze zich niet bewust zijn van de eerdere gebeurtenissen in de film en ze hebben er geen geheugen voor.

Een illustratie van een typisch RNN-model wordt hieronder gegeven:

De RNN-modellen hebben een geheugen dat altijd onthoudt wat er in vorige stappen is gedaan en wat is berekend. Dezelfde taak wordt uitgevoerd op alle ingangen en RNN gebruikt dezelfde parameter voor elk van de ingangen. Aangezien het traditionele neurale netwerk onafhankelijke sets van invoer en uitvoer heeft, zijn ze complexer dan RNN.

Laten we nu proberen het Recurrent Neural Network te begrijpen met behulp van een voorbeeld.

Laten we zeggen dat we een neuraal netwerk hebben met 1 invoerlaag, 3 verborgen lagen en 1 uitvoerlaag.

Als we het hebben over andere of de traditionele neurale netwerken, hebben ze hun eigen sets van vooroordelen en gewichten in hun verborgen lagen zoals (w1, b1) voor verborgen laag 1, (w2, b2) voor verborgen laag 2 en (w3, b3 ) voor de derde verborgen laag, waarbij: w1, w2 en w3 de gewichten zijn en b1, b2 en b3 de bias zijn.

Gegeven dit kunnen we zeggen dat elke laag niet afhankelijk is van een andere en dat ze zich niets kunnen herinneren over de vorige invoer:

Wat een RNN zal doen, is het volgende:

  • De onafhankelijke lagen worden geconverteerd naar de afhankelijke laag. Dit wordt gedaan door voor alle lagen dezelfde vooroordelen en gewichten te bieden. Dit vermindert ook het aantal parameters en lagen in het terugkerende neurale netwerk en het helpt RNN om de vorige uitvoer te onthouden door de vorige uitvoer als invoer naar de komende verborgen laag uit te voeren.
  • Samenvattend kunnen alle verborgen lagen worden samengevoegd tot een enkele terugkerende laag, zodat de gewichten en voorspanning hetzelfde zijn voor alle verborgen lagen.
    Dus een terugkerend neuraal netwerk ziet er ongeveer zo uit:

Nu is het tijd om enkele vergelijkingen voor een RNN-model te behandelen.

  • Voor het berekenen van de huidige status,

h t= f (h t-1, x t ),

Waar:

x t is de invoerstatus
h t-1 is de vorige status,
h t is de huidige status.

  • Voor het berekenen van de activeringsfunctie

h t= tanh (W hh h t-1 +W xh x t ),

Waar:
W xh is het gewicht bij inputneuron,

W hh is het gewicht bij recidiverend neuron.

  • Voor het berekenen van de output:

Y t =W hy h t.

Waar,
Y t is de uitvoer en
Why is het gewicht op de uitvoerlaag.

Stappen voor het trainen van een recurrent neuraal netwerk

  1. In de invoerlagen wordt de eerste invoer verzonden met allemaal hetzelfde gewicht en dezelfde activeringsfunctie.
  2. Met behulp van de huidige invoer en de vorige statusuitvoer wordt de huidige status berekend.
  3. Nu wordt de huidige toestand h t h t-1 voor de tweede tijdstap.
  4. Dit herhaalt zich voor alle stappen en om een ​​bepaald probleem op te lossen, kan het zo vaak doorgaan om de informatie van alle voorgaande stappen samen te voegen.
  5. De laatste stap wordt vervolgens berekend door de huidige status van de laatste status en alle andere voorgaande stappen.
  6. Nu wordt een fout gegenereerd door het verschil te berekenen tussen de werkelijke uitvoer en de uitvoer die door ons RNN-model is gegenereerd.
  7. De laatste stap is wanneer het proces van backpropagatie plaatsvindt, waarbij de fout wordt teruggepropageerd om de gewichten bij te werken.

Voordelen van terugkerende neurale netwerken

  1. RNN kan ingangen van elke lengte verwerken.
  2. Een RNN-model is gemodelleerd om elke informatie gedurende de tijd te onthouden, wat erg handig is in elke voorspelling van tijdreeksen.
  3. Zelfs als de invoer groter is, neemt het model niet toe.
  4. De gewichten kunnen worden verdeeld over de tijdstappen.
  5. RNN kan hun interne geheugen gebruiken voor het verwerken van de willekeurige reeks ingangen, wat niet het geval is bij feedforward neurale netwerken.

Nadelen van terugkerende neurale netwerken

  1. Vanwege de terugkerende aard is de berekening traag.
  2. Training van RNN-modellen kan moeilijk zijn.
  3. Als we relu of tanh gebruiken als activeringsfuncties, wordt het erg moeilijk om sequenties te verwerken die erg lang zijn.
  4. Gevoelig voor problemen zoals exploderen en verloop verdwijnen.

Conclusie

In dit artikel hebben we een ander type kunstmatig neuraal netwerk geleerd, genaamd Recurrent Neural Network, we hebben ons gericht op het belangrijkste verschil dat RNN onderscheidt van andere soorten neurale netwerken, de gebieden waar het uitgebreid kan worden gebruikt, zoals bij spraakherkenning en NLP (Natural Language Processing). Verder zijn we achter de werking van RNN-modellen en functies die worden gebruikt om een ​​robuust RNN-model te bouwen.

Aanbevolen artikelen

Dit is een handleiding voor terugkerende neurale netwerken. Hier bespreken we de introductie, hoe het werkt, stappen, voordelen en nadelen van RNN, enz. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -
  1. Wat is neurale netwerken?
  2. Machine Learning Frameworks
  3. Inleiding tot kunstmatige intelligentie
  4. Inleiding tot Big Data Analytics
  5. Implementatie van neurale netwerken

Categorie: