Ich möchte einige hochrangige Intuition hinter LSTM-Netzwerken diskutieren. Hier sind einige Fragen, die helfen sollen, die Warum-Aspekte zu erforschen:

  • Warum/wann würden wir ein LSTM gegenüber einem Feed Forward Neural Network (FFNN) verwenden?
  • Was sind die Vor- und Nachteile von LSTMs und wie sind sie im Vergleich zu FFNN?
  • Wie unterscheiden sie sich von traditionellen rekurrenten neuronalen Netzen (RNNs)?

Feed Forward Neural Networks (FFNN)

Betrachten wir zunächst ein Standard-FFNN mit der Architektur:Zum Data Science Image: *Counting No. of Parameters in Deep Learning Models by Hand*

Wie Sie wahrscheinlich wissen, nimmt dieses FFNN drei Eingaben entgegen, verarbeitet sie mithilfe der versteckten Schicht und erzeugt zwei Ausgaben. Wir können diese Architektur erweitern, um mehr versteckte Schichten einzubauen, aber das Grundkonzept bleibt bestehen: Eingaben kommen herein, werden in einer Richtung verarbeitet und am Ende ausgegeben.

Dieses Konzept wird in anderen Artikeln sehr gut erklärt, daher werde ich nicht weiter ins Detail gehen. Das Wichtigste ist:

Die Hauptbedingung, die FFNN von rekurrenten Architekturen unterscheidet, ist, dass die Eingänge zu einem Neuron von der Schicht vor diesem Neuron kommen müssen.

FFNN Wikipedia

Rekurrente neuronale Netze (RNN)

Rekurrente neuronale Netze sind den FFNN-Modellen mathematisch sehr ähnlich. Ihr Hauptunterschied besteht darin, dass die Beschränkung, die FFNN auferlegt wurde, nicht mehr gilt:

Eingaben in ein Neuron können von jeder anderen Schicht kommen.

Ein Überblick über die Anwendung rekurrenter neuronaler Netze auf die statistische Sprachmodellierung

Diese Architektur wird oft in eine rekurrente Einheit „gerollt“, wie die folgende:

Medienartikel: Alles, was Sie über rekurrente neuronale Netze wissen müssen

Die „aufgerollten“ Einheiten, die man in Architekturdiagrammen sehen kann, können daher trügerisch klein sein. Wenn man sie ausrollt, wird das Netz oft ziemlich tief!

RNN Wikipedia

Long-Short Term Memory (LSTM)

LSTMs sind ein spezieller Typ von RNN, die entwickelt wurden, um das Problem des verschwindenden/explodierenden Gradienten zu lösen.

Wenn man ein traditionelles RNN trainiert, leidet das Netz oft unter verschwindenden/explodierenden Gradienten: das Ausrollen einer rekurrenten Einheit führt zu einem sehr tiefen Netz! Wenn man den Backpropagation-Algorithmus mit traditionellen RNN-Architekturen durchläuft, verlieren die früheren Schichten mit zunehmender Tiefe des Netzes immer mehr an Bedeutung. Dies macht herkömmliche RNNs anfällig für das Vergessen von Informationen, insbesondere von Daten, die viele Zeitschritte vor dem aktuellen Zeitpunkt erscheinen.

Eine LSTM-Zelle wird wie folgt dargestellt:

LSTM-Zellenarchitektur

Diese Struktur ähnelt der traditionellen RNN-Unroll-Einheit, aber der Hauptunterschied zum LSTM sind die Gatter: Eingangsgatter, Ausgangsgatter und Vergissgatter. Die Funktion dieser Gates wird durch ihre Namen gut beschrieben:

  • input gate steuert die Daten, die in die Zelle eingehen
  • forget gate steuert das Ausmaß, in dem die Daten in der Zelle verbleiben
  • output gate steuert die Ausgabe der Zelle über die Aktivierungsfunktion

Dieser github IO-Beitrag ist eine großartige Einführung in die Grundlagen von LSTMs. Er erklärt auch sehr gut die Intuition hinter der Mathematik eines LSTMs.

LSTM Wikipedia

Eigenschaften und ein Anwendungsbeispiel für RNN

Die Rückkopplungsschleifen machen rekurrente neuronale Netze besser für zeitliche Herausforderungen geeignet. Die Zeit wird in ihrer Architektur berücksichtigt!

Lassen Sie uns ein Beispiel untersuchen:

Vielleicht verwenden Sie ein Netzwerk, um das nächste Wort in einem Satz vorherzusagen. Nehmen wir an, Sie erhalten folgende Eingaben:

Als Alice hungrig ist, fährt sie zum nächsten Laden, um einzukaufen

Ein rekurrentes neuronales Netz könnte das erste Wort „hungrig“ vergessen, während ein LSTM es idealerweise weitergeben würde. Ein LSTM würde daher den Kontext verwenden, den es zuvor im Satz gehört hat, um „Essen“ zu erraten, während ein RNN alles erraten könnte, was in einem Geschäft gekauft wird, insbesondere bei einem langen Satz oder mehreren Sätzen.

Die Gating-Mechanismen, die diese Art von Gedächtnis ermöglichen, werden von @StatsSorceress hier gut erklärt: Forget Layer in a Recurrent Neural Network (RNN) –

RNNs sind darauf ausgelegt, Sequenzen zu verarbeiten. Dies kann zur Analyse von Videos (Bildsequenzen), Schrift/Sprache (Wortsequenzen) usw. verwendet werden.

LSTMs sind so konzipiert, dass wichtige Informationen über die Zeit erhalten bleiben. RNNs werden im Laufe der Zeit oft „vergessen“.

FFNNs sind gedächtnislose Systeme; nachdem sie eine Eingabe verarbeitet haben, vergessen sie alles über diese Eingabe. Nehmen wir zum Beispiel an, wir trainieren ein FFNN, das 5 Wörter als Eingabe erhält und die nächste Ausgabe vorhersagt. Dieses Modell würde dann die Eingabe aus dem obigen Beispiel erhalten:

Das nächstgelegene Geschäft, in dem man einkaufen kann.

Damit geht eindeutig der Kontext verloren, und wir würden ein schlechtes Ergebnis erhalten.

Nun könnte man sich fragen, was wäre, wenn wir ein FFNN erstellen würden, das viele Eingaben annimmt, so dass es das Wort „hungern“ in seinen Eingaben enthält? Mit anderen Worten: Könnte man nicht die Anzahl der Eingaben für ein FFNN erhöhen, um frühere Daten ausreichend zu repräsentieren?

Die Antwort lautet ja, aber diese Methode ist sowohl ineffizient als auch oft unpraktisch. Nehmen wir zum Beispiel an, wir müssen uns den Kontext eines ganzen Absatzes zurückerinnern. Wir würden ein sehr großes FFNN benötigen! Außerdem, woher wissen wir, wie viele Wörter wir als Kontext zurück haben wollen? Wären 20 ausreichend? 30? 100? Die LSTM-Architektur beseitigt diese Probleme vollständig, indem sie dem Netzwerk die Verwaltung eines transienten Speichers überlässt. Dieses Problem wird durch die Herausforderungen der Videoverarbeitung noch verschärft, da für jedes Einzelbild wesentlich mehr Eingaben erforderlich sind als für NLP-Aufgaben.

Es ist jedoch zu beachten, dass LSTM-Einheiten von Natur aus rechnerisch komplexer sind als Einheiten eines FFNN, so dass ihr Training oft schwieriger ist und mehr Zeit erfordert. Trotz dieser Nachteile rechtfertigt ihr Erfolg bei zeitlichen Datenherausforderungen eindeutig ihren Einsatz gegenüber FFNN.

Articles

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.