HyperAI

Langzeit-Kurzzeitgedächtnis

Lang- und Kurzzeitgedächtnis(Englisch: Long Short-Term Memory, LSTM) ist ein zeitrekurrentes neuronales Netzwerk (RNN), das erstmals 1997 veröffentlicht wurde. Aufgrund seiner einzigartigen Designstruktur eignet sich LSTM für die Verarbeitung und Vorhersage wichtiger Ereignisse in Zeitreihen mit sehr langen Intervallen und Verzögerungen.

LSTMs schneiden oft besser ab als zeitrekursive neuronale Netzwerke und Hidden-Markov-Modelle (HMMs), beispielsweise bei der nicht segmentierten kontinuierlichen Handschrifterkennung. Im Jahr 2009 gewann das mit LSTM erstellte künstliche neuronale Netzwerkmodell den ICDAR-Wettbewerb zur Handschrifterkennung. LSTM wird auch häufig bei der autonomen Spracherkennung verwendet und erreichte 2013 mithilfe der TIMIT-Datenbank für natürliche Sprache einen Rekordwert von 17,7%-Fehlerrate. Als nichtlineares Modell kann LSTM als komplexe nichtlineare Einheit zum Aufbau größerer tiefer neuronaler Netzwerke verwendet werden.

Lang- und Kurzzeitgedächtnis(Englisch: Long Short-Term Memory, LSTM) ist ein zeitrekurrentes neuronales Netzwerk (RNN), das erstmals 1997 veröffentlicht wurde. Aufgrund seiner einzigartigen Designstruktur eignet sich LSTM für die Verarbeitung und Vorhersage wichtiger Ereignisse in Zeitreihen mit sehr langen Intervallen und Verzögerungen.

LSTMs schneiden oft besser ab als zeitrekursive neuronale Netzwerke und Hidden-Markov-Modelle (HMMs), beispielsweise bei der nicht segmentierten kontinuierlichen Handschrifterkennung. Im Jahr 2009 gewann das mit LSTM erstellte künstliche neuronale Netzwerkmodell den ICDAR-Wettbewerb zur Handschrifterkennung. LSTM wird auch häufig bei der autonomen Spracherkennung verwendet und erreichte 2013 mithilfe der TIMIT-Datenbank für natürliche Sprache einen Rekordwert von 17,7%-Fehlerrate. Als nichtlineares Modell kann LSTM als komplexe nichtlineare Einheit zum Aufbau größerer tiefer neuronaler Netzwerke verwendet werden.

LSTM-Netzwerke verstehen

Rekurrente neuronale Netze

Menschen denken nicht immer von Grund auf neu. Wenn Sie diesen Artikel lesen, verstehen Sie jedes Wort auf der Grundlage der vorherigen Wörter. Sie müssen nicht alles über Bord werfen und von vorne anfangen zu denken. Ihre Gedanken haben Kontinuität.

Herkömmliche neuronale Netzwerke können dies nicht, und dies stellt einen großen Nachteil dar. Stellen Sie sich beispielsweise vor, Sie müssen sich ein Urteil über die Ereignisse in einem Film bilden. Es ist nicht klar, wie herkömmliche neuronale Netzwerke auf der Grundlage früherer Ereignisse auf zukünftige Ereignisse schließen können.

Zur Lösung dieses Problems wurden rekurrierende neuronale Netze entwickelt. Innerhalb des rekurrierenden neuronalen Netzwerks gibt es Schleifen, um die Kontinuität der Informationen aufrechtzuerhalten.

In der obigen Abbildung gibt es ein lokales neuronales Netzwerk – ????A, Eingabewert ????????xt und Ausgabewert ℎ????ht. Eine Schleife sorgt dafür, dass Informationen Schritt für Schritt durch das Netzwerk weitergeleitet werden.

Diese Schleifen machen rekurrierende neuronale Netzwerke schwer verständlich. Aber wenn man darüber nachdenkt, unterscheiden sie sich nicht von gewöhnlichen neuronalen Netzwerken. Ein rekurrentes neuronales Netzwerk kann man sich als eine Gruppe identischer Netzwerke vorstellen, die jeweils Informationen an das nächste weitergeben. Wenn wir die Schleife aufrollen, sehen wir:

Diese Kettenstruktur zeigt auf natürliche Weise, dass rekurrierende neuronale Netzwerke eng mit Sequenzen und Listen verbunden sind. Dies ist eine natürliche Architektur für neuronale Netzwerke zur Verarbeitung von Sequenzdaten.

Natürlich ist es auch verfügbar. In den letzten Jahren haben RNNs unglaubliche Erfolge in der Spracherkennung, Sprachmodellierung, Übersetzung, Bildbeschreibung und vielen anderen Bereichen erzielt. Eine Diskussion der mit RNNs erzielten Erfolge überlasse ich Andrej Karpathys Blog. RNNs sind unglaublich!

Der Schlüssel zu diesen Erfolgen ist das „LSTM“ – eine spezielle Art von rekurrierendem neuronalem Netzwerk, das bei vielen Problemen viel bessere Leistungen erbringt als die Standardversion von RNN. Fast alle herausragenden Ergebnisse, die mit rekurrierenden neuronalen Netzwerken erzielt wurden, sind auf die Verwendung von LSTM zurückzuführen. Dieser Artikel handelt von LSTM.

Langfristige Abhängigkeitsprobleme

Einer der Reize von RNNs liegt in ihrer Fähigkeit, frühere Informationen mit dem aktuellen Problem zu verknüpfen, indem sie beispielsweise frühere Videobilder verwenden, um das Verständnis des aktuellen Bildes zu fördern. Wenn RNNs dies könnten, wären sie sehr nützlich. Aber kann es das? Nun, es ist bedingt.

Manchmal müssen wir uns lediglich aktuelle Informationen ansehen, um ein aktuelles Problem zu lösen. Beispielsweise versucht ein Sprachmodell, das nächste Wort anhand der vorherigen Wörter vorherzusagen. Wenn wir versuchen vorherzusagen: „Die Wolken sind in der Himmel„Wir brauchen keinen weiteren Kontext, und es ist klar, dass das nächste Wort sein wird Himmel . In diesem Fall ist die Distanz zwischen den relevanten Informationen und ihrem Standort gering und das RNN kann lernen, frühere Informationen zu nutzen.

Es gibt aber auch Fälle, in denen wir mehr Kontext benötigen. Versuchen Sie, vorherzusagen: „Ich bin in Frankreich aufgewachsen… Ich spreche fließend Französisch.” Die nächstgelegenen Informationen deuten darauf hin, dass es sich beim nächsten Wort wahrscheinlich um den Namen einer Sprache handelt. Um jedoch die genaue Sprache zu bestimmen, benötigen wir Kontext aus einer weiter entfernten Region – beispielsweise Frankreich. Daher ist es durchaus möglich, dass die Distanz zwischen der relevanten Information und ihrem Standort sehr groß ist.

Leider gelingt es dem RNN mit zunehmender Entfernung nicht mehr, die Informationen zu verknüpfen.

Theoretisch ist RNN definitiv in der Lage, mit dieser Art von „langfristiger Abhängigkeit“ umzugehen. Der Mensch kann diese Art von „Spielzeugproblem“ durch sorgfältige Wahl der Parameter lösen. Leider scheinen RNNs in der Praxis nicht in der Lage zu sein, diese zu erlernen. Dieses Problem wurde von Hochreiter und Bengio et al. eingehend untersucht. Er entdeckte die Grundursache der Schwierigkeit des Problems.

Glücklicherweise haben LSTMs dieses Problem nicht!

LSTM-Netzwerk

Long Short-Term Memory Networks – allgemein als LSTMs bezeichnet – sind ein spezieller Typ von RNN, die in der Lage sind, langfristige Abhängigkeiten zu erlernen. Vorgeschlagen von Hochreiter und Schmidhuber (1997) und in nachfolgenden Arbeiten von vielen anderen verbessert und erweitert. LSTM eignet sich für eine große Bandbreite an Problemen und wird mittlerweile häufig verwendet.

LSTMs sind ausdrücklich darauf ausgelegt, das Problem der langfristigen Abhängigkeit zu vermeiden. Das Erinnern von Informationen über lange Zeiträume ist tatsächlich das Standardverhalten von LSTMs und nichts, was man mühsam lernen muss!

Alle rekurrierenden neuronalen Netzwerke verfügen über ein kettenartiges, sich wiederholendes Modul neuronaler Netzwerke. In einem Standard-RNN hat dieses sich wiederholende Modul eine sehr einfache Struktur, beispielsweise nur eine einzelne Tanh-Schicht.

LSTM hat auch diese ähnliche Kettenstruktur, aber die sich wiederholenden Module haben eine andere Struktur. Es gibt nicht nur eine neuronale Netzwerkschicht, sondern vier, und sie interagieren auf ganz besondere Weise.

Machen Sie sich keine Gedanken über die Einzelheiten. Wir werden das Diagramm eines LSTM später durchgehen. Versuchen wir nun, uns mit der Notation vertraut zu machen, die wir verwenden werden.

Im obigen Diagramm enthält jede Zeile einen vollständigen Vektor von der Ausgabe eines Knotens zur Eingabe anderer Knoten. Rosa Kreise stellen punktweise Operationen dar, wie etwa die Vektoraddition, während gelbe Kästen erlernte neuronale Netzwerkschichten darstellen. Eine Zeilenzusammenführung zeigt eine Verkettung an, während eine Verzweigung anzeigt, dass der Inhalt kopiert wird und die Kopie an einen anderen Speicherort geht.

Die Kernidee von LSTM

Der Schlüssel zu LSTM ist der Zellzustand, der in der Abbildung die obere horizontale Linie darstellt.

Zellzustände sind ein bisschen wie ein Förderband. Es verläuft durch die gesamte Kette und weist nur einige geringfügige lineare Interaktionen auf. Informationen fließen problemlos und unverändert durch.

LSTMs können durch eine ausgeklügelte Struktur sogenannter „Gates“ Informationen zum Zellzustand hinzufügen oder daraus entfernen.

Tore können Informationen selektiv durchlassen. Sie bestehen aus sigmoidalen neuronalen Netzwerkschichten und punktweisen Multiplikationsoperationen.

Die Ausgabe eines S-förmigen Netzwerks ist ein Wert zwischen 0 und 1, der angibt, welcher Anteil der Informationen durchkommt. Ein Wert von 0 bedeutet „keine Informationen werden weitergeleitet“, und ein Wert von 1 bedeutet „alle Informationen werden weitergeleitet“.

Ein LSTM verfügt über drei solcher Gatter, die zur Aufrechterhaltung und Steuerung des Zellzustands verwendet werden.

Schrittweise Analyse des LSTM-Prozesses

Der erste Schritt eines LSTM besteht darin, zu entscheiden, welche Informationen aus dem Zellzustand verworfen werden sollen. Diese Entscheidung wird von einer S-förmigen Netzwerkschicht getroffen, die als „Forget-Gate-Schicht“ bezeichnet wird. Es nimmt ℎ????−1ht−1 und ????????xt auf und gibt für jede Zahl im Zellzustand ????????−1Ct−1 einen Wert zwischen 0 und 1 aus. 1 bedeutet „vollständig akzeptieren“ und 0 bedeutet „vollständig ignorieren“.

Kehren wir zu unserem Beispiel eines Sprachmodells zurück, das versucht, das nächste Wort anhand der vorherigen vorherzusagen. Bei dieser Frage kann der Zellstatus die Wortart des aktuellen Subjekts beinhalten, sodass das richtige Pronomen verwendet werden kann. Wenn wir ein neues Subjekt sehen, müssen wir die Wortart des vorherigen Subjekts vergessen.

Im nächsten Schritt wird ermittelt, welche neuen Informationen im Zellzustand gespeichert werden müssen. Es gibt hier zwei Teile. Im ersten Teil bestimmt eine S-förmige Netzwerkschicht, die sogenannte „Input Gate Layer“, welche Informationen aktualisiert werden müssen. Im zweiten Teil erstellt eine Tanh-Schicht einen neuen Vektor von Kandidatenwerten – ????̃ ????C~t, der dem Zellzustand hinzugefügt werden kann. Im nächsten Schritt kombinieren wir die beiden oben genannten Teile, um ein Update des Status zu erstellen.

In unserem Sprachmodell müssen wir dem Zustand die Wortart des neuen Subjekts hinzufügen und das alte Subjekt ersetzen, das vergessen werden muss.

Aktualisieren Sie nun den alten Zellenzustand ????????−1Ct−1 auf ????????Ct. Die vorherigen Schritte haben bereits festgelegt, was zu tun ist. Wir müssen es nur noch tun.

Wir multiplizieren den alten Zustand mit ????????ft, um zu vergessen, was wir zu vergessen beschlossen haben. Dann fügen wir ????????∗????̃ ????it∗C~t hinzu, die neuen Kandidatenwerte, skaliert mit den Aktualisierungswerten, die wir für jeden Zustand festgelegt haben.

Im Fall des Sprachmodells verwerfen wir hier die Wortart des alten Subjekts und fügen die Wortart des neuen Subjekts basierend auf den vorherigen Schritten hinzu.

Schließlich müssen wir den Ausgabewert bestimmen. Die Ausgabe hängt von unserem Zellzustand ab, wird aber eine „gefilterte“ Version sein. Zuerst führen wir die Sigmoid-Schicht aus, die bestimmt, welche Teile des Zellzustands ausgegeben werden können. Anschließend geben wir den Zellzustand in tanhtanh ein (und passen den Wert auf einen Wert zwischen −1−1 und 11 an) und multiplizieren ihn mit der Ausgabe der Sigmoidschicht, sodass wir die gewünschte Ausgabe ausgeben können.

Nehmen wir das Sprachmodell als Beispiel: Sobald ein Subjekt erscheint, wirken sich die Informationen des Subjekts auf das Verb aus, das später erscheint. Wenn Sie beispielsweise wissen, ob das Subjekt im Singular oder Plural steht, erfahren Sie die Form des folgenden Verbs.

Variationen des Langzeit-Kurzzeitgedächtnisses

Was ich bisher beschrieben habe, ist nur ein ziemlich allgemeines LSTM-Netzwerk. Aber nicht alle LSTM-Netzwerke sind gleich, wie oben beschrieben. Tatsächlich verbessern fast alle Artikel LSTM-Netzwerke, um eine bestimmte Version zu erhalten. Die Unterschiede sind gering, dennoch ist es wichtig, sich der Varianten bewusst zu sein.

Eine beliebte LSTM-Variante von Gers und Schmidhuber fügt dem LSTM eine „Gucklochverbindung“ hinzu, was bedeutet, dass wir der Gate-Netzwerkschicht die Eingabe des Zellzustands ermöglichen können.

Im Bild oben haben wir allen Türen Gucklöcher hinzugefügt, in vielen Zeitungen sind jedoch nur einige Türen mit Gucklöchern versehen.

Eine andere Variante kombiniert das Vergessen mit dem Eingabetor. Dabei werden die zu vergessenden Informationen und die neu hinzuzufügenden Informationen gleichzeitig und nicht getrennt voneinander ermittelt. Wenn Sie etwas eingeben, vergessen Sie es; Wenn Sie die alten Informationen vergessen, geben Sie neue Daten ein.

Eine interessantere Variante von LSTM heißt Gated Recurrent Unit (GRU) und wurde von Cho et al. vorgeschlagen. GRU kombiniert das Vergessensgatter und das Eingabegatter zu einem „Aktualisierungsgatter“, kombiniert den Zellzustand mit dem verborgenen Zustand und weist weitere Änderungen auf. Dies macht GRU einfacher als das Standard-LSTM-Modell und erfreut sich daher zunehmender Beliebtheit.

Dies sind nur einige der bekannten LSTM-Varianten. Es gibt andere Varianten, wie das von Yao et al. vorgeschlagene Depth Gated RNN. Es gibt auch einige völlig andere Ansätze zum Umgang mit langfristigen Abhängigkeiten, wie beispielsweise das von Koutnik et al. vorgeschlagene Clockwork RNN.

Welche dieser Varianten ist die beste? Ist der Unterschied zwischen ihnen wichtig? Greff et al. führte eine Studie durch, in der die gängigen Varianten sorgfältig verglichen wurden, und stellte fest, dass sie nahezu identisch waren. Jozefowicz et al. hat mehr als 10.000 RNN-Architekturen getestet und festgestellt, dass einige Architekturen bei bestimmten Problemen eine bessere Leistung als LSTM zeigten.

abschließend

Schon früh fiel mir auf, dass einige Leute mit RNNs bemerkenswerte Ergebnisse erzielten und dass sie dabei fast immer LSTM-Netzwerke verwendeten. Für die meisten Probleme ist LSTM einfach besser!

Nach der Auflistung einer Reihe von Formeln sieht LSTM entmutigend aus. Glücklicherweise erleichtert die Schritt-für-Schritt-Analyse im Artikel die Akzeptanz.

LSTM ist ein großer Fortschritt gegenüber RNN. Da stellt sich natürlich die Frage: Gibt es noch weiteren Verbesserungsbedarf? Die allgemeine Antwort der Forscher lautet: Ja! Da ist noch Luft nach oben, das ist Achtung! Die Idee der Aufmerksamkeit besteht darin, jeden Schritt im RNN Informationen von dort extrahieren zu lassen, wo die Informationen reichhaltiger sind. Wenn Sie beispielsweise RNN zum Generieren einer Beschreibung eines Bildes verwenden möchten, muss auch ein Teil des Bildes extrahiert werden, um den Ausgabetext zu generieren. Tatsächlich ist es das, was Xu et al. tat, was ein ziemlich guter Ausgangspunkt ist, wenn Sie die Aufmerksamkeit erforschen möchten. Es gibt noch viele andere herausragende Leistungen, die auf Aufmerksamkeit beruhen, und Aufmerksamkeit wird in Zukunft noch wirkungsvoller sein …

Aufmerksamkeit ist nicht die einzige spannende Idee in der RNN-Forschung. Das von Kalchbrenner et al. vorgeschlagene Grid-LSTM. sieht sehr vielversprechend aus. Sehr interessant ist auch die Idee, RNNs in generativen Modellen von Gregor et al., Chung et al. oder Bayer und Osendorfer zu verwenden. Die letzten Jahre waren eine Glanzzeit für rekurrierende neuronale Netzwerke, und die neuen Ergebnisse werden noch vielversprechender sein.

Nachdruck von https://www.cnblogs.com/xuruilong100/p/8506949.html