Wie wähle ich die Anzahl der versteckten Schichten und die Anzahl der Speicherzellen in einem LSTM?

28

Ich versuche, eine existierende Untersuchung zu finden, wie die Anzahl der verborgenen Schichten und die Größe dieser einer LSTM-basierten RNN ausgewählt werden kann.

Gibt es einen Artikel, in dem dieses Problem untersucht wird, dh wie viele Speicherzellen sollte man verwenden? Ich gehe davon aus, dass dies völlig von der Anwendung abhängt und in welchem ​​Kontext das Modell verwendet wird, aber was sagt die Forschung aus?

Stephen Johnson
quelle

Antworten:

15

Ihre Frage ist recht weit gefasst, aber hier sind einige Tipps:

Informationen zu Feedforward-Netzwerken finden Sie in der folgenden Frage :

@ Dougs Antwort hat bei mir funktioniert. Es gibt eine zusätzliche Faustregel, die bei überwachten Lernproblemen hilft. Die Obergrenze für die Anzahl der versteckten Neuronen, die nicht zu einer Überanpassung führen, ist:

Nh=Ns(α(Nich+NO))

NichNONsα
einlpheinNs(Nich+NO)α

Bei einem automatisierten Verfahren beginnen Sie mit einem Alpha von 2 (doppelt so viele Freiheitsgrade in Ihren Trainingsdaten wie in Ihrem Modell) und arbeiten sich bis zu 10 vor, wenn der Fehler für Trainingsdaten erheblich kleiner ist als für die Kreuzvalidierung Datensatz.

Und speziell bei LSTMs sollten Sie dies überprüfen .

Aber das Wichtigste: Es gibt keine Regel für die Anzahl der verborgenen Knoten, die Sie verwenden sollten. Sie müssen dies für jeden Fall durch Ausprobieren herausfinden .

Thomas W
quelle
7

Die Auswahl der Anzahl der ausgeblendeten Ebenen und der Anzahl der Speicherzellen in LSTM hängt immer von der Anwendungsdomäne und dem Kontext ab, in dem Sie diesen LSTM anwenden möchten.

Für versteckte Ebenen. Die Einführung von verborgenen Schichten ermöglicht es dem Netzwerk, ein nichtlineares Verhalten aufzuweisen.

Die optimale Anzahl der ausgeblendeten Einheiten könnte leicht kleiner sein als die Anzahl der Eingaben. Es gibt keine Regel, die die Anzahl der Eingaben mit N multipliziert. Wenn Sie viele Trainingsbeispiele haben, können Sie mehrere ausgeblendete Einheiten verwenden, aber manchmal auch nur 2 versteckte Einheiten funktionieren am besten mit wenig Daten. Normalerweise verwenden die Leute eine verborgene Ebene für einfache Aufgaben, aber heutzutage zeigen Forschungen in tiefen neuronalen Netzwerkarchitekturen, dass viele verborgene Ebenen bei Problemen mit schwierigen Objekten, handschriftlichen Zeichen und Gesichtserkennung nützlich sein können.

I assume it totally depends on the application and in which context the model is being used.

Maheshwar Ligade
quelle
5
Die Nichtlinearität ist auf die Verwendung von nichtlinearen Aktivierungsfunktionen zurückzuführen. Die Anzahl der Schichten erhöht nur die Expressivität des NN. Sie sollten diese Antwort korrigieren. Kombinationen von linearen Funktionen sind immer noch lineare Funktionen (wenn Sie also mehrere Ebenen hatten, die nur eine lineare Kombination der Eingaben ausführten, wäre die Kombination dieser Ebenen immer noch linear).
nbro
4

Im Allgemeinen gibt es keine Richtlinien zum Bestimmen der Anzahl von Schichten oder der Anzahl von Speicherzellen in einem LSTM.

Die Anzahl der Schichten und Zellen, die in einem LSTM erforderlich sind, hängt möglicherweise von verschiedenen Aspekten des Problems ab:

  1. Die Komplexität des Datensatzes. Die Anzahl der Features, die Anzahl der Datenpunkte usw.

  2. Der Prozess der Datengenerierung. Das folgende Beispiel zeigt, wie der Datenerzeugungsprozess eine wichtige Rolle spielen kann.

Ex - Vorhersage des Ölpreises im Vergleich zur Vorhersage des BIP einer gut verstandenen Volkswirtschaft. Letzteres ist viel einfacher als Ersteres. Für die Vorhersage des Ölpreises ist daher möglicherweise auch eine größere Anzahl von LSTM-Speicherzellen erforderlich, um die Vorhersage mit der gleichen Genauigkeit wie beim BIP durchzuführen.

  1. Die für den Anwendungsfall erforderliche Genauigkeit. Die Anzahl der Speicherzellen hängt stark davon ab. Wenn es darum geht, den Stand der Technik zu übertreffen, braucht man im Allgemeinen mehr LSTM-Zellen. Vergleichen Sie dies mit dem Ziel, vernünftige Vorhersagen zu treffen - für die weniger LSTM-Zellen erforderlich wären.

Ich folge diesen Schritten, wenn ich mit LSTM modelliere:

  1. Probieren Sie eine einzelne ausgeblendete Ebene mit 2 oder 3 Speicherzellen aus. Sehen Sie, wie es sich gegen einen Benchmark verhält. Wenn es sich um ein Zeitreihenproblem handelt, mache ich in der Regel eine Prognose anhand der klassischen Zeitreihentechniken als Benchmark.

  2. Versuchen Sie, die Anzahl der Speicherzellen zu erhöhen. Wenn sich die Leistung nicht wesentlich verbessert, fahren Sie mit dem nächsten Schritt fort.

  3. Machen Sie das Netzwerk tief, dh fügen Sie eine weitere Schicht mit einer kleinen Anzahl von Speicherzellen hinzu.

Nebenbei:

Es gibt keine Begrenzung für den Arbeitsaufwand, der aufgewendet werden kann, um diese globalen Minima der Verlustfunktion zu erreichen und die besten Hyperparameter abzustimmen. Es sollte also die Strategie sein, sich auf das Endziel für die Modellierung zu konzentrieren, anstatt zu versuchen, die Genauigkeit so weit wie möglich zu erhöhen.

Die meisten Probleme können mit 2-3 Netzwerkebenen behoben werden.

naiv
quelle