Ein rekurrentes neuronales Netz (RNN) ist eine Art von künstlichem neuronalem Netz, das sequenzielle Daten oder Zeitreihendaten verwendet. Diese Deep Learning-Algorithmen werden häufig für ordinale oder zeitliche Probleme verwendet, wie z. B. Sprachkonvertierung, Verarbeitung natürlicher Sprache (NLP), Spracherkennung und Bilduntertitelung; sie sind in vielfach eingesetzte Anwendungen wie Siri, Sprachsuche und Google Translate integriert. Wie Feedforward- und Convolutional Neural Networks (CNNs) verwenden rekurrente neuronale Netze Trainingsdaten zum Lernen. Sie zeichnen sich durch ihr „Gedächtnis“ aus, da sie Informationen aus früheren Eingaben aufnehmen, um die aktuelle Eingabe und Ausgabe zu beeinflussen. Während herkömmliche tiefe neuronale Netze davon ausgehen, dass Eingaben und Ausgaben unabhängig voneinander sind, hängt die Ausgabe rekurrenter neuronaler Netze von den vorherigen Elementen innerhalb der Sequenz ab. Während künftige Ereignisse auch bei der Bestimmung der Ausgabe einer bestimmten Sequenz hilfreich wären, können unidirektionale rekurrente neuronale Netze diese Ereignisse bei ihren Vorhersagen nicht berücksichtigen.
Nehmen wir ein Idiom wie „sich nicht wohl fühlen“, das häufig verwendet wird, wenn jemand krank ist, um uns bei der Erklärung von RNNs zu helfen. Damit das Idiom einen Sinn ergibt, muss es in dieser spezifischen Reihenfolge ausgedrückt werden. Folglich müssen rekurrente Netze die Position jedes Wortes im Idiom berücksichtigen und diese Information nutzen, um das nächste Wort in der Sequenz vorherzusagen.
Ein weiteres Unterscheidungsmerkmal von rekurrenten Netzen ist, dass sie Parameter in jeder Schicht des Netzes gemeinsam nutzen. Während Feedforward-Netze für jeden Knoten unterschiedliche Gewichtungen haben, haben rekurrente neuronale Netze in jeder Schicht des Netzes denselben Gewichtungsparameter. Dennoch werden diese Gewichtungen in den Prozessen der Rückwärtspropagierung und des Gradientenabstiegs angepasst, um das bestärkende Lernen zu erleichtern.
Rekurrente neuronale Netze nutzen den Algorithmus der Rückwärtspropagierung in Zeitschritten (BPTT) zur Bestimmung der Gradienten, der sich von der traditionellen Rückwärtsprogagierung leicht unterscheidet, da er spezifisch für Sequenzdaten ist. Die Grundlagen der BPTT sind die gleichen wie bei der traditionellen Rückwärtspropagierung, bei der das Modell sich selbst trainiert, indem es Fehler von seiner Ausgabeschicht zu seiner Eingabeschicht berechnet. Anhand dieser Berechnungen können wir die Parameter des Modells entsprechend anpassen und ausrichten. BPTT unterscheidet sich vom traditionellen Konzept dadurch, dass es die Fehler bei jedem Zeitschritt summiert, während Feedforward-Netze die Fehler nicht summieren müssen, da sie die Parameter nicht in jeder Schicht gemeinsam nutzen.
Durch diesen Prozess neigen RNNs dazu, auf zwei Probleme zu stoßen, die als explodierende Gradienten und verschwindende Gradienten bekannt sind. Diese Probleme werden durch die Größe des Gradienten definiert, der die Steigung der Verlustfunktion entlang der Fehlerkurve darstellt. Wenn die Steigung zu klein ist, wird sie immer kleiner und die Gewichtungsparameter werden aktualisiert, bis sie unbedeutend werden, d. h. 0 sind. In diesem Fall ist der Algorithmus nicht mehr lernfähig. Explodierende Gradienten treten auf, wenn der Gradient zu groß ist und ein instabiles Modell entsteht. In diesem Fall werden die Modellgewichtungen zu groß, und sie werden schließlich als NaN dargestellt. Eine Lösung für diese Probleme besteht darin, die Anzahl der verdeckten Schichten innerhalb des neuronalen Netzes zu verringern und damit einen Teil der Komplexität des RNN-Modells zu eliminieren.
Watson Studio
Watson Machine Learning Accelerator
Feedforward-Netze bilden eine Eingabe auf eine Ausgabe ab, und obwohl wir rekurrente neuronale Netzwerke in den obigen Diagrammen auf diese Weise visualisiert haben, unterliegen sie dieser Bedingung nicht wirklich. Stattdessen können ihre Eingaben und Ausgaben in der Länge variieren, und verschiedene Arten von RNNs werden für unterschiedliche Anwendungsfälle verwendet, z. B. für die Erzeugung von Musik, die Klassifizierung von Stimmungen und die maschinelle Übersetzung.
Wie im Lernartikel über neuronale Netze beschrieben, bestimmt eine Aktivierungsfunktion, ob ein Neuron aktiviert werden soll. Die nichtlinearen Funktionen wandeln in der Regel die Ausgabe eines bestimmten Neurons in einen Wert zwischen 0 und 1 oder -1 und 1 um.
Bidirektionale rekurrente neuronale Netze (BRNN): Hierbei handelt es sich um eine Variante der Netzarchitektur von RNNs. Während unidirektionale RNNs nur auf frühere Eingaben zurückgreifen können, um Vorhersagen über den aktuellen Zustand zu treffen, ziehen bidirektionale RNNs zukünftige Daten heran, um ihre Genauigkeit zu verbessern. Wenn wir auf das Beispiel von „sich nicht wohl fühlen“ zurückkommen, kann das Modell besser vorhersagen, dass das zweite Wort in diesem Satz „nicht“ ist, wenn es weiß, dass das letzte Wort in der Sequenz „fühlen“ ist.
Langes Kurzzeitgedächtnis (LSTM): Dies ist eine beliebte RNN-Architektur, die von Sepp Hochreiter und Jürgen Schmidhuber als Lösung für das Problem des verschwindenden Gradienten eingeführt wurde. In ihrem Papier (PDF, 388 KB) (IBM-externer Link) befassen sie sich mit dem Problem der langfristigen Abhängigkeiten. Das heißt, wenn der vorherige Zustand, der die aktuelle Vorhersage beeinflusst, nicht in der jüngsten Vergangenheit liegt, ist das RNN-Modell möglicherweise nicht in der Lage, den aktuellen Zustand genau vorherzusagen. Nehmen wir zum Beispiel an, dass wir die kursiv gedruckten Wörter wie folgt vorhersagen wollen: „Alice ist allergisch gegen Nüsse. Sie kann keine Erdnussbutter essen.“ Der Kontext einer Nussallergie kann uns helfen, zu erahnen, dass das Lebensmittel, das nicht gegessen werden darf, Nüsse enthält. Wenn dieser Kontext jedoch einige Sätze zurückliegt, wäre es für das RNN schwierig oder sogar unmöglich, die Informationen zu verknüpfen. Um hier Abhilfe zu schaffen, verfügen LSTMs über „Zellen“ in den verborgenen Schichten des neuronalen Netzes, die drei Gates haben – ein Input-Gate, ein Output-Gate und ein Forget-Gate. Diese Gates steuern den Informationsfluss, der für die Vorhersage der Ausgabe im Netz erforderlich ist. Wenn z. B. Geschlechtspronomen wie „sie“ in früheren Sätzen mehrfach wiederholt wurden, können Sie dies aus dem Zellstatus ausschließen.
Gated Recurrent Units (GRUs): Diese RNN-Variante ähnelt den LSTMs, da sie ebenfalls das Problem des Kurzzeitgedächtnisses von RNN-Modellen angeht. Statt eines „Zellzustands“, der die Informationen reguliert, werden verdeckte Zustände verwendet, und statt drei Gates gibt es nur zwei – ein Reset-Gate und ein Update-Gate. Ähnlich wie bei den Gates in LSTMs steuern die Reset- und Update-Gates, wie viele und welche Informationen gespeichert werden sollen.
Seit Jahrzehnten ist IBM ein Vorreiter in der Entwicklung von KI-Technologien und neuronalen Netzen, hervorgehoben durch die Entwicklung und Weiterentwicklung von IBM Watson. Watson ist mittlerweile eine anerkannte Lösung für Unternehmen, die innovative natürliche Sprachverarbeitung und Deep Learning-Verfahren auf ihre Systeme anwenden möchten, indem sie ein praxistaugliches abgestuftes Konzept für die Nutzung und Implementierung von KI verfolgen.
IBM Produkte wie IBM Watson Machine Learning unterstützen auch beliebte Python-Bibliotheken wie TensorFlow, Keras und PyTorch, die häufig in rekurrenten neuronalen Netzen verwendet werden. Mithilfe von Tools wie IBM Watson Studio und Watson Machine Learning kann Ihr Unternehmen Ihre Open-Source-KI-Projekte nahtlos in die Produktion überführen und Ihre Modelle in jeder beliebigen Cloud bereitstellen und ausführen.
Weitere Informationen über den Einstieg in die Deep Learning-Technologie finden Sie in IBM Watson Studio.
Erstellen und skalieren Sie vertrauenswürdige KI in jeder Cloud. Automatisieren Sie den KI-Lebenszyklus für ModelOps.
Software für KI-gestützte Hybrid-Cloud.
Hybrid. Offen. Ausfallsicher. Ihre Plattform und Ihr Partner für digitale Transformation.
Erstellen und skalieren Sie vertrauenswürdige KI in jeder Cloud. Automatisieren Sie den KI-Lebenszyklus für ModelOps.
Beschleunigen Sie Ihre Deep Learning-Workload. Verkürzen Sie die Zeit bis zur Wertschöpfung mit KI-Modelltraining und -Inferenzen.