Reti neurali: momento di variazione del peso e decadimento del peso


41

Lo slancio viene utilizzato per ridurre le fluttuazioni delle variazioni di peso su iterazioni consecutive:α

Δωi(t+1)=ηEwi+αΔωi(t),
dove è la funzione di errore, - il vettore dei pesi, - tasso di apprendimento.E(w)wη

La riduzione del peso penalizza le variazioni di peso:λ

Δωi(t+1)=ηEwiληωi

La domanda è se ha senso combinare entrambi i trucchi durante la propagazione all'indietro e quale effetto avrebbe?

Δωi(t+1)=ηEwi+αΔωi(t)ληωi

1
Intendi dire ωi (t + 1) = ωi - η ∂E / ∂wi + αΔωi (t), invece di Δωi (t + 1) = ωi - η∂E / ∂wi + αΔωi (t)?
hakunamatata,

Risposte:


48

Sì, è molto comune usare entrambi i trucchi. Risolvono diversi problemi e possono lavorare bene insieme.

Un modo di pensarci è che il decadimento del peso cambia la funzione che viene ottimizzata , mentre lo slancio cambia il percorso che prendi per l'ottimale .

La riduzione del peso, riducendo i coefficienti verso lo zero, assicura di trovare un ottimo locale con parametri di piccola magnitudine. Questo di solito è cruciale per evitare un eccesso di adattamento (anche se possono funzionare anche altri tipi di vincoli sui pesi). Come vantaggio laterale, può anche semplificare l'ottimizzazione del modello, rendendo la funzione obiettivo più convessa.

Una volta che hai una funzione obiettiva, devi decidere come spostarti su di essa. La discesa più ripida sul gradiente è l'approccio più semplice, ma hai ragione che le fluttuazioni possono essere un grosso problema. L'aggiunta di slancio aiuta a risolvere questo problema. Se stai lavorando con aggiornamenti batch (che di solito è una cattiva idea con le reti neurali) i passaggi di tipo Newton sono un'altra opzione. I nuovi approcci "caldi" si basano sul gradiente accelerato di Nesterov e sulla cosiddetta ottimizzazione "Hessian-Free".

Ma indipendentemente da quale di queste regole di aggiornamento usi (quantità di moto, Newton, ecc.), Stai ancora lavorando con la stessa funzione obiettiva, che è determinata dalla tua funzione di errore (ad es. Errore al quadrato) e da altri vincoli (ad es. Riduzione del peso) . La domanda principale quando si decide quale di questi utilizzare è quanto velocemente si arriva a una buona serie di pesi.


"può anche semplificare l'ottimizzazione del modello, rendendo la funzione obiettivo più convessa" - potresti spiegare come pesi più piccoli lo rendono possibile?
Alex,

Ecco un semplice esempio che dovrebbe illustrare il punto: se la tua funzione obiettivo originale è , ci sono infiniti minimi locali. Se aggiungi alla funzione obiettivo e è maggiore di circa 0,2, tutto il vecchio optima locale scomparirà e ti verrà lasciato solo un minimo vicino a 0.sin(x)ax2a
David J. Harris

Bella risposta, grazie. Che dire di Adam Optimizer? Funziona meglio della combinazione di perdita di peso e quantità di moto?
A. Piro,

Adam è come lo slancio, ma non come la perdita di peso; influenza il modo in cui si naviga la funzione obiettivo, ma non la funzione obiettivo stessa.
David J. Harris,
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.