Come interpretare "perdita" e "accuratezza" per un modello di apprendimento automatico


Risposte:


284

Minore è la perdita, migliore è un modello (a meno che il modello non si sia adattato eccessivamente ai dati di allenamento). La perdita viene calcolata sulla formazione e sulla convalida e la sua interperazione è quanto bene stia andando il modello per questi due set. A differenza della precisione, la perdita non è una percentuale. È una sintesi degli errori commessi per ciascun esempio nei set di addestramento o di validazione.

Nel caso delle reti neurali, la perdita è di solito una probabilità logaritmica negativa e una somma residua di quadrati rispettivamente per la classificazione e la regressione. Quindi, naturalmente, l'obiettivo principale in un modello di apprendimento è quello di ridurre (minimizzare) il valore della funzione di perdita rispetto ai parametri del modello, modificando i valori del vettore di peso attraverso diversi metodi di ottimizzazione, come la backpropagazione nelle reti neurali.

Il valore di perdita implica quanto bene o male si comporta un certo modello dopo ogni iterazione di ottimizzazione. Idealmente, ci si aspetterebbe la riduzione della perdita dopo ciascuna o più iterazioni.

L'accuratezza di un modello è di solito determinata dopo che i parametri del modello sono stati appresi e fissati e non è in corso alcun apprendimento. Quindi i campioni di prova vengono immessi nel modello e vengono registrati il ​​numero di errori (zero-one loss) che il modello commette, dopo il confronto con gli obiettivi reali. Quindi viene calcolata la percentuale di classificazione errata.

Ad esempio, se il numero di campioni di prova è 1000 e il modello classifica correttamente 952 di quelli, l'accuratezza del modello è del 95,2%.

inserisci qui la descrizione dell'immagine

Ci sono anche alcune sottigliezze mentre si riduce il valore della perdita. Ad esempio, potresti riscontrare il problema di un eccesso di adattamento in cui il modello "memorizza" gli esempi di addestramento e diventa inefficace per il set di test. Il sovra-adattamento si verifica anche nei casi in cui non si utilizza una regolarizzazione , si dispone di un modello molto complesso (il numero di parametri liberi Wè elevato) o il numero di punti dati Nè molto basso.


2
Ciao @Amir, grazie per la tua spiegazione molto dettagliata. Tuttavia, ho un problema: nella mia rete neurale, la perdita diminuisce sempre quando mi alleno (quando aumentano le epoche ), tuttavia la precisione non è migliore.
mamatv,

8
@mamatv Finché il costo diminuisce, dovresti essere pronto. Sebbene il costo e l'accuratezza normalmente abbiano una relazione di proporzionalità inversa, ma si può notare che l'accuratezza è una somma di errori zero-uno mentre il costo è una somma di numeri in virgola mobile. Pertanto, una riduzione dello 0,001% del costo non significa necessariamente un aumento dello 0,001% della precisione. Aumentare la precisione è molto più difficile quando il decremento dei costi è immateriale (il costo è molto vicino ai minimi locali)
Amir

2
@mamatv Avrei dovuto dire finché il costo per la formazione e la validazione sta diminuendo, dovresti essere pronto per partire. È inoltre possibile verificare l'accuratezza della convalida su ogni epoca. Se inizia a salire, allora il tuo modello potrebbe aver iniziato ad adattarsi eccessivamente e dovresti smettere di allenarlo.
Amir,

1
Perché non addestrare il modello per aumentare l'accuratezza anziché ridurre al minimo le perdite?
bikashg,

2
La precisione di @bikashg non è differenziabile e pertanto non è possibile eseguire il backprop su di essa.
DharmaTurtle,

23

Sono due metriche diverse per valutare le prestazioni del tuo modello, che di solito vengono utilizzate in fasi diverse.

La perdita viene spesso utilizzata nel processo di addestramento per trovare i valori dei parametri "migliori" per il proprio modello (ad es. Pesi nella rete neurale). È ciò che si tenta di ottimizzare nell'allenamento aggiornando i pesi.

La precisione è più da una prospettiva applicata. Una volta individuati i parametri ottimizzati sopra, utilizzate queste metriche per valutare l'accuratezza della previsione del modello rispetto ai dati reali.

Facciamo un esempio di classificazione dei giocattoli. Vuoi prevedere il sesso dal proprio peso e 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 = 55kg, x3_h = 175cm;

Si utilizza un modello di regressione logistica semplice che è y = 1 / (1 + exp- (b1 * x_w + b2 * x_h))

Come trovi 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 binaria può essere: (un segno meno dovrebbe essere aggiunto davanti al segno di somma)

Non sappiamo cosa dovrebbero essere b1 e b2. Facciamo un'ipotesi casuale diciamo b1 = 0.1 e b2 = -0.03. Allora qual è la nostra perdita ora?

quindi la perdita è

Quindi l'algoritmo di apprendimento (ad es. Discesa 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 y_hat> = 0,5, decidiamo che la nostra previsione è femminile (1). altrimenti sarebbe 0. Pertanto, il nostro algoritmo prevede y1 = 1, y2 = 1 e y3 = 1. Qual è la nostra precisione? Facciamo una previsione errata su y1 e y2 e ne facciamo una corretta su y3. Quindi ora la nostra precisione è 1/3 = 33.33%

PS: Nella risposta di Amir , si dice che la retro-propagazione sia un metodo di ottimizzazione in NN. Penso che sarebbe trattato come un modo per trovare il gradiente per i pesi in NN. Metodo di ottimizzazione comune in NN sono GradientDescent e Adam.


grazie per la matematica. ha aiutato a chiarire il concetto.
Finn Frotscher,

6

@Aadnan Solo per chiarire i set di dati Training / Validation / Test: il set di training viene utilizzato per eseguire l'allenamento iniziale del modello, inizializzando i pesi della rete neurale.

Il set di validazione viene utilizzato dopo l'allenamento della rete neurale. Viene utilizzato per ottimizzare gli iperparametri della rete e confrontare il modo in cui le modifiche apportate influiscono sulla precisione predittiva del modello. Mentre il set di addestramento può essere considerato come utilizzato per costruire i pesi di gate della rete neurale, il set di validazione consente la regolazione fine dei parametri o dell'architettura del modello di rete neurale. È utile in quanto consente un confronto ripetibile di questi diversi parametri / architetture rispetto agli stessi pesi di dati e reti, per osservare come i cambiamenti di parametri / architettura influenzano la potenza predittiva della rete.

Quindi il set di test viene utilizzato solo per testare l'accuratezza predittiva della rete neurale addestrata su dati mai visti prima, dopo l'addestramento e la selezione di parametri / architettura con i set di dati di addestramento e validazione.

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.