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α
a l p h aNs∗ ( 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 .
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:
Die Komplexität des Datensatzes. Die Anzahl der Features, die Anzahl der Datenpunkte usw.
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.
Ich folge diesen Schritten, wenn ich mit LSTM modelliere:
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.
Versuchen Sie, die Anzahl der Speicherzellen zu erhöhen. Wenn sich die Leistung nicht wesentlich verbessert, fahren Sie mit dem nächsten Schritt fort.
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.
quelle
Vielleicht solltest du dir das mal ansehen: https://wiki.inf.ed.ac.uk/twiki/pub/CSTR/ListenTerm1201415/sak2.pdf
Hier zeigen sie, dass 2 Schichten schön, 5 Schichten besser und 7 Schichten sehr schwer zu trainieren sind.
quelle