Was ist der Unterschied zwischen neuronalen Feed-Forward-Netzwerk und LSTM ? Wie unterscheiden sie sich in ihrer Architektur?

Antwort

Ein neuronales Feed-Forward-Netzwerk sieht folgendermaßen aus:

Eingabe -> verborgene Schicht 1 -> verborgene Schicht 2 -> … -> verborgene Schicht k -> Ausgabe.

Jede Schicht kann eine andere Anzahl von Neuronen haben, aber das ist die Architektur

Ein LSTM (Langzeit-Kurzzeitgedächtniszelle) ist eine spezielle Art von Knoten innerhalb eines neuronalen Netzwerks. Es kann in ein vorwärts gerichtetes neuronales Netzwerk eingefügt werden, und dies ist normalerweise der Fall In diesem Fall wird das neuronale Feedforward-Netzwerk als LSTM bezeichnet (verwirrend!).

Wie funktioniert ein LSTM? Sehen Sie sich meine Antwort hier an: Schicht in einem wiederkehrenden neuronalen Netzwerk (RNN) vergessen –

tl; dr: Eine LSTM-Zelle hat drei Gatter, von denen jedes verwendet wird, um ihre Eingabe auf irgendeine Weise zu modulieren: ein Eingangsgatter, ein Vergessensgatter und ein Ausgangsgatter. Es hat einen „Speicher“ und einen Ausgang, die durch die Gatter modifiziert werden. Das heißt, innerhalb einer einzelnen LSTM-Zelle:

(Eingang vorheriger Zellenstatus) -> (Eingabe & Gates vergessen) -> (Zellenstatus aktualisieren)

(Eingabe & vorheriger Zellenstatus & aktualisierter Zellenstatus) -> (Ausgangsgatter)

Sie können diese Zellen in vielen verschiedenen Konfigurationen stapeln. Es gibt also kein einziges „LSTM-Netzwerk“, sondern eine Reihe möglicher Architekturen, die aus diesen Basisknoten erstellt werden können.

Ich hoffe, Sie können loslegen!

Kommentare

  • Vielen Dank für Ihre Antwort. Können Sie jedoch einige Bilder hinzufügen, um mein Verständnis der Architektur zu verbessern?
  • Wie sieht es mit der Rückübertragung im Feed-Forward-Netzwerk aus? Feed-Forward-Netzwerk
  • Hallo @codezcar, in meiner Antwort sind Bilder des LSTM enthalten, die ich verlinkt habe. Für ein Feedforward-neuronales Netzwerk befindet sich hier ein Bild: medium.com/random-techpark/… Ja, Sie kann Backpropagation verwenden, um die optimalen Gewichte in jedem neuronalen Netzwerk (Feed Forward, LSTM, GRU, … überhaupt nichts!) zu finden.

Antwort

Wie von Philipp erwähnt, helfen Netzwerke mit Rückkopplungsschleifen bei der Modellierung der Zeit in den Daten.

Hier finden Sie eine Übersicht über verschiedene NN-Architekturen: https://i.stack.imgur.com/LgmYv.png

Antwort

Feed-Forward-Netzwerke sind Netzwerke, in denen jeder Knoten nur mit Knoten aus der folgenden Schicht verbunden ist. Sie haben keine „Kreis“ -Verbindungen. Daten können nur ohne Schleifen von der Eingabe zur Ausgabe übertragen werden. Beispiele wären Simple Layer Perceptron oder Multilayer Perceptrion. Convolutional Neural Networks sind auch reine Feed-Forward-Netzwerke.

Im Gegensatz zu Dies sind wiederkehrende neuronale Netze. LSTM ist eines davon. Diese RNN können auch „seitwärts“ verbunden werden. Dies bedeutet, dass Ihre Daten nicht nur vorwärts in die nächste Schicht, sondern auch zu anderen Knoten in derselben Schicht oder rückwärts übertragen werden können. Von einer Architektur aus Dies bedeutet, dass Sie, obwohl Sie ein Netzwerk mit möglicherweise nur einer verborgenen Schicht haben, „Tiefe“ erhalten, indem Sie Knoten zu Knoten in dieser Schicht hinzufügen. Normalerweise repräsentieren diese „Zeit“ in den Daten.

Dieses Bild zeigt Was ich unter „Tiefe“ durch Rückkopplungsschleifen verstehe: https://en.wikipedia.org/wiki/Recurrent_neural_network#/media/File:Recurrent_neural_network_unfold.svg

Obwohl es technisch gesehen eins ist Knoten in Ihrer Layer-Architektur, es wird immer tiefer, je mehr Schleifen Sie hinzufügen.

Antwort

Ich möchte eine hochrangige Intuition hinter LSTM-Netzwerken diskutieren. Im Folgenden finden Sie einige Fragen, um die Warum -Aspekte zu untersuchen:

  • Warum / Wann würden wir ein LSTM über ein Feed-Forward-Neuronales Netzwerk (FFNN) verwenden?
  • Was sind die Vor- und Nachteile von LSTMs und wie vergleichen sie sich mit FFNN?
  • Wie unterscheiden sie sich von herkömmlichen wiederkehrenden neuronalen Netzen (RNNs)?

Feed Forward Neural Networks (FFNN)

Betrachten wir zunächst ein Standard-FFNN mit Architektur: Auf dem Weg zu Data Science Image: * Anzahl der Parameter in Deep-Learning-Modellen von Hand zählen *

Wie Sie wahrscheinlich wissen, nimmt dieser FFNN drei Eingaben entgegen, verarbeitet sie mithilfe der verborgenen Ebene und erzeugt zwei Ausgaben. Wir können diese Architektur erweitern, um mehr versteckte Ebenen einzubeziehen, aber das Grundkonzept gilt weiterhin: Eingaben kommen herein, sie werden in eine Richtung verarbeitet und sie werden am Ende ausgegeben.

Dieses Konzept ist sehr gut erklärt durch andere Artikel, so werde ich nicht viel näher darauf eingehen.Der Schlüssel zum Mitnehmen ist:

Die Hauptbedingung, die FFNN von wiederkehrenden Architekturen trennt, ist, dass die Eingaben in ein Neuron von der Schicht vor diesem Neuron stammen müssen.

FFNN Wikipedia

Wiederkehrende neuronale Netze (RNN)

Wiederkehrende neuronale Netze sind FFNN-Modellen mathematisch ziemlich ähnlich. Ihr Hauptunterschied besteht darin, dass die auf FFNN auferlegte Einschränkung nicht mehr angewendet wird:

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

Eine Umfrage zur Anwendung wiederkehrender neuronaler Netze auf die statistische Sprachmodellierung

Sie werden häufig feststellen, dass diese Architektur häufig in eine wiederkehrende Einheit wie die folgende „gerollt“ wird:

Mittlerer Artikel: Alles, was Sie über wiederkehrende neuronale Netze wissen müssen

Die „gerollten“ Einheiten, die Sie möglicherweise in Architekturdiagrammen sehen, können daher sein täuschend klein. Wenn Sie sie abrollen, ist das Netzwerk oft sehr tief!

RNN Wikipedia

Langzeit-Kurzzeitgedächtnis (LSTM)

LSTMs sind ein spezieller RNN-Typ, der das Problem des verschwindenden / explodierenden Gradienten lösen soll.

Wenn Sie eine herkömmliche RNN trainieren, leidet das Netzwerk häufig unter verschwindenden / explodierenden Verläufen: Das Abrollen einer wiederkehrenden Einheit führt zu einem sehr tiefen Netzwerk! Wenn Sie den Backpropagation-Algorithmus unter Verwendung traditioneller RNN-Architekturen durchlaufen, werden die früheren Schichten immer weniger bedeutsam, wenn wir uns durch das Netzwerk ausbreiten. Dies führt dazu, dass herkömmliche RNNs dazu neigen, Informationen zu vergessen, insbesondere Daten, die viele Zeitschritte vor der aktuellen Zeit angezeigt werden.

Eine beispielhafte LSTM-Zelle wird als solche dargestellt:

LSTM-Zellenarchitektur

Diese Struktur ähnelt der herkömmlichen nicht abgerollten RNN-Einheit, ist jedoch der Hauptunterschied zum LSTM sind die Gatter: Eingangsgatter, Ausgangsgatter und Vergessensgatter. Die Funktion dieser Gatter wird durch ihre Namen gut beschrieben:

  • Eingangstor steuert die Daten, die in die Zelle gelangen
  • Gate vergessen steuert, inwieweit Daten in der Zelle verbleiben
  • Ausgangsgatter steuert die Ausgabe der Zelle über die Aktivierungsfunktion

Dieser Github-E / A-Beitrag ist eine großartige Einführung in die Grundlagen von LSTMs. Es macht auch eine erstaunliche Arbeit, die Intuition hinter der Mathematik eines LSTM zu erklären.

LSTM Wikipedia

Eigenschaften und ein Anwendungsbeispiel für RNN

Die Rückkopplungsschleifen verleihen wiederkehrenden neuronalen Netzen zeitliche Herausforderungen besser. Zeit wird in ihre Architektur einbezogen!

Lassen Sie uns ein Beispiel untersuchen:

Vielleicht verwenden Sie ein Netzwerk, um das nächste Wort in einem Satz vorherzusagen. Angenommen, Sie erhalten die folgenden Eingaben:

Hungernd fährt Alice zum nächsten Geschäft, um [Vorhersage]

zu kaufen. Ein wiederkehrendes neuronales Netzwerk vergisst möglicherweise das erste Wort „hungern“, während ein LSTM es idealerweise verbreiten würde. Ein LSTM würde daher den zuvor im Satz gehörten Kontext verwenden, um „Lebensmittel“ 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 Diese Art von Speicher wird hier von @StatsSorceress gut erklärt: Schicht in einem wiederkehrenden neuronalen Netzwerk (RNN) vergessen –

RNNs sind für die Verarbeitung von Sequenzen ausgelegt. Hiermit können Videos (Bildsequenzen), Schreiben / Sprechen (Wortfolgen) analysiert werden. usw.

LSTMs sind so konzipiert, dass wichtige Informationen über einen längeren Zeitraum bestehen bleiben. RNNs „vergessen“ häufig im Laufe der Zeit.

FFNNs sind speicherlose Systeme. Nach der Verarbeitung einiger Eingaben vergessen sie alles über diese Eingabe. Angenommen, wir trainieren eine FFNN, die 5 Wörter als Eingaben verwendet und die nächste Ausgabe vorhersagt. Dieses Modell würde dann die Eingabe aus dem obigen Beispiel erhalten:

das nächstgelegene Geschäft, um [Vorhersage] zu kaufen.

Dies verliert eindeutig den Kontext, und wir würde ein schlechtes Ergebnis erzielen.

Nun könnten Sie fragen: Was wäre, wenn wir eine FFNN erstellen würden, die viele Eingaben enthält, sodass das Wort „hungern“ in ihre Eingaben aufgenommen wird? Mit anderen Worten, könnten wir die Anzahl der Eingaben in eine FFNN nicht erhöhen, um frühere Daten ausreichend darzustellen?

Die Antwort lautet Ja, aber diese Methode ist sowohl ineffizient als auch oft unpraktisch. Nehmen wir zum Beispiel an, wir müssen uns einen ganzen Absatz zurück an den Kontext erinnern. Wir würden eine sehr große FFNN brauchen! Woher wissen wir außerdem, wie viele Wörter wir als Kontext zurückhaben möchten? Würden 20 ausreichen? 30? 100? Die LSTM-Architektur beseitigt diese Probleme vollständig, indem das Netzwerk einen transienten Speicher verwalten kann. Dieses Problem wird durch Herausforderungen bei der Videoverarbeitung verschärft, da für jeden Frame erheblich mehr Eingaben als für NLP-Aufgaben erforderlich sind.

Beachten Sie jedoch, dass LSTM-Einheiten von Natur aus rechenintensiver sind als Einheiten eines FFNN, weshalb sie häufig trainiert werden schwieriger und braucht mehr Zeit. Trotz dieser Nachteile rechtfertigt ihr Erfolg bei zeitlichen Datenherausforderungen eindeutig ihre Verwendung gegenüber FFNN.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.