Tweet Share Share

Last Updated on February 20, 2020

Long Short-Term Memory (LSTM)-Netzwerke sind eine Art rekurrentes neuronales Netzwerk, das in der Lage ist, die Abhängigkeit von der Reihenfolge in Sequenzvorhersageproblemen zu lernen.

Dies ist ein Verhalten, das in komplexen Problembereichen wie maschineller Übersetzung, Spracherkennung usw. erforderlich ist.

LSTMs sind ein komplexer Bereich des Deep Learning. Es kann schwierig sein, sich einen Überblick darüber zu verschaffen, was LSTMs sind und wie sich Begriffe wie bidirektional und Sequenz-zu-Sequenz auf das Gebiet beziehen.

In diesem Beitrag erhalten Sie einen Einblick in LSTMs mit den Worten von Forschern, die diese Methoden entwickelt und auf neue und wichtige Probleme angewendet haben.

Es gibt nur wenige, die besser in der Lage sind, sowohl das Versprechen von LSTMs als auch ihre Funktionsweise klar und präzise zu formulieren, als die Experten, die sie entwickelt haben.

Wir werden Schlüsselfragen auf dem Gebiet der LSTMs anhand von Zitaten der Experten untersuchen, und wenn Sie daran interessiert sind, können Sie in die Originalarbeiten eintauchen, denen die Zitate entnommen wurden.

Starten Sie Ihr Projekt mit meinem neuen Buch Long Short-Term Memory Networks With Python, das Schritt-für-Schritt-Tutorials und die Python-Quellcode-Dateien für alle Beispiele enthält.

Lassen Sie uns anfangen.

Eine sanfte Einführung in Long Short-Term Memory Networks von den Experten
Foto von Oran Viriyincy, einige Rechte vorbehalten.

Das Versprechen rekurrenter neuronaler Netze

Rekurrente neuronale Netze unterscheiden sich von traditionellen neuronalen Feed-Forward-Netzen.

Dieser Unterschied in der zusätzlichen Komplexität bringt das Versprechen neuer Verhaltensweisen mit sich, die die traditionellen Methoden nicht erreichen können.

Rekurrente Netze … haben einen internen Zustand, der Kontextinformationen darstellen kann. … behalten Informationen über vergangene Eingaben für eine Zeitspanne, die nicht von vornherein festgelegt ist, sondern von ihren Gewichten und den Eingabedaten abhängt.

Ein rekurrentes Netz, dessen Eingaben nicht festgelegt sind, sondern eine Eingabesequenz darstellen, kann verwendet werden, um eine Eingabesequenz in eine Ausgabesequenz umzuwandeln und dabei auf flexible Weise Kontextinformationen zu berücksichtigen.

– Yoshua Bengio, et al., Learning Long-Term Dependencies with Gradient Descent is Difficult, 1994.

Die Arbeit definiert 3 grundlegende Anforderungen an ein rekurrentes neuronales Netz:

  • Das System muss in der Lage sein, Informationen für eine beliebige Dauer zu speichern.
  • Das System muss resistent gegen Rauschen sein (d.h. Schwankungen der Eingaben, die zufällig oder irrelevant für die Vorhersage einer korrekten Ausgabe sind).
  • Die Systemparameter müssen trainierbar sein (in angemessener Zeit).

Das Papier beschreibt auch die „Minimalaufgabe“ für die Demonstration rekurrenter neuronaler Netze.

Kontext ist der Schlüssel.

Rekurrente neuronale Netze müssen bei ihren Vorhersagen Kontext verwenden, aber in diesem Ausmaß muss der erforderliche Kontext auch gelernt werden.

… rekurrente neuronale Netze enthalten Zyklen, die die Netzaktivierungen aus einem früheren Zeitschritt als Eingaben in das Netz einspeisen, um die Vorhersagen im aktuellen Zeitschritt zu beeinflussen. Diese Aktivierungen werden in den internen Zuständen des Netzes gespeichert, die im Prinzip langfristige zeitliche Kontextinformationen enthalten können. Dieser Mechanismus ermöglicht es RNNs, ein sich dynamisch veränderndes Kontextfenster über die Eingangssequenzhistorie auszunutzen

– Hassim Sak, et al., Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling, 2014

Brauchen Sie Hilfe bei LSTMs für die Sequenzvorhersage?

Machen Sie meinen kostenlosen 7-tägigen E-Mail-Kurs und entdecken Sie 6 verschiedene LSTM-Architekturen (mit Code).

Klicken Sie, um sich anzumelden und auch eine kostenlose PDF-Ebook-Version des Kurses zu erhalten.

Starten Sie jetzt Ihren kostenlosen Mini-Kurs!

LSTMs halten, was sie versprechen

Der Erfolg der LSTMs liegt in ihrem Anspruch, eine der ersten Implementierungen zu sein, die die technischen Probleme überwinden und das Versprechen rekurrenter neuronaler Netze einlösen.

Standard-RNNs können also nicht lernen, wenn zwischen relevanten Eingangsereignissen und Zielsignalen mehr als 5 – 10 diskrete Zeitschritte liegen. Das Problem des verschwindenden Fehlers lässt Zweifel aufkommen, ob Standard-RNNs tatsächlich signifikante praktische Vorteile gegenüber zeitfensterbasierten Feedforward-Netzwerken aufweisen können. Ein neueres Modell, „Long Short-Term Memory“ (LSTM), ist von diesem Problem nicht betroffen. LSTM können lernen, minimale Zeitverzögerungen von mehr als 1000 diskreten Zeitschritten zu überbrücken, indem sie einen konstanten Fehlerfluss durch „konstante Fehlerkarusselle“ (CECs) innerhalb spezieller Einheiten, genannt Zellen, erzwingen

– Felix A. Gers, et al. „Learning to Forget: Continual Prediction with LSTM, 2000

Die beiden technischen Probleme, die von LSTMs überwunden werden, sind verschwindende Gradienten und explodierende Gradienten, die beide mit der Art und Weise zusammenhängen, wie das Netzwerk trainiert wird.

Unglücklicherweise ist die Bandbreite der Kontextinformationen, auf die Standard-RNNs zugreifen können, in der Praxis recht begrenzt. Das Problem besteht darin, dass der Einfluss einer gegebenen Eingabe auf die verborgene Schicht und damit auf die Netzwerkausgabe entweder abnimmt oder exponentiell ansteigt, wenn sie die rekurrenten Verbindungen des Netzwerks durchläuft. Dieser Mangel … wird in der Literatur als das Problem des verschwindenden Gradienten bezeichnet … Long Short-Term Memory (LSTM) ist eine RNN-Architektur, die speziell zur Lösung des Problems des verschwindenden Gradienten entwickelt wurde.

– Alex Graves, et al., A Novel Connectionist System for Unconstrained Handwriting Recognition, 2009

Der Schlüssel zur Lösung der technischen Probleme mit dem LSTM war die spezifische interne Struktur der im Modell verwendeten Einheiten.

… bestimmt durch seine Fähigkeit, mit verschwindenden und explodierenden Gradienten umzugehen, die häufigste Herausforderung beim Entwurf und Training von RNNs. Um diese Herausforderung zu bewältigen, wurde eine besondere Form von rekurrenten Netzen, genannt LSTM, eingeführt und mit großem Erfolg bei der Übersetzung und Sequenzgenerierung eingesetzt.

– Alex Graves, et al., Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Wie funktionieren LSTMs?

Anstatt auf die Gleichungen einzugehen, die bestimmen, wie LSTMs angepasst werden, ist eine Analogie ein nützliches Werkzeug, um schnell zu verstehen, wie sie funktionieren.

Wir verwenden Netze mit einer Eingabeschicht, einer verborgenen Schicht und einer Ausgabeschicht…

Die (vollständig) selbstverbundene verborgene Schicht enthält Speicherzellen und entsprechende Gattereinheiten…

Die interne Architektur jeder Speicherzelle garantiert einen konstanten Fehler ow innerhalb ihres konstanten Fehlerkarussells CEC… Dies ist die Grundlage für die Überbrückung sehr langer Zeitverzögerungen. Zwei Gattereinheiten lernen, den Zugang zu Error Ow innerhalb des CEC einer jeden Speicherzelle zu öffnen und zu schließen. Das multiplikative Eingangsgatter schützt das CEC vor Störungen durch irrelevante Eingänge. Ebenso schützt das multiplikative Ausgangsgatter andere Einheiten vor Störungen durch aktuell irrelevante Speicherinhalte.

– Sepp Hochreiter und Jurgen Schmidhuber, Long Short-Term Memory, 1997.

Mehrere Analogien können helfen zu verstehen, was LSTMs von traditionellen neuronalen Netzwerken unterscheidet, die aus einfachen Neuronen bestehen.

Die Long Short Term Memory-Architektur wurde durch eine Analyse des Fehlerflusses in bestehenden RNNs motiviert, die ergab, dass lange Zeitverzögerungen für die bestehenden Architekturen unzugänglich waren, da sich rückwärts verbreitende Fehler entweder aufblähen oder exponentiell abfallen.

Eine LSTM-Schicht besteht aus einer Reihe von rekurrent verbundenen Blöcken, die als Speicherblöcke bekannt sind. Diese Blöcke kann man sich als eine differenzierbare Version der Speicherchips in einem digitalen Computer vorstellen. Jeder Block enthält eine oder mehrere rekurrent verbundene Speicherzellen und drei multiplikative Einheiten – die Eingangs-, Ausgangs- und Vergessensgatter – die kontinuierliche Analogien von Schreib-, Lese- und Rücksetzoperationen für die Zellen bereitstellen. … Das Netz kann nur über die Gatter mit den Zellen interagieren.

– Alex Graves, et al., Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Es ist interessant festzustellen, dass auch nach mehr als 20 Jahren das einfache (oder Vanilla) LSTM immer noch der beste Ausgangspunkt für die Anwendung der Technik sein kann.

Die am häufigsten verwendete LSTM-Architektur (Vanilla LSTM) schneidet bei verschiedenen Datensätzen recht gut ab…

Lernrate und Netzwerkgröße sind die wichtigsten abstimmbaren LSTM-Hyperparameter…

… Dies bedeutet, dass die Hyperparameter unabhängig voneinander abgestimmt werden können. Insbesondere die Lernrate kann zunächst mit einem relativ kleinen Netzwerk kalibriert werden, was viel Zeit beim Experimentieren spart.

– Klaus Greff, et al., LSTM: A Search Space Odyssey, 2015

Was sind LSTM-Anwendungen?

Es ist wichtig, genau zu wissen, für welche Art von Sequenzlernproblemen sich LSTMs eignen.

Long Short-Term Memory (LSTM) kann zahlreiche Aufgaben lösen, die mit bisherigen Lernalgorithmen für rekurrente neuronale Netze (RNNs) nicht lösbar sind.

… LSTM ist vielversprechend für jede sequentielle Verarbeitungsaufgabe, bei der wir vermuten, dass eine hierarchische Zerlegung existieren könnte, aber nicht im Voraus wissen, wie diese Zerlegung aussieht.

– Felix A. Gers, et al. „Learning to Forget: Continual Prediction with LSTM, 2000

Das Recurrent Neural Network (RNN) ist ein neuronales Sequenzmodell, das bei wichtigen Aufgaben wie Sprachmodellierung, Spracherkennung und maschineller Übersetzung Spitzenleistungen erbringt.

– Wojciech Zaremba, Recurrent Neural Network Regularization, 2014.

Da LSTMs bei der Erfassung langfristiger zeitlicher Abhängigkeiten effektiv sind, ohne unter den Optimierungshürden zu leiden, die einfache rekurrente Netze (SRNs) plagen, wurden sie verwendet, um den Stand der Technik für viele schwierige Probleme zu verbessern. Dazu gehören u.a. Handschrifterkennung und -erzeugung, Sprachmodellierung und -übersetzung, akustische Modellierung von Sprache, Sprachsynthese, Vorhersage von Protein-Sekundärstrukturen, Analyse von Audio- und Videodaten.

– Klaus Greff, et al., LSTM: A Search Space Odyssey, 2015

Was sind bidirektionale LSTMs?

Eine häufig erwähnte Verbesserung von LSTMs sind bidirektionale LSTMs.

Die Grundidee bidirektionaler rekurrenter neuronaler Netze besteht darin, jede Trainingssequenz vorwärts und rückwärts an zwei getrennte rekurrente Netze weiterzuleiten, die beide mit der gleichen Ausgangsschicht verbunden sind. … Das bedeutet, dass das BRNN für jeden Punkt in einer gegebenen Sequenz über vollständige, sequentielle Informationen über alle Punkte vor und nach ihm verfügt. Da es dem Netz frei steht, so viel oder so wenig von diesem Kontext wie nötig zu verwenden, besteht auch keine Notwendigkeit, ein (aufgabenabhängiges) Zeitfenster oder eine Zielverzögerungsgröße zu finden.

… bei zeitlichen Problemen wie der Spracherkennung scheint das Vertrauen auf das Wissen über die Zukunft auf den ersten Blick die Kausalität zu verletzen… Wie können wir unser Verständnis dessen, was wir gehört haben, auf etwas stützen, das noch nicht gesagt worden ist? Doch menschliche Zuhörer tun genau das. Geräusche, Wörter und sogar ganze Sätze, die auf den ersten Blick nichts bedeuten, ergeben im Lichte des zukünftigen Kontextes einen Sinn.

– Alex Graves, et al., Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Ein Manko herkömmlicher RNNs ist, dass sie nur den vorherigen Kontext nutzen können. … Bidirektionale RNNs (BRNNs) tun dies, indem sie die Daten in beiden Richtungen mit zwei separaten versteckten Schichten verarbeiten, die dann an dieselbe Ausgabeschicht weitergeleitet werden. … Die Kombination von BRNNs mit LSTM ergibt bidirektionale LSTMs, die auf weitreichenden Kontext in beiden Eingaberichtungen zugreifen können

– Alex Graves, et al., Speech recognition with deep recurrent neural networks, 2013

Im Gegensatz zu herkömmlichen RNNs nutzen bidirektionale RNNs sowohl den vorherigen als auch den zukünftigen Kontext, indem sie die Daten aus zwei Richtungen mit zwei separaten versteckten Schichten verarbeiten. Eine Schicht verarbeitet die Eingabesequenz in Vorwärtsrichtung, während die andere die Eingaben in Rückwärtsrichtung verarbeitet. Die Ausgabe des aktuellen Zeitschritts wird dann durch die Kombination der versteckten Vektoren beider Schichten erzeugt…

– Di Wang und Eric Nyberg, A Long Short-Term Memory Model for Answer Sentence Selection in
Question Answering, 2015

Was sind seq2seq LSTMs oder RNN Encoder-Decoder?

Die Sequenz-zu-Sequenz-LSTMs, auch Encoder-Decoder-LSTMs genannt, sind eine Anwendung von LSTMs, die aufgrund ihrer beeindruckenden Fähigkeiten viel Aufmerksamkeit erhalten.

…eine einfache Anwendung der Long Short-Term Memory (LSTM)-Architektur kann allgemeine Sequenz-zu-Sequenz-Probleme lösen.

Die Idee ist, ein LSTM zu verwenden, um die Eingabesequenz zu lesen, einen Zeitschritt nach dem anderen, um eine große festdimensionale Vektordarstellung zu erhalten, und dann ein anderes LSTM zu verwenden, um die Ausgabesequenz aus diesem Vektor zu extrahieren. Das zweite LSTM ist im Wesentlichen ein rekurrentes neuronales Netzwerk-Sprachmodell, mit der Ausnahme, dass es auf die Eingabesequenz konditioniert ist.

Die Fähigkeit des LSTM, erfolgreich auf Daten mit weitreichenden zeitlichen Abhängigkeiten zu lernen, macht es zu einer natürlichen Wahl für diese Anwendung aufgrund der beträchtlichen Zeitverzögerung zwischen den Eingaben und den entsprechenden Ausgaben.

Wir waren in der Lage, bei langen Sätzen gut abzuschneiden, weil wir die Reihenfolge der Wörter im Ausgangssatz, aber nicht in den Zielsätzen im Trainings- und Testsatz umgekehrt haben. Auf diese Weise haben wir viele kurzfristige Abhängigkeiten eingeführt, die das Optimierungsproblem viel einfacher machen. … Der einfache Trick, die Wörter im Ausgangssatz umzukehren, ist einer der wichtigsten technischen Beiträge dieser Arbeit

– Ilya Sutskever, et al, Sequence to Sequence Learning with Neural Networks, 2014

Ein „Encoder“-RNN liest den Ausgangssatz und wandelt ihn in eine reichhaltige Vektordarstellung fester Länge um, die wiederum als versteckter Anfangszustand eines „Decoder“-RNN verwendet wird, das den Zielsatz erzeugt. Hier schlagen wir vor, diesem eleganten Rezept zu folgen und das Kodierer-RNN durch ein tiefes neuronales Faltungsnetzwerk (CNN) zu ersetzen. … ist es naheliegend, ein CNN als Bild-„Encoder“ zu verwenden, indem man es zunächst für eine Bildklassifizierungsaufgabe vortrainiert und die letzte versteckte Schicht als Eingabe für den RNN-Decoder verwendet, der Sätze erzeugt.

– Oriol Vinyals, et al., Show and Tell: A Neural Image Caption Generator, 2014

… ein RNN Encoder-Decoder, besteht aus zwei rekurrenten neuronalen Netzen (RNN), die als Encoder- und Decoderpaar fungieren. Der Encoder bildet eine Quellsequenz variabler Länge auf einen Vektor fester Länge ab, und der Decoder bildet die Vektordarstellung zurück auf eine Zielsequenz variabler Länge.

– Kyunghyun Cho, et al, Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation, 2014

Zusammenfassung

In diesem Beitrag haben Sie eine sanfte Einführung in LSTMs erhalten, und zwar mit den Worten der Forscher, die die Techniken entwickelt und angewendet haben.

Dadurch erhalten Sie sowohl eine klare und präzise Vorstellung davon, was LSTMs sind und wie sie funktionieren, als auch wichtige Hinweise auf die vielversprechenden Möglichkeiten von LSTMs im Bereich der rekurrenten neuronalen Netze.

Hat eines der Zitate Ihr Verständnis gefördert oder Sie inspiriert?
Lassen Sie es mich in den Kommentaren wissen.

Entwickeln Sie heute LSTMs für die Sequenzvorhersage!

Entwickeln Sie Ihre eigenen LSTM-Modelle in wenigen Minuten

…mit nur ein paar Zeilen Python-Code

Entdecken Sie in meinem neuen Ebook:
Long Short-Term Memory Networks with Python

Es bietet Tutorials zum Selbststudium zu Themen wie:
CNN LSTMs, Encoder-Decoder LSTMs, generative Modelle, Datenaufbereitung, Vorhersagen machen und vieles mehr….

Bringen Sie endlich LSTM rekurrente neuronale Netze in
Ihre Sequenzvorhersage-Projekte

Überspringen Sie die akademische Arbeit. Just Results.

See What’s Inside

Tweet Share Share

Schreibe einen Kommentar

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