Page cover

Rekurrente neuronale Netze (engl. Recurrent Neural Network, RNN)

Rekurrente neuronale Netze (engl. Recurrent Neural Network, RNN) sind für die Verarbeitung von sequenziellen Daten konzipiert, wie Zeitreihen oder natürliche Sprache. Ihr Aufbau umfasst Schichten mit wiederkehrenden Neuronen, die Informationen über vorherige Zustände beibehalten können. Diese Fähigkeit ermöglicht es RNNs, zeitliche Abhängigkeiten zu modellieren.

Im folgenden Abschnitt wird eine eingehende Betrachtung der Vor- und Nachteile von RNNs dargelegt:

Vorteile:

  • Sequenzielle Daten: RNNs sind ideal für die Verarbeitung sequenzieller Daten, wie Text und Zeitreihen, da sie Informationen aus vorherigen Zeitschritten speichern können.

  • Sprachmodelle: Sie werden verwendet für Aufgaben wie Sprachmodellierung und maschinelles Übersetzen.

  • Flexibilität in der Eingabe- und Ausgabegröße: RNNs können Sequenzen unterschiedlicher Längen verarbeiten, was in Anwendungen mit variabler Eingabe- oder Ausgabegröße von Vorteil ist.

Nachteile:

  • Langzeitabhängigkeiten: RNNs haben Schwierigkeiten, lange Abhängigkeiten zwischen Daten zu erfassen, was als "verschwindende Gradienten"(engl. Vanishing Gradient) Problem bekannt ist.

  • Begrenzte Parallelisierungsmöglichkeiten: RNNs haben aufgrund ihrer sequenziellen Natur begrenzte Möglichkeiten zur Parallelisierung während des Trainings, was zu längeren Trainingszeiten führen kann.

In Abbildung 24 ist das rekursive Prinzip in den versteckten Schichten des neuronalen Netzwerkes schematisch abgebildet.

Abbildung 24: Funktionsprinzip eines RNNs

In diesem Beispiel wird ein Rekurrentes neuronales Netz (RNN) erstellt, trainiert und evaluiert.

# RNN Modell erstellen
model = models.Sequential([
    layers.Embedding(input_dim=..., output_dim=...),
    layers.SimpleRNN(units),
    layers.Dense(units, activation=...)
])

# Kompilieren des Modells
model.compile(loss=..., optimizer=...)

# Modell trainieren
model.fit(X_train, y_train, epochs=epochs, batch_size=batch_size,
          validation_data=(X_val, y_val))

Mehr erfahren: IBM/What is a Recurent Neural Network

Last updated