Trainingsverlust steigt mit der Zeit

21

Ich trainiere ein Modell (Recurrent Neural Network), um 4 Arten von Sequenzen zu klassifizieren. Während ich trainiere, sehe ich, dass der Trainingsverlust bis zu dem Punkt sinkt, an dem ich über 90% der Proben in meinen Trainingssätzen richtig klassifiziere. Ein paar Epochen später stelle ich jedoch fest, dass der Trainingsverlust zunimmt und meine Genauigkeit abnimmt. Das kommt mir komisch vor, da ich davon ausgehen würde, dass sich am Trainingssatz die Leistung mit der Zeit nicht verschlechtern sollte. Ich benutze Cross-Entropy-Loss und meine Lernrate beträgt 0,0002.

Update: Es stellte sich heraus, dass die Lernrate zu hoch war. Mit einer niedrigen Lernrate beobachte ich dieses Verhalten nicht. Allerdings finde ich das immer noch eigenartig. Alle guten Erklärungen sind willkommen, warum dies geschieht

Der Verlust nimmt ab und steigt dann an

dins2018
quelle

Antworten:

6

Ich hatte so ein ähnliches Verhalten beim Trainieren einer CNN, weil ich den Gradientenabstieg mit abnehmender Lernrate für die Fehlerberechnung verwendet habe. Haben Sie die Anzahl der Iterationen deutlich erhöht und überprüft, ob dieses Verhalten viel später mit der neuen niedrigen Lernrate einhergeht?

Freundlicher
quelle
Eigentlich ja, aber es kommt der Punkt, dass für eine ausreichend niedrige Lernrate, wo es nie wieder steigen wird. Ich suche eine theoretisch fundierte Erklärung, warum dies passiert
dins2018
Welchen Optimierungsalgorithmus verwenden Sie?
Freundlicher
Ich benutze den Adam-Optimierer mit lr = 0,00001, betas = (0,5, 0,999)
dins2018
1
Ich denke, Sie nähern sich mit dieser kleinen Lernrate so langsam dem lokalen Minimum an, dass der Punkt, an dem der Verlustwert wieder leicht ansteigt (weil Sie das Minimum überschreiten), zu viele Iterationen erfordert. Dieser Anstieg des Verlustwerts ist auf Adam zurückzuführen, der in dem Moment, in dem das lokale Minimum überschritten wird und eine bestimmte Anzahl von Iterationen, eine kleine Anzahl durch eine noch kleinere Anzahl dividiert und der Verlustwert explodiert.
Freundlicher
2
Sie können Beta1 = 0,9 und Beta2 = 0,999 einstellen. Das sind die gemeinsamen Werte, die diesem Verhalten entgegenwirken müssen.
Freundlicher
1

Weil die Lernrate zu groß ist, divergiert sie und findet nicht das Minimum der Verlustfunktion. Mithilfe eines Schedulers können Sie die Lernrate nach bestimmten Epochen verringern, um das Problem zu lösen

Yawen Zheng
quelle
0

Bei höheren Lernraten bewegen Sie sich zu stark in die dem Gradienten entgegengesetzte Richtung und können sich von den lokalen Minima entfernen, was den Verlust erhöhen kann. Die Planung der Lernrate und das Abschneiden von Verläufen können dabei helfen.

namuchan95
quelle
Willkommen zum Lebenslauf. Um eine vollständige Antwort zu erhalten, lesen Sie die Anleitungen unter stats.stackexchange.com/help/how-to-answer .
ReneBt