Arresto anticipato sulla perdita di convalida o sulla precisione?


10

Attualmente sto addestrando una rete neurale e non riesco a decidere quale utilizzare per implementare i miei criteri di arresto anticipato: perdita di convalida o metriche come accuratezza / f1score / auc / qualunque cosa calcolata sul set di convalida.

Nella mia ricerca, ho trovato articoli a difesa di entrambi i punti di vista. Keras sembra inadempiere alla perdita di convalida, ma ho anche trovato risposte convincenti per l'approccio opposto (ad esempio qui ).

Qualcuno ha indicazioni su quando utilizzare preferibilmente la perdita di convalida e quando utilizzare una metrica specifica?

Risposte:


5

TLDR; Monitora la perdita anziché l'accuratezza

Risponderò alla mia domanda poiché ritengo che le risposte ricevute non abbiano raggiunto il punto e qualcuno potrebbe avere lo stesso problema un giorno.

In primo luogo, vorrei chiarire rapidamente che l'utilizzo dell'arresto anticipato è perfettamente normale durante l'allenamento delle reti neurali (consultare le sezioni pertinenti del libro Deep Learning di Goodfellow et al, la maggior parte dei documenti DL e la documentazione per il callback EarlyStopping di keras).

Ora, per quanto riguarda la quantità da monitorare: preferisce la perdita alla precisione. Perché? La perdita quantifica la certezza del modello su una previsione (fondamentalmente con un valore vicino a 1 nella classe giusta e vicino a 0 nelle altre classi). L'accuratezza spiega semplicemente il numero di previsioni corrette. Allo stesso modo, tutte le metriche che utilizzano previsioni rigide anziché probabilità hanno lo stesso problema.

Ovviamente, qualunque sia la metrica che sceglierai, deve essere calcolata su un set di validazione e non su un set di addestramento (altrimenti, in primo luogo, ti manca completamente il punto di usare EarlyStopping)


Se i valori sono compresi tra 0 e 1, la cross_entropyperdita è un candidato più preferibile di MSEo MAE. Dai un'occhiata alla sezione riepilogativa di questo articolo e a questo post sulle statistiche .
Esmailian,

@Esmailian non è una questione di preferenze; per problemi di classificazione , MSE e MAE non sono semplicemente appropriati.
Desertnaut

4

Secondo me, questo è soggettivo e specifico del problema. Dovresti usare qualunque sia il fattore più importante nella tua mente come metrica guida, in quanto ciò potrebbe prendere le tue decisioni su come modificare il modello meglio focalizzato.

L1

Ad esempio, se riferirai un punteggio di F1 nel tuo rapporto / al tuo capo ecc. (E supponendo che sia quello a cui tengono davvero), allora usare quella metrica potrebbe avere più senso. Il punteggio F1, ad esempio, tiene conto della precisione e del richiamo , ovvero descrive la relazione tra due più metriche a grana fine .

Mettendo insieme queste cose, i punteggi di calcolo diversi dalla perdita normale possono essere utili per la panoramica e per vedere come viene ottimizzata la metrica finale nel corso delle iterazioni di addestramento. Quella relazione potrebbe forse darti una visione più profonda del problema,

Di solito è meglio provare diverse opzioni, tuttavia, poiché l'ottimizzazione per la perdita di convalida può consentire all'allenamento di durare più a lungo, il che alla fine può anche produrre un punteggio F1 superiore . Precisione e richiamo potrebbero oscillare attorno ad alcuni minimi locali, producendo un punteggio F1 quasi statico, quindi smetteresti di allenarti. Se stavi ottimizzando per la perdita pura, potresti aver registrato abbastanza fluttuazioni nella perdita per permetterti di allenarti più a lungo.


Perché l'utilizzo della perdita di convalida consentirebbe una formazione più lunga rispetto all'utilizzo di una metrica? Inoltre, puoi approfondire la differenza tra le due opzioni? Vedi un caso in cui sarebbe una cattiva idea usare una metrica anziché la perdita?
qmeeus

@ id-2205 - vedi la mia risposta modificata.
n1k31t4,

punto interessante! Attualmente sto utilizzando l'accuratezza per l'arresto anticipato ma cercherò di utilizzare la perdita di convalida. Tuttavia, non mi aspetto cambiamenti nel processo di formazione! Grazie per la risposta
qmeeus

1

Attualmente sto addestrando una rete neurale e non riesco a decidere quale utilizzare per implementare i miei criteri di arresto anticipato: perdita di convalida o metriche come accuratezza / f1score / auc / qualunque cosa calcolata sul set di convalida.

Se stai allenando una rete profonda, ti consiglio vivamente di non utilizzare la fermata anticipata. Nell'apprendimento profondo, non è molto consuetudinario. Invece, puoi utilizzare altre tecniche come abbandonare per generalizzare bene. Se insisti su questo, la scelta del criterio dipende dal tuo compito. Se si dispone di dati non bilanciati, è necessario utilizzare il F1punteggio e valutarlo sui dati di convalida incrociata. Se disponi di dati bilanciati, prova ad utilizzare l'accuratezza dei dati di convalida incrociata. Altre tecniche dipendono fortemente dal tuo compito.

Ti incoraggio vivamente a trovare un modello che si adatti molto bene ai tuoi dati e ad impiegare l'abbandono successivo. Questa è la cosa più comune che le persone usano per i modelli profondi.


2
Sto usando anche il dropout. Tuttavia, non riesco a trovare un motivo per cui l'arresto anticipato non dovrebbe essere usato però ...
qmeeus

La fermata anticipata cerca di risolvere i problemi di apprendimento e generalizzazione. D'altra parte, abbandonare cerca solo di superare il problema di generalizzazione.
Media,

1
Non rispondi alla mia domanda ... Non nego il fatto che l'abbandono sia utile e debba essere usato per proteggere da un eccesso di adattamento, non potrei essere più d'accordo su questo. La mia domanda è: perché dici che l'arresto anticipato non dovrebbe essere usato con ANN? (vedi la tua prima frase: se stai allenando una rete profonda, ti consiglio vivamente di non usare lo stop anticipato.)
qmeeus

Hai letto il mio ultimo commento? Risponde esattamente alla tua domanda. È una citazione famosa dal pr. Ng nella sua lezione di apprendimento profondo, secondo corso. Quest'ultimo caso è un compito più semplice a causa della non difficoltà a risolvere compiti multipli contemporaneamente.
Media,

3
E per trovarlo e trovare il giusto set di iperparametri, sto impiegando una sorta di ricerca di griglia diretta con arresto anticipato per i motivi che ho spiegato sopra. Punto preso però e una volta selezionato il modello finale e lo addestrerò, non userò la sosta anticipata. Grazie per questa interessante discussione e per i tuoi consigli
qmeeus,
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.