Ein wiederkehrendes neuronales Netz oder RNN ist ein tiefes neuronales Netz, das auf sequentiellen oder Zeitreihendaten trainiert wird, um ein Modell für maschinelles Lernen (ML) zu erstellen, das auf der Grundlage sequenzieller Eingaben sequentielle Vorhersagen oder Schlussfolgerungen treffen kann.
Ein RNN kann verwendet werden, um die täglichen Überschwemmungsniveaus auf der Grundlage vergangener täglicher Überschwemmungs-, Gezeiten- und meteorologischer Daten vorherzusagen. RNNs können jedoch auch verwendet werden, um ordinale oder zeitliche Probleme wie Sprachübersetzung, Natürliche Sprachverarbeitung (NLP), Stimmungsanalyse, Spracherkennung und Bildunterschrift zu lösen.
Wie herkömmliche neuronale Netze, z. B. Feedforward Neural Networks und Convolutional Neural Network (CNNs), verwenden rekurrente neuronale Netze Trainingsdaten zum Lernen. Sie zeichnen sich durch ihr „Gedächtnis“ aus, da sie Informationen aus früheren Eingaben übernehmen, um die aktuelle Eingabe und Ausgabe zu beeinflussen.
Während traditionelle Deep-Learning-Netze davon ausgehen, dass Ein- und Ausgaben voneinander unabhängig sind, hängt die Ausgabe von rekurrenten neuronalen Netzen von den vorherigen Elementen innerhalb der Sequenz ab. Auch wenn zukünftige Ereignisse bei der Bestimmung des Outputs 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 die Redewendung einen Sinn ergibt, muss sie in dieser spezifischen Reihenfolge ausgedrückt werden. Daher müssen wiederkehrende Netzwerke die Position jedes Wortes in der Redewendung berücksichtigen und diese Informationen nutzen, um das nächste Wort in der Sequenz vorherzusagen.
Jedes Wort des Satzes „Ich fühle mich nicht wohl“ ist Teil einer Sequenz, bei der die Reihenfolge eine Rolle spielt. Das RNN verfolgt den Kontext, indem es bei jedem Zeitschritt einen verborgenen Zustand beibehält. Durch die Weitergabe des verborgenen Zustands von einem Zeitschritt zum nächsten wird eine Rückkopplungsschleife erzeugt. Der verborgene Zustand fungiert als Speicher, der Informationen über frühere Eingaben speichert. Bei jedem Zeitschritt verarbeitet das RNN die aktuelle Eingabe (z. B. ein Wort in einem Satz) zusammen mit dem verborgenen Zustand des vorherigen Zeitschritts. Dadurch kann sich das RNN an frühere Datenpunkte "erinnern" und diese Informationen zur Steuerung der aktuellen Ausgabe verwenden.
Ein weiteres Unterscheidungsmerkmal wiederkehrender Netzwerke ist, dass sie Parameter über jede Schicht des Netzwerks hinweg gemeinsam nutzen. Während Feedforward-Netzwerke über jeden Knoten hinweg unterschiedliche Gewichte aufweisen, haben rekurrente neuronale Netze innerhalb jeder Schicht des Netzwerks den gleichen Gewichtungsparameter. Dennoch werden diese Gewichte durch die Prozesse der Backpropagation und des Gradientenabstiegs angepasst, um das bestärkende Lernen zu erleichtern.
Wiederkehrende neuronale Netze nutzen Vorwärtsausbreitung (Forward Propagation) und Backpropagation-Through-Time-Algorithmen (BPTT), um die Gradienten (oder Ableitungen) zu bestimmen. Dieser unterscheidet sich leicht von der traditionellen Backpropagation, da er spezifisch für Sequenzdaten ist. Die Prinzipien von BPTT sind die gleichen wie bei der traditionellen Backpropagation, bei der das Modell sich selbst trainiert, indem es Fehler von seiner Ausgabeschicht zu seiner Eingabeschicht berechnet. Diese Berechnungen ermöglichen es uns, die Parameter des Modells entsprechend anzupassen und abzustimmen. BPTT unterscheidet sich vom herkömmlichen Ansatz dadurch, dass BPTT Fehler in jedem Zeitschritt summiert, während Feedforward-Netzwerke keine Fehler summieren müssen, da sie keine Parameter über alle Schichten hinweg gemeinsam nutzen.
Eine Aktivierungsfunktion ist eine mathematische Funktion, die auf die Ausgabe jeder Schicht von Neuronen im Netzwerk angewendet wird, um Nichtlinearität einzuführen und dem Netzwerk das Erkennen komplexerer Muster in den Daten zu ermöglichen. Ohne Aktivierungsfunktionen würde das RNN lediglich lineare Transformationen der Eingaben berechnen und wäre somit nicht zur Lösung nichtlinearer Probleme in der Lage. Nichtlinearität ist für das Lernen und Modellieren komplexer Muster von entscheidender Bedeutung, insbesondere bei Aufgaben wie NLP, Zeitreihenanalyse und sequenzieller Datenvorhersage.
Die Aktivierungsfunktion steuert die Größe der Ausgabe des Neurons und hält die Werte innerhalb eines bestimmten Bereichs (z. B. zwischen 0 und 1 oder -1 und 1). Dies wiederum trägt dazu bei, dass die Werte während des Vorwärts- und Rückwärtslaufs nicht zu groß oder zu klein werden. In RNNs werden Aktivierungsfunktionen bei jedem Zeitschritt auf die versteckten Zustände angewendet und steuern, wie das Netzwerk seinen internen Speicher (versteckten Zustand) auf der Grundlage der aktuellen Eingabe und der vergangenen versteckten Zustände aktualisiert.
Zu den gängigen Aktivierungsfunktionen (siehe folgende Abbildung) gehören:
Die Sigmoid-Funktion dient dazu, die Ausgabe als Wahrscheinlichkeiten zu interpretieren oder Gates zu steuern, die entscheiden, wie viele Informationen beibehalten oder vergessen werden sollen. Die Sigmoid-Funktion ist jedoch anfällig für das Problem des verschwindenden Gradienten (wird nachstehend erklärt), was sie für tiefere Netze weniger ideal macht.
Die Tanh-Funktion (Hyperbolischer Tangens) wird häufig verwendet, da sie um den Nullpunkt zentrierte Werte ausgibt, was zu einem besseren Gradientenfluss und einem leichteren Erlernen langfristiger Abhängigkeiten beiträgt.
Die ReLU (Rectified Linear Unit) kann aufgrund ihrer Unbegrenztheit zu Problemen mit explodierenden Gradienten führen. Es wurden jedoch Varianten wie Leaky ReLU und Parametric ReLU verwendet, um einige dieser Probleme zu entschärfen.
Wenn Sie die Funktionsweise von RNNs näher kennenlernen möchten, sollten Sie sich unseren Recurrent neural networks deep dive ansehen.
Feedforward-Netzwerke bilden Eingaben und Ausgaben eins-zu-eins ab. Während wir in den vorangegangenen Diagrammen rekurrente neuronale Netze auf diese Weise visualisiert haben, gilt für sie diese Einschränkung nicht. Stattdessen können ihre Ein- und Ausgaben unterschiedlich lang sein, und verschiedene Arten von RNNs werden für unterschiedliche Anwendungsfälle verwendet, wie z. B. Musikgenerierung, Stimmungsklassifizierung und maschinelle Übersetzung. Zu den beliebten Architekturvarianten von neuronales Netzen gehören:
Die einfachste Version eines RNN, bei der die Ausgabe in jedem Zeitschritt sowohl von der aktuellen Eingabe als auch vom versteckten Zustand des vorherigen Zeitschritts abhängt, leidet unter Problemen wie verschwindenden Gradienten, was es ihnen das Erlernen langfristiger Abhängigkeiten erschwert. Sie zeichnen sich durch einfache Aufgaben mit kurzfristigen Abhängigkeiten aus, wie z. B. die Vorhersage des nächsten Wortes in einem Satz (bei kurzen, einfachen Sätzen) oder des nächsten Wertes in einer einfachen Zeitreihe.
RNNs eignen sich gut für Aufgaben, bei denen Daten in Echtzeit sequentiell verarbeitet werden, wie z. B. bei der Verarbeitung von Sensordaten zur Erkennung von Anomalien in kurzen Zeiträumen, bei denen die Eingaben nacheinander eingehen und Vorhersagen sofort auf der Grundlage der jüngsten Eingaben getroffen werden müssen.
Während unidirektionale RNN nur aus früheren Eingaben Vorhersagen über den aktuellen Zustand treffen können, ziehen bidirektionale RNN oder BRNN zukünftige Daten heran, um die Genauigkeit zu verbessern. Um auf das Beispiel mit dem Ausdruck „feeling under the weather“ zurückzukommen: Ein auf einem BRNN basierendes Modell kann besser vorhersagen, dass das zweite Wort in diesem Satz „under“ ist, wenn es weiß, dass das letzte Wort in der Sequenz „weather“ ist.
LSTM 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. Diese Arbeit befasst sich mit dem Problem der langfristigen Abhängigkeiten. Das heißt, wenn der vorherige Zustand, der die aktuelle Vorhersage beeinflusst, nicht in der jüngeren Vergangenheit liegt, kann das RNN-Modell den aktuellen Zustand möglicherweise nicht genau vorhersagen.
Nehmen wir zum Beispiel an, wir wollten die kursiv gedruckten Wörter im Folgenden vorhersagen: „Alice ist allergisch gegen Nüsse. Sie kann keine Erdnussbutter essen.“ Der Kontext einer Nussallergie kann uns helfen, vorauszusehen, dass das Lebensmittel, das nicht gegessen werden kann, Nüsse enthält. Wenn dieser Kontext jedoch ein paar Sätze zuvor stünde, wäre es für das RNN schwierig oder sogar unmöglich, die Informationen miteinander zu verknüpfen.
Um dies zu beheben, verfügen LSTM-Netze über „Zellen“ in den verborgenen Schichten des künstlichen neuronalen Netzes, die drei „Gates“ haben – ein Input-Gate, ein Output-Gate und ein Vergessen-Gate. Diese Gates steuern den Informationsfluss, der benötigt wird, um die Leistung im Netzwerk vorherzusagen. Wenn beispielsweise in vorherigen Sätzen mehrfach Geschlechtspronomen wie „sie“ verwendet wurden, können Sie dies aus dem Zellstatus ausschließen.
Eine GRU ähnelt einem LSTM, da sie auch das Kurzzeitgedächtnisproblem von RNN-Modellen angeht. Anstatt Informationen über einen „Zellstatus“ zu regulieren, verwendet sie versteckte Zustände, und statt drei Gates hat sie zwei – ein Reset-Gate und ein Update-Gate. Ähnlich wie die Gates innerhalb von LSTMs steuern die Reset- und Update-Gates, wie viele und welche Informationen gespeichert werden.
Aufgrund ihrer einfacheren Architektur sind GRUs rechnerisch effizienter und benötigen im Vergleich zu LSTMs weniger Parameter. Dadurch sind sie schneller zu trainieren und eignen sich oft besser für bestimmte Echtzeitanwendungen oder Anwendungen mit eingeschränkten Ressourcen.
Diese werden häufig für Sequenz-zu-Sequenz-Aufgaben verwendet, z. B. für die maschinelle Übersetzung. Der Encoder verarbeitet die Eingabesequenz zu einem Vektor (Kontext) fester Länge und der Decoder verwendet diesen Kontext, um die Ausgabesequenz zu erzeugen. Der Kontextvektor mit fester Länge kann jedoch ein Engpass sein, insbesondere bei langen Eingabesequenzen.
Die Verwendung von RNNs in der künstlichen Intelligenz ist zurückgegangen, insbesondere zugunsten von Architekturen wie Transformer-Modellen. RNNs sind jedoch nicht veraltet. Aufgrund ihrer Fähigkeit, mit zeitlichen Abhängigkeiten umzugehen, waren RNNs traditionell für die sequentielle Datenverarbeitung (z. B. Zeitreihen und Sprachmodellierung) beliebt.
Die Schwäche der RNNs gegenüber dem Problem des verschwindenden und explodierenden Gradienten sowie der Aufstieg von Transformer-Modellen wie BERT und GPT haben jedoch zu diesem Rückgang geführt. Transformatoren können weitreichende Abhängigkeiten viel effektiver erfassen, sind leichter zu parallelisieren und schneiden bei Aufgaben wie NLP, Spracherkennung und Zeitreihen-Forecasting besser ab.
Dennoch werden RNNs immer noch in bestimmten Kontexten eingesetzt, in denen ihre sequentielle Natur und ihr Speichermechanismus nützlich sein können, insbesondere in kleineren, ressourcenbeschränkten Umgebungen oder für Aufgaben, bei denen die Datenverarbeitung von einer schrittweisen Wiederholung profitiert.
Für diejenigen, die mit solchen Anwendungsfällen experimentieren möchten, ist Keras eine beliebte Open-Source-Bibliothek, die jetzt in die TensorFlow-Bibliothek integriert ist und eine Python-Schnittstelle für RNNs bietet. Die API ist auf Benutzerfreundlichkeit und Anpassung ausgelegt und ermöglicht es Benutzern, ihre eigene RNN-Zellenebene mit benutzerdefiniertem Verhalten zu definieren.
Verschaffen Sie sich ein umfassendes Verständnis von neuronalen Netzen, ihren grundlegenden Funktionen und den Grundlagen für den Aufbau eines solchen Netzes.
IBM® Granite ist unsere Familie offener, leistungsfähiger und vertrauenswürdiger KI-Modelle, die auf Unternehmen zugeschnitten und für die Skalierung Ihrer KI-Anwendungen optimiert sind. Entdecken Sie die Optionen zu Sprache, Code, Zeitreihen und Guardrails.
Wir haben 2.000 Unternehmen zu ihren KI-Initiativen befragt, um herauszufinden, was funktioniert, was nicht und wie Sie vorankommen können.
Erfahren Sie, wie Sie generative KI und maschinelles Lernen sicher in Ihr Unternehmen integrieren können.
Erfahren Sie, wie Sie das für Ihren Anwendungsfall am besten geeignete KI Foundation Model auswählen.
Erfahren Sie, wie CEOs den Wert, den generative KI schaffen kann, gegen die erforderlichen Investitionen und die damit verbundenen Risiken abwägen können.
Möchten Sie eine bessere Rendite für Ihre KI-Investitionen erzielen? Erfahren Sie, wie die Skalierung generativer KI in Schlüsselbereichen Veränderungen vorantreibt, indem Sie Ihre besten Köpfe dabei unterstützen, innovative neue Lösungen zu entwickeln und bereitzustellen.
Trainieren, validieren, optimieren und implementieren Sie generative KI, Foundation Models und maschinelle Lernfunktionen mit IBM watsonx.ai, einem Studio der nächsten Generation für AI Builder in Unternehmen. Erstellen Sie KI-Anwendungen mit einem Bruchteil der Zeit und Daten.
Setzen Sie KI in Ihrem Unternehmen ein – mit branchenführendem Fachwissen im Bereich KI und dem Lösungsportfolio von IBM an Ihrer Seite.
Erfinden Sie kritische Workflows und Abläufe neu, indem Sie KI einsetzen, um Erfahrungen, Entscheidungsfindung in Echtzeit und den geschäftlichen Nutzen zu maximieren.