Come è possibile che la perdita di validazione stia aumentando mentre aumenta anche l'accuratezza della validazione


28

Sto addestrando una semplice rete neurale sul set di dati CIFAR10. Dopo qualche tempo, la perdita di validazione ha iniziato ad aumentare, mentre aumenta anche l'accuratezza della validazione. La perdita e l'accuratezza del test continuano a migliorare.

Com'è possibile? Sembra che se aumenta la perdita di validazione, l'accuratezza dovrebbe diminuire.

PS Ci sono molte domande simili, ma nessuno ha spiegato cosa stesse succedendo lì.inserisci qui la descrizione dell'immagine


2
Puoi controllare alcuni suggerimenti per capire nella mia risposta qui: stats.stackexchange.com/questions/258166/…
ahstat,

@ahstat Capisco come sia tecnicamente possibile, ma non capisco come succede qui.
Konstantin Solomatov,

L '"illustrazione 2" è ciò che io e te abbiamo vissuto, che è una specie di sovradimensionamento. Per il mio problema particolare, è stato alleviato dopo aver mischiato il set.
ahstat,

@ahstat Ci sono molti modi per combattere l'eccessivo adattamento. Ad esempio, potrei usare il dropout. Quello che mi interessa di più, qual è la spiegazione per questo. Cioè perché sta aumentando così gradualmente e solo su.
Konstantin Solomatov,

Risposte:


12

Basandomi sulla risposta di Ankur e sul commento sottostante, penso che sia possibile il seguente scenario, mentre non ne ho la prova. Due fenomeni potrebbero accadere contemporaneamente:

  1. Alcuni esempi con previsioni borderline vengono previsti meglio e quindi la loro classe di output cambia (ad es. Un'immagine di gatto predetta a 0,4 come gatto e 0,6 a cavallo diventa 0,4 a cavallo e 0,6 a gatto). Grazie a ciò, la precisione aumenta mentre diminuisce la perdita.

  2. Alcuni esempi con previsioni pessime continuano a peggiorare (ad es. Un'immagine di gatto predetta a 0,8 come un cavallo diventa predetta a 0,9 come un cavallo) E / O (più probabile, in particolare per la classe multipla?) Alcuni esempi con molto buono le previsioni peggiorano un po '(ad es. l'immagine di un gatto predetta a 0,9 per essere un gatto diventa prevista a 0,8 per essere un gatto). Con questo fenomeno, la perdita aumenta mentre la precisione rimane invariata.

Quindi se il fenomeno 2 entra in gioco ad un certo punto, su molti esempi (ad esempio per una classe specifica che non è ben compresa per qualche motivo) e / o con un aumento della perdita più forte della diminuzione della perdita che si ottiene da 1., allora si potrebbe ritrovati nel tuo scenario.
Ancora una volta, forse questo non è ciò che sta accadendo, ma penso che riuscire a inventare tali scenari ci debba ricordare la relazione a volte scivolosa tra perdita (accuratezza) e accuratezza.


15

L'accuratezza di un set viene valutata semplicemente eseguendo un controllo incrociato dell'output di softmax più elevato e della classe etichettata corretta. Non dipende da quanto è elevato l'output di softmax. Per renderlo più chiaro, ecco alcuni numeri.

Supponiamo che ci siano 3 classi: cane, gatto e cavallo. Nel nostro caso, la classe corretta è cavallo . Ora, l'output del softmax è [0.9, 0.1]. Per questa perdita ~ 0,37. Il classificatore pronosticherà che si tratta di un cavallo. Prendiamo un altro caso in cui l'uscita softmax è [0.6, 0.4]. Perdita ~ 0.6. Il classificatore continuerà a prevedere che si tratta di un cavallo. Ma sicuramente, la perdita è aumentata. Quindi, si tratta della distribuzione dell'output.


4
Osservazione: nel tuo esempio, l'accuratezza non cambia. È ancora al 100%. Hai un esempio in cui diminuisce la perdita e diminuisce anche l'accuratezza?
Hugh Perkins,

1

Dalla risposta di Ankur, mi sembra che:

La precisione misura la percentuale di correttezza della previsione, ad esempiocorrectclassestotalclasses

mentre

La perdita tiene traccia della confidenza inversa (per mancanza di una parola migliore) della previsione. Un punteggio di perdita elevato indica che, anche quando il modello sta facendo buone previsioni, è sicuro delle previsioni che sta facendo ... e viceversa.less

Così...

Precisione di convalida elevata + punteggio di perdita elevato vs precisione di addestramento elevata + punteggio di perdita basso suggeriscono che il modello potrebbe non essere adeguato ai dati di allenamento.


0

Molte risposte si concentrano sul calcolo matematico che spiega come sia possibile. Ma non spiegano perché diventa così. E non possono suggerire come scavare ulteriormente per essere più chiari.

Ho 3 ipotesi. E suggerisci alcuni esperimenti per verificarli. Spero che possa aiutare a spiegare questo problema.

  1. L'etichetta è rumorosa. Confronta le false previsioni tra quando val_loss è minimo e val_acc è massimo. Controllare se questi campioni sono correttamente etichettati.
  2. [Meno probabile] Il modello non ha abbastanza aspetto delle informazioni per essere certo. Sperimenta con strati nascosti sempre più grandi.
  3. [Un'ipotesi molto selvaggia] Questo è un caso in cui il modello è meno sicuro su certe cose come se fosse allenato più a lungo. Tale situazione accade anche all'essere umano. Quando qualcuno ha iniziato a imparare una tecnica, gli viene detto esattamente cosa è buono o cattivo, a cosa servono certe cose (alta certezza). Quando passa attraverso più casi ed esempi, si rende conto che a volte certi bordi possono essere sfocati (meno certi, perdite più elevate), anche se può prendere decisioni migliori (maggiore precisione). E alla fine potrebbe diventare più sicuro quando diventa un maestro dopo aver attraversato un enorme elenco di campioni e un sacco di prove ed errori (più dati di addestramento). Quindi, in questo caso, suggerisco che l'esperimento con l'aggiunta di più rumore ai dati di allenamento (non all'etichetta) possa essere utile.

Non discuterne se non sei d'accordo con queste ipotesi. Sarà più significativo presentare un esperimento per verificarli, non importa per dimostrarli o dimostrarli errati.

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.