Ich verwende Bidirectional RNN, um ein Ereignis mit unausgeglichenem Auftreten zu erkennen. Die positive Klasse ist 100-mal seltener als die negative Klasse. Obwohl keine Regularisierung verwendet wird, kann ich eine 100% ige Genauigkeit für das Zugset und 30% für das Validierungsset erhalten. Ich schalte die 12-Regularisierung ein und das Ergebnis ist nur eine 30% ige Genauigkeit beim Zugsatz anstelle eines längeren Lernens und eine 100% ige Genauigkeit beim Validierungssatz.
Ich dachte, dass meine Daten möglicherweise zu klein sind, also habe ich nur für Experimente das Zugset mit dem Testset zusammengeführt, das ich vorher nicht verwendet habe. Die Situation war die gleiche, in der ich die l2-Regularisierung verwenden würde, was ich jetzt nicht tat. Ich erhalte 30% Genauigkeit bei Zug + Test und Validierung.
In den genannten Experimenten werden 128 versteckte Einheiten und 80 Zeitschritte verwendet. Wenn ich die Anzahl der versteckten Einheiten auf 256 erhöht habe, kann ich den Zug + Testsatz erneut überanpassen, um eine 100% ige Genauigkeit zu erzielen, aber immer noch nur 30% des Validierungssatzes.
Ich habe so viele Optionen für Hyperparameter ausprobiert und fast kein Ergebnis. Möglicherweise verursacht die gewichtete Kreuzentropie das Problem. In bestimmten Experimenten beträgt das Gewicht für die positive Klasse 5. Beim Versuch mit größeren Gewichten sind die Ergebnisse häufig um 20% der Genauigkeit schlechter.
Ich habe LSTM- und GRU-Zellen ausprobiert, kein Unterschied.
Die besten Ergebnisse habe ich bekommen. Ich habe 2 versteckte Ebenen mit 256 versteckten Einheiten ausprobiert, es dauerte ungefähr 3 Tage Berechnung und 8 GB GPU-Speicher. Ich habe eine Genauigkeit von ca. 40-50% erreicht, bevor es wieder zu einer Überanpassung kommt, während die l2-Regularisierung aktiviert war, aber nicht so stark.
Ich benutze Adam-Optimierer, andere haben nicht so gut funktioniert. Die Funktion, die ich habe, ist ausreichend, da ich bei Verwendung der Zustandsmaschine eine Genauigkeit von 90% erzielen kann. In dieser Zustandsmaschine ist das Hauptmerkmal das Summieren und Schwellenwerten basierend auf anderen Merkmalseigenschaften und seiner variablen Länge. Manchmal sind es 10, manchmal 20 Zeitstempel, die über das Merkmal sprechen.
Gibt es eine allgemeine Richtlinie, was in dieser Situation zu tun ist? Ich konnte nichts finden.