Einführung in wiederkehrende neuronale Netze (RNN)

Ein wiederkehrendes neuronales Netzwerk ist ein Typ eines künstlichen neuronalen Netzwerks (Artificial Neural Network, ANN) und wird in Anwendungsbereichen der Verarbeitung natürlicher Sprache (NLP) und der Spracherkennung verwendet. Ein RNN-Modell soll die sequentiellen Eigenschaften von Daten erkennen und anschließend anhand der Muster das kommende Szenario vorhersagen.

Arbeiten von wiederkehrenden neuronalen Netzen

Wenn wir über traditionelle neuronale Netze sprechen, sind alle Ausgänge und Eingänge unabhängig voneinander, wie in der folgenden Abbildung dargestellt:

Im Fall von wiederkehrenden neuronalen Netzen wird die Ausgabe der vorherigen Schritte in die Eingabe des aktuellen Zustands eingespeist. Um beispielsweise den nächsten Buchstaben eines Wortes oder das nächste Wort des Satzes vorherzusagen, müssen die vorherigen Buchstaben oder Wörter gespeichert und in irgendeiner Form gespeichert werden.

Die verborgene Schicht ist diejenige, die sich einige Informationen über die Sequenz merkt. Ein einfaches Beispiel aus dem wirklichen Leben, mit dem wir RNN in Beziehung setzen können, ist, wenn wir einen Film ansehen. In vielen Fällen können wir vorhersagen, was als nächstes passieren wird, aber was ist, wenn jemand gerade dem Film beigetreten ist und er gefragt wird, was vorherzusagen wird als nächstes passieren? Was wird seine Antwort sein? Er oder sie wird keine Ahnung haben, weil sie die vorherigen Ereignisse des Films nicht kennen und keine Erinnerung daran haben.

Eine Abbildung eines typischen RNN-Modells ist unten angegeben:

Die RNN-Modelle verfügen über einen Speicher, der sich immer daran erinnert, was in den vorherigen Schritten getan und was berechnet wurde. Für alle Eingänge wird dieselbe Aufgabe ausgeführt, und RNN verwendet für jeden Eingang denselben Parameter. Da das traditionelle neuronale Netz unabhängige Ein- und Ausgangssätze hat, sind sie komplexer als RNN.

Versuchen wir nun, das wiederkehrende neuronale Netz anhand eines Beispiels zu verstehen.

Angenommen, wir haben ein neuronales Netzwerk mit 1 Eingabeebene, 3 ausgeblendeten Ebenen und 1 Ausgabeebene.

Wenn wir über andere oder die traditionellen neuronalen Netze sprechen, haben sie ihre eigenen Sätze von Vorspannungen und Gewichten in ihren verborgenen Schichten wie (w1, b1) für die verborgene Schicht 1, (w2, b2) für die verborgene Schicht 2 und (w3, b3 ) für die dritte verborgene Schicht, wobei: w1, w2 und w3 die Gewichte sind und b1, b2 und b3 die Vorspannungen sind.

In Anbetracht dessen können wir sagen, dass jede Ebene von keiner anderen abhängig ist und dass sie sich an nichts über die vorherige Eingabe erinnern kann:

Nun wird ein RNN Folgendes tun:

  • Die unabhängigen Ebenen werden in die abhängige Ebene konvertiert. Dies wird erreicht, indem allen Schichten die gleichen Vorspannungen und Gewichte zur Verfügung gestellt werden. Dies reduziert auch die Anzahl von Parametern und Schichten in dem wiederkehrenden neuronalen Netzwerk und hilft RNN, die vorherige Ausgabe zu speichern, indem die vorherige Ausgabe als Eingabe für die kommende verborgene Schicht ausgegeben wird.
  • Zusammenfassend kann gesagt werden, dass alle ausgeblendeten Ebenen zu einer einzigen wiederkehrenden Ebene zusammengefasst werden können, sodass die Gewichte und die Vorspannung für alle ausgeblendeten Ebenen gleich sind.
    Ein wiederkehrendes neuronales Netzwerk sieht also wie folgt aus:

Nun ist es Zeit, sich mit einigen Gleichungen für ein RNN-Modell zu befassen.

  • Zur Berechnung des aktuellen Zustands

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

Wo:

x t ist der Eingangszustand
h t-1 ist der vorherige Zustand,
h t ist der aktuelle Zustand.

  • Zur Berechnung der Aktivierungsfunktion

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

Wo:
W xh ist das Gewicht am Eingangsneuron,

W hh ist das Gewicht eines wiederkehrenden Neurons.

  • Zur Berechnung der Leistung:

Y t =W hy h t.

Wo,
Y t ist die Ausgabe und,
W hy ist das Gewicht an der Ausgabeschicht.

Schritte zum Trainieren eines wiederkehrenden neuronalen Netzwerks

  1. In den Eingabeebenen wird die anfängliche Eingabe gesendet, wobei alle das gleiche Gewicht und die gleiche Aktivierungsfunktion haben.
  2. Unter Verwendung des aktuellen Eingangs und des vorherigen Statusausgangs wird der aktuelle Status berechnet.
  3. Jetzt wird der aktuelle Zustand h t zum zweiten Mal zu h t-1 .
  4. Dies wiederholt sich für alle Schritte und um ein bestimmtes Problem zu lösen, kann es so oft fortgesetzt werden, bis die Informationen aus allen vorherigen Schritten zusammengefügt sind.
  5. Der letzte Schritt wird dann anhand des aktuellen Zustands des letzten Zustands und aller anderen vorherigen Schritte berechnet.
  6. Jetzt wird ein Fehler generiert, indem die Differenz zwischen der tatsächlichen Ausgabe und der von unserem RNN-Modell generierten Ausgabe berechnet wird.
  7. Der letzte Schritt ist der Backpropagation-Vorgang, bei dem der Fehler zurückpropagiert wird, um die Gewichte zu aktualisieren.

Vorteile wiederkehrender neuronaler Netze

  1. RNN kann Eingaben beliebiger Länge verarbeiten.
  2. Ein RNN-Modell wird so modelliert, dass alle Informationen während der gesamten Zeit gespeichert werden. Dies ist in jedem Zeitreihen-Prädiktor sehr hilfreich.
  3. Auch wenn die Eingabegröße größer ist, nimmt die Modellgröße nicht zu.
  4. Die Gewichte können über die Zeitschritte verteilt werden.
  5. RNN kann ihren internen Speicher zum Verarbeiten der willkürlichen Reihe von Eingaben verwenden, was bei vorwärtsgerichteten neuronalen Netzen nicht der Fall ist.

Nachteile wiederkehrender neuronaler Netze

  1. Aufgrund ihrer wiederkehrenden Natur ist die Berechnung langsam.
  2. Das Training von RNN-Modellen kann schwierig sein.
  3. Wenn wir relu oder tanh als Aktivierungsfunktionen verwenden, wird es sehr schwierig, Sequenzen zu verarbeiten, die sehr lang sind.
  4. Anfällig für Probleme wie Explodieren und Verschwinden des Gefälles.

Fazit

In diesem Artikel haben wir einen anderen Typ eines künstlichen neuronalen Netzwerks mit dem Namen "Recurrent Neural Network" kennengelernt. Wir haben uns auf den Hauptunterschied konzentriert, der RNN von anderen Typen neuronaler Netzwerke unterscheidet und NLP (Natural Language Processing). Darüber hinaus haben wir uns mit der Arbeit an RNN-Modellen und -Funktionen beschäftigt, mit denen ein robustes RNN-Modell erstellt wird.

Empfohlene Artikel

Dies ist eine Anleitung für wiederkehrende neuronale Netze. Hier diskutieren wir die Einführung, wie es funktioniert, Schritte, Vor- und Nachteile von RNN usw. Sie können auch unsere anderen vorgeschlagenen Artikel durchgehen, um mehr zu erfahren -
  1. Was sind neuronale Netze?
  2. Frameworks für maschinelles Lernen
  3. Einführung in die künstliche Intelligenz
  4. Einführung in Big Data Analytics
  5. Implementierung neuronaler Netze

Kategorie: