Verhinderung einer Überanpassung von LSTM bei kleinen Datenmengen


13

Ich modelliere 15000 Tweets für die Stimmungsvorhersage unter Verwendung eines einschichtigen LSTM mit 128 verborgenen Einheiten unter Verwendung einer word2vec-ähnlichen Darstellung mit 80 Dimensionen. Nach 1 Epoche erhalte ich eine Abstiegsgenauigkeit (38% bei Zufall = 20%). Mehr Training führt dazu, dass die Validierungsgenauigkeit abnimmt, wenn die Trainingsgenauigkeit zu steigen beginnt - ein deutliches Zeichen für eine Überanpassung.

Ich überlege mir daher Möglichkeiten zur Regularisierung. Ich würde es vorziehen, die Anzahl der versteckten Einheiten nicht zu reduzieren (128 scheint schon ein bisschen niedrig zu sein). Ich verwende derzeit mit einer Wahrscheinlichkeit von 50% Dropout, aber dies könnte möglicherweise erhöht werden. Das Optimierungsprogramm ist Adam mit den Standardparametern für Keras ( http://keras.io/optimizers/#adam ).

Was sind einige effektive Möglichkeiten, um die Überanpassung für dieses Modell in meinem Datensatz zu reduzieren?


Ich habe genau das gleiche Problem. Wie haben Sie es endlich geschafft, Ihr LSTM zu regulieren? Die Validierungsgenauigkeit meines LSTM beträgt 41%. Meine Eingabeform ist (200,) und ich habe 1 LSTM-Schicht mit 64 Einheiten, gefolgt von 2 dichten Schichten mit 0,4 Dropout.
Nirvan Anjirbag

Antworten:


7

Du könntest es versuchen:

  • Reduzieren Sie die Anzahl der ausgeblendeten Einheiten, ich weiß, Sie sagten, es scheint bereits niedrig zu sein, aber da die Eingabeebene nur 80 Funktionen hat, kann es tatsächlich sein, dass 128 zu viel ist. Als Faustregel gilt, dass die Anzahl der ausgeblendeten Einheiten zwischen der Anzahl der Eingabeeinheiten (80) und der Ausgabeklassen (5) liegt.
  • Alternativ können Sie die Größe des Eingabedarstellungsbereichs auf mehr als 80 vergrößern (dies kann jedoch auch zu einer Überanpassung führen, wenn die Darstellung für ein bestimmtes Wort bereits zu eng ist).

Eine gute Möglichkeit, ein Netzwerk anzupassen, besteht darin, mit einer Überanpassung des Netzwerks zu beginnen und dann die Kapazität (versteckte Einheiten und eingebetteter Platz) zu reduzieren, bis keine Überanpassung mehr erfolgt.


1
Hast du die l1 und l2 Regularisierung ausprobiert? Funktioniert es tatsächlich? Diese Antwort deutet darauf hin, dass Sie dies im Allgemeinen nicht tun sollten
Jakub Bartczuk

Mir war diese Eigenschaft von RNNs nicht bekannt. Ich werde diesen Punkt der Antwort löschen
Miguel,

Hallo, ich habe mich gefragt, wie Sie die Faustregel erhalten haben, die besagt, dass "die Anzahl der versteckten Einheiten zwischen der Anzahl der Eingabeeinheiten und der Ausgabeklassen liegen soll". Gibt es ein Papier, auf das ich verweisen kann?
Kong

Das ist die Sache mit den Faustregeln, ich weiß nicht, woher ich sie habe ...
Miguel,
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.