Zum Inhalt springen

Was sind Recurrent Neural Networks?

Recurrent Neural Networks (RNNs) sind neben den Feedforward Netzwerken und den Convolutional Neural Networks die dritte große Art von Neuronalen Netzwerken. Sie werden bei Zeitreihendaten und sequenziellen Informationen eingesetzt, also Daten bei denen der vorangegangene Datenpunkt einen Einfluss auf den aktuellen hat. Diese Netzwerke enthalten mindestens eine Schicht, die rückgekoppelt ist. Was das bedeutet, schauen wir uns in diesem Beitrag genauer an.

Was sind Recurrent Neural Networks?

Um verstehen zu können, wie Recurrent Neural Networks funktionieren, müssen wir uns nochmal vor Augen führen, wie normale Feedforward Neuronale Netze aufgebaut sind. In diesen ist ein Neuron der Hidden Layer jeweils mit den Neuronen aus der vorherigen Schicht und den Neuronen aus der folgenden Schicht verbunden. Der Output eines Neurons kann in einem solchen Netzwerk immer nur nach vorne weitergereicht werden, jedoch niemals an ein Neuron auf derselben Schicht oder sogar der vorherigen Schicht, daher auch der Name „Feedforward“.

Das Bild zeigt den Grundaufbau eines Künstlichen Neuronalen Netzwerkes mit den verschiedenen Schichten.
Aufbau Feedforward Neural Network

Bei Rekurrenten Neuronalen Netzwerken ist das anders. Der Output eines Neurons kann dort sehr wohl als Input einer vorherigen Schicht oder der aktuellen Schicht genutzt werden. Das kommt tatsächlich auch der Funktionsweise unseres Gehirns nochmal deutlich näher, als die Art und Weise, wie Feedforward Neuronale Netze aufgebaut sind. In vielen Anwendungen benötigen wir auch ein Verständnis für unmittelbar davor berechnete Schritte, um das Gesamtergebnis zu verbessern.

Anwendung von RNNs

Recurrent Neural Networks kommen vor allem bei der maschinellen Sprachverarbeitung oder bei Zeitreihendaten zum Einsatz, also dann wenn die Informationen aus der unmittelbaren Vergangenheit eine große Rolle spielen. Bei dem Übersetzen von Texten sollten wir auch die davor verarbeitete Sequenz von Worten im „Gedächtnis“ des Neuronalen Netzes behalten, anstatt nur Wort für Wort unabhängig voneinander zu übersetzen.

Sobald wir ein Sprichwort oder eine Redewendung in dem zu übersetzenden Text haben, müssen wir auch die vorangegangen Worte mit bei der Übersetzung beachten, da wir nur so erkennen können, dass es sich um ein Sprichwort handelt. Werden die Anwendungen in der Sprachverarbeitung komplexer, ist der Kontext von noch größerer Bedeutung. Beispielsweise dann, wenn wir über einen Text hinweg Informationen über eine bestimmte Person sammeln wollen.

Arten von RNNs

Je nachdem wie weit der Output eines Neurons innerhalb des Netzwerkes zurückgereicht wird, unterscheiden wir insgesamt vier verschiedene Typen von Rekurrenten Neuronalen Netzwerken:

  1. Direkte Rückkopplung (Direct-Feedback-Network): Der Ausgang eines Neurons wird als Eingang desselben Neurons verwendet.
Das Bild zeigt den schematischen Aufbau eines Recurrent Neural Networks
Direkte Rückkopplung RNN

2. Indirekte Rückkopplung (Indirect-Feedback-Network): Der Output eines Neurons wird als Input in einer der vorangegangenen Schichten genutzt.

Indirekte Rückkopplung RNN

3. Seitliche Rückkopplung (Lateral-Feedback-Network): Hier wird der Ausgang eines Neurons mit dem Eingang eines Neurons derselben Schicht verbunden.

Seitliche Rückkopplung RNN

4. Vollständige Rückkopplung (Complete-Feedback-Network): Der Ausgang eines Neurons hat Verbindungen zu den Eingängen aller (!) Neuronen im Netzwerk, egal ob in derselben Schicht, einer vorangegangenen oder einer nachfolgenden Schicht.

Vollständige Rückkopplung RNN

Probleme mit Recurrent Neural Networks

Recurrent Neural Networks waren ein echter Durchbruch im Bereich des Deep Learning, da zum ersten Mal auch die Berechnungen aus der jüngeren Vergangenheit mit in die aktuelle Berechnung mit einbezogen wurden und dadurch die Ergebnisse in der Sprachverarbeitung deutlich verbesserten. Trotzdem bringen sie während des Trainings auch einige Probleme mit sich, die es zu beachten gilt.

Wie wir in unserem Beitrag zum Gradientenverfahren bereits erläutert haben, kann es beim Training von Neuronalen Netzwerken mit dem Gradientenverfahren dazu kommen, dass der Gradient entweder sehr kleine Werte nahe 0 oder sehr große Werte in der Nähe von Unendlich annimmt. In beiden Fällen können wir die Gewichtungen der Neuronen während der Backpropagation nicht mehr abändern, da sich die Gewichtung entweder so gut wie gar nicht ändert oder wir aber die Zahl mit so einem großen Wert überhaupt nicht multiplizieren können. Aufgrund der vielen Vernetzungen im Rekurrenten Neuronalen Netzwerk und der leicht abgeänderten Form des Backpropagation Algorithmus, die dafür genutzt wird, ist die Wahrscheinlichkeit, dass es zu diesen Problemen kommen wird, deutlich höher als in normalen Feedforward Netzen.

Normale RNNs sind sehr gut dafür geeignet, sich Kontexte zu merken und in die Vorhersage mit einzubeziehen. Das ermöglicht es dem RNN beispielsweise zu erkennen, dass in dem Satz „Die Wolken sind am ___“ das Wort „Himmel“ benötigt wird, um in diesem Kontext den Satz richtig zu vervollständigen. In einem längeren Satz wird es hingegen deutlich schwieriger den Kontext aufrechtzuerhalten. Beim dem leicht veränderten Satz „Die Wolken, die teilweise fließend ineinander übergehen und tief hängen, sind am ___“ wird es für ein Recurrent Neural Network schon deutlich schwieriger auf das Wort „Himmel“ zu schließen.

Long Short Term Memory (LSTM)

Aufgrund der beschriebenen Probleme von klassischen RNNs hat sich eine Sonderform der Rekurrenten Neuronalen Netze gebildet, die sogenannten LSTM Modelle. Diese sind speziell dafür ausgelegt, auch Kontexte über einen längeren Zeitraum hinweg in die Berechnung mit einfließen zu lassen. Das wesentliche Unterscheidungsmerkmal zu herkömmlichen RNNs ist die sogenannte Zelle. Grob gesagt werden hier die wichtigen Informationen gespeichert, die unbedingt erhalten bleiben müssen. Über verschiedene Gates wird sorgfältig entschieden, welche Daten in den erwählten Kreis der Zelle „eintreten“ dürfen oder diese wieder verlassen müssen. In einem späteren Beitrag werden wir uns noch im Detail mit LSTM Modellen beschäftigen.

Ausblick

Recurrent Neural Networks sind für Machine Learning Verhältnisse schon sehr alt und wurden bereits im Jahr 1986 zum ersten Mal vorgestellt. Für eine lange Zeit waren sie und insbesondere die LSTM Architektur das Non plus ultra im Bereich der Sprachverarbeitung, um den Kontext zu erhalten. Jedoch hat sich diese Stellung seit dem Jahr 2017 und der Einführung von Transformer Modellen und Attention Masks grundlegend geändert.

Diese sind nicht nur in der Lage noch längere Kontexte zu berücksichtigen als LSTM Modelle, sondern können darüber hinaus auch die Wortposition innerhalb des Satzes mit berücksichtigen und in die Vorhersage mit einbeziehen. Der einzige Nachteil an ihnen ist die sehr große Modellgröße auch bei einfachen Anwendungen und dadurch ein ressourcenintensives Training. Trotzdem haben Transformer mittlerweile Recurrent Neural Networks in den meisten sprachlichen Anwendungen abgelöst.

Das solltest Du mitnehmen

  • Recurrent Neural Networks unterscheiden sich von Feedforward Neural Networks, indem der Output von Neuronen auch in derselben oder vorherigen Schichten als Input genutzt wird.
  • Sie bieten sich vor allem in der Sprachverarbeitung und bei Zeitreihendaten an, wenn der vergangene Kontext mit berücksichtigt werden soll.
  • Wir unterscheiden verschiedene Arten von RNNs, nämlich die direkte Rückkopplung, die indirekte Rückkopplung, die seitliche Rückkopplung oder die vollständige Rückkopplung.

Andere Beiträge zum Thema Recurrent Neural Networks

  • Mehr Informationen zu RNNs findest Du unter anderem auf de Tensorflow Seite.
close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Cookie Consent mit Real Cookie Banner