Reti neurali - Correlazione di perdita e precisione


11

Sono un po 'confuso dalla coesistenza delle metriche di perdita e precisione nelle reti neurali. Entrambi dovrebbero rendere "l'esattezza" del confronto tra e , vero? Quindi l'applicazione dei due non è ridondante nelle epoche di addestramento? Inoltre, perché non sono correlati?yyy^

Risposte:


9

La perdita del registro ha la bella proprietà di essere una funzione differenziabile. La precisione potrebbe essere più importante ed è sicuramente più interpretabile, ma non è direttamente utilizzabile nella formazione della rete a causa dell'algoritmo di backpropagation che richiede che la funzione di perdita sia differenziabile. Quando la perdita preferita non è direttamente ottimizzabile (come la precisione), si utilizza una funzione di perdita che si comporta in modo simile al proxy della metrica vera. In caso di classificazione binaria, si userebbe un sigmoide alla fine e una perdita di registro per una precisione approssimativa. Sono altamente correlati.


6

La perdita è più generale della precisione. In classifica, puoi andare al 100% di precisione, dove tutte le etichette sono previste correttamente. Ma per quanto riguarda la regressione o la previsione? Non esiste una definizione di 0% e 100%

La perdita può essere ottimizzata con vari metodi. Nella classe Metodi numerici, hai imparato a risolvere una funzione ottimizzandola (che sta minimizzando ) con vari metodi come il metodo di Newton, il metodo di bisection, ecc.|yhaty|


0

Sì, entrambi misurano l'esattezza di y e y_hat e sì, di solito sono correlati. A volte la funzione di perdita potrebbe non essere la precisione, ma sei ancora interessato a misurare la precisione anche se non la stai ottimizzando direttamente. L'esempio MNIST di Google TensorFlow minimizza / ottimizza la perdita di entropia incrociata, ma mostra l'accuratezza dell'utente quando segnala i risultati, e questo è completamente corretto.

A volte non si desidera ottimizzare la precisione direttamente. Ad esempio, se si dispone di uno squilibrio di classe grave, il modello massimizzerà la precisione semplicemente selezionando sempre la classe più comune, ma questo non sarebbe un modello utile. In questo caso l'entropia / perdita del log sarebbe una funzione di perdita migliore da ottimizzare.


7
Ancora più importante, l'accuratezza non è una funzione differenziabile, quindi non è possibile riproporla.
Jan van der Vegt,

@JanvanderVegt Sì, è un ottimo punto
Ryan Zotti,

Ho imparato che in Keras posso mettere una metrica di valutazione "personalizzata" (per custom in questo caso intendo che nessuna implementazione integrata in Keras, come AUC o F1-Score) nella funzione di compilazione. Presumo che in questo caso verranno utilizzate / visualizzate queste metriche "personalizzate" anziché Precisione ovunque in cui il show_accuracyparametro è impostato su True (come nel caso di adattamento o valutazione). È corretto?
Hendrik,

1
@Hendrik sì, puoi semplicemente creare una def your_own_metric(y_true, y_pred)funzione e passarla amodel.compile(..., metrics=[your_own_metric])
rilut
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.