La perdita di allenamento aumenta con il tempo [duplicato]


21

Sto addestrando un modello (rete neurale ricorrente) per classificare 4 tipi di sequenze. Mentre eseguo il mio allenamento vedo la perdita di allenamento scendere fino al punto in cui classifico correttamente oltre il 90% dei campioni nei miei lotti di allenamento. Tuttavia un paio di epoche dopo noto che la perdita di allenamento aumenta e che la mia precisione diminuisce. Mi sembra strano perché mi aspetto che sul set di allenamento le prestazioni dovrebbero migliorare con il tempo non peggiorare. Sto usando la perdita di entropia incrociata e il mio tasso di apprendimento è 0,0002.

Aggiornamento: si è scoperto che il tasso di apprendimento era troppo alto. Con un tasso di apprendimento abbastanza basso non osservo questo comportamento. Comunque lo trovo ancora strano. Sono benvenute buone spiegazioni sul perché ciò accada

La perdita diminuisce e quindi aumenta

Risposte:


6

Ho avuto un comportamento simile durante l'allenamento di una CNN, perché ho usato la discesa del gradiente con il tasso di apprendimento in decomposizione per il calcolo dell'errore. Hai aumentato significativamente il numero di iterazioni e verificato se questo comportamento arriva molto più tardi con il nuovo basso tasso di apprendimento?


In realtà sì, tuttavia, arriva un punto che per un tasso di apprendimento abbastanza basso in cui non salirà mai più. Sto cercando una spiegazione teoricamente
valida

Quale algoritmo di ottimizzazione usi?
Freundlicher,

Uso l'ottimizzatore Adam con lr = 0,00001, betas = (0,5, 0,999)
dins2018

1
Penso che tu sia approssimativo con questo piccolo tasso di apprendimento così lentamente al minimo locale che il punto in cui il valore della perdita aumenta di nuovo leggermente (perché superi il minimo) richiede troppe iterazioni. Questo aumento del valore della perdita è dovuto a Adam, nel momento in cui viene superato il minimo locale e un certo numero di iterazioni, un piccolo numero viene diviso per un numero ancora più piccolo e il valore della perdita esplode.
Freundlicher,

2
Puoi impostare beta1 = 0.9 e beta2 = 0.999. Questi sono i valori comuni che devono contrastare questo comportamento.
Freundlicher,

1

Poiché il tasso di apprendimento è troppo elevato, divergerà e non riuscirà a trovare il minimo della funzione di perdita. L'uso di uno scheduler per ridurre il tasso di apprendimento dopo alcune epoche aiuterà a risolvere il problema


0

Con tassi di apprendimento più alti ti stai muovendo troppo nella direzione opposta al gradiente e potresti allontanarti dai minimi locali che possono aumentare la perdita. La pianificazione della velocità di apprendimento e il clipping gradiente possono essere d'aiuto.


Benvenuti nel CV. Per ottenere il voto è meglio fornire una risposta più completa, consultare stats.stackexchange.com/help/how-to-answer per assistenza .
Rinnova il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.