Sono due metriche diverse per valutare le prestazioni del modello in genere utilizzate in diverse fasi.
La perdita viene spesso utilizzata nel processo di addestramento per trovare i valori dei parametri "migliori" per il modello (ad esempio i pesi nella rete neurale). È ciò che cerchi di ottimizzare nella formazione aggiornando i pesi.
L'accuratezza è più da una prospettiva applicata. Una volta individuati i parametri ottimizzati sopra, si utilizzano queste metriche per valutare l'accuratezza della previsione del modello rispetto ai dati reali.
Usiamo un esempio di classificazione giocattolo. Vuoi pronosticare il sesso dal peso e dall'altezza.Hai 3 dati, sono i seguenti: (0 sta per maschio, 1 sta per femmina)
y1 = 0, x1_w = 50 kg, x2_h = 160 cm;
y2 = 0, x2_w = 60 kg, x2_h = 170 cm;
y3 = 1, x3_w = 55 kg, x3_h = 175 cm;
si utilizza un modello di regressione logistica semplice che è y = 1/(1 + exp- (b1 * x_w + b 2 * x_h))
Come si fa a trovare B1 e B2? si definisce prima una perdita e si utilizza il metodo di ottimizzazione per minimizzare la perdita in modo iterativo aggiornando b1 e b2.
Nel nostro esempio, una perdita tipica per questo problema di classificazione binarie possono essere: (il segno meno deve essere aggiunto davanti al segno di sommatoria)
Non sappiamo cosa b1 e b2 dovrebbe essere. Facciamo un'ipotesi casuale dire b1 = 0.1 e b2 = -0.03. Allora qual è la nostra perdita ora?
y1_hat = 1/(1 + exp {- (0,1 * 50-0.03 * 160)}) = 0,549834 = 0,55
y2_hat = 1/(1 + exp {- (0,1 * * 60-0,03 170)}) = 0,7109495 = 0,71
y3_hat = 1/(1 + exp {- (0,1 * 55-0,03 * 175)}) = 0,5621765 = 0,56
così la perdita è (-log (1 -0.55) + -log (1-0.71) - log (0.56)) = 2.6162
Quindi l'algoritmo di apprendimento (ad esempio la discesa del gradiente) troverà un modo per aggiornare b1 e b2 per ridurre la perdita.
Cosa succede se b1 = 0.1 e b2 = -0.03 è l'ultimo b1 e b2 (uscita dalla discesa del gradiente), qual è la precisione ora?
Supponiamo che se y_hat> = 0.5, decidiamo che la nostra previsione è femminile (1). altrimenti sarebbe 0. Quindi, il nostro algoritmo prevede y1 = 1, y2 = 1 e y3 = 1. Qual è la nostra precisione? Facciamo previsioni sbagliate su y1 e y2 e ne creiamo uno corretto su y3. Così ora la nostra accuratezza è 1/3 = 33.33%
PS: in Amir's answer, si dice che la back-propagation sia un metodo di ottimizzazione in NN. Penso che sarebbe trattato come un modo per trovare il gradiente per i pesi in NN. Il metodo di ottimizzazione comune in NN è GradientDescent e Adam.
Ciao @Amir, grazie per la tua spiegazione dei dettagli. Tuttavia, ho un problema: nella mia rete neurale, la perdita diminuisce sempre quando mi sono allenato (quando le * epoche * aumentano), tuttavia la precisione non è migliore. – mamatv
@mamatv Finché il costo diminuisce, dovresti essere pronto. Sebbene il costo e la precisione abbiano normalmente una relazione di proporzionalità inversa, ma è possibile notare che la precisione è una somma di zero-uno errori mentre il costo è una somma di numeri in virgola mobile. Pertanto, una riduzione del 0,001% del costo non significa necessariamente un aumento dello 0,001% dell'accuratezza. Aumentare l'accuratezza è molto più difficile quando il decremento di costo è intangibile (il costo è molto vicino a un minimo locale) – Amir
@mamatv Avrei dovuto dire che finché il costo per la formazione e la convalida è in diminuzione dovresti essere a posto. È inoltre possibile verificare l'accuratezza della convalida in ogni epoca. Se inizia a salire, il tuo modello potrebbe aver iniziato a sovrapporsi e dovresti smettere di allenarlo. – Amir