risposta

123

Più bassa è la perdita di , migliore è un modello (a meno che il modello non si sia adattato ai dati di allenamento). La perdita viene calcolata su formazione e convalida e la sua interpolazione è quanto bene il modello sta facendo per questi due set. A differenza dell'accuratezza, la perdita non è una percentuale. È una sommatoria degli errori fatti per ogni esempio in training o set di validazione.

Nel caso di reti neurali, la perdita è di solito negative log-likelihood e residual sum of squares rispettivamente per la classificazione e la regressione. Quindi, naturalmente, l'obiettivo principale di 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 il backpropagation nelle reti neurali.

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

L'accuratezza di un modello viene in genere determinata dopo aver appreso e fissato i parametri del modello e non è stato effettuato alcun apprendimento. Quindi i campioni di prova vengono inviati al modello e il numero di errori (zero-una perdita) registrati dal modello, dopo il confronto con i veri bersagli. Quindi viene calcolata la percentuale di errata classificazione.

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

enter image description here

ci sono anche alcune sottigliezze, riducendo il valore della perdita. Ad esempio, è possibile che si verifichi il problema di over-fitting in cui il modello "memorizza" gli esempi di addestramento e diventa inefficace per il set di test. L'over-fitting si verifica anche nei casi in cui non si utilizza uno regularization, 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 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

+5

@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

+1

@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

5

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.

1

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

Il set di convalida viene utilizzato dopo l'addestramento della rete neurale. Viene utilizzato per mettere a punto gli iperparametri della rete e confrontare il modo in cui le modifiche apportate influenzano l'accuratezza predittiva del modello. Mentre il set di allenamento 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 il confronto ripetibile di questi diversi parametri/architetture rispetto agli stessi pesi di dati e reti, per osservare come i cambiamenti di parametri/architettura influiscono sulla potenza predittiva della rete.

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

Problemi correlati