Differenza tra decadimento del peso netto neurale e tasso di apprendimento


Risposte:


161

La velocità di apprendimento è un parametro che determina quanto una fase di aggiornamento influenza il valore corrente dei pesi. Mentre il decadimento del peso è un termine aggiuntivo nella regola di aggiornamento del peso che provoca il decadimento esponenziale dei pesi a zero, se non è pianificato alcun altro aggiornamento.

Diciamo quindi che abbiamo una funzione di costo o errore che vogliamo minimizzare. La discesa con gradiente ci dice di modificare i pesi nella direzione della discesa più ripida in : dove è il tasso di apprendimento, e se è grande avrai una corrispondente modifica dei pesi (in generale non dovrebbe essere troppo grande, altrimenti supererai il minimo locale nella tua funzione di costo).w E w iw i - η EE(w)wEηwi

wiowio-ηEwio,
ηwio

Al fine di limitare efficacemente il numero di parametri gratuiti nel modello in modo da evitare un eccesso di adattamento, è possibile regolarizzare la funzione di costo. Un modo semplice per farlo consiste nell'introdurre un precedente gaussiano a media zero rispetto ai pesi, che equivale a cambiare la funzione di costo in . In pratica, ciò penalizza pesi elevati e limita efficacemente la libertà nel modello. Il parametro di regolarizzazione determina come compensare il costo originale con la penalizzazione dei pesi elevati.λEE~(w)=E(w)+λ2w2λE

Applicando la discesa gradiente a questa nuova funzione di costo otteniamo: Il nuovo termine proveniente dalla regolarizzazione fa decadere il peso in proporzione alle sue dimensioni.-ηλwi

wiowio-ηEwio-ηλwio.
-ηλwio

2
Grazie per l'utile spiegazione. Una domanda: nel pacchetto R "nnet" è presente un parametro utilizzato nell'addestramento della rete neurale chiamato "decadimento". Sai se il decadimento corrisponde alla tua lambda o alla tua eta * lambda?
Andrea Ianni ௫

3
Vorrei anche aggiungere che la perdita di peso è la stessa cosa della regolarizzazione L2 per coloro che hanno familiarità con quest'ultimo.
Sergei,

2
@Sergei per favore no, smetti di diffondere questa disinformazione! Questo è vero solo nel caso molto particolare della vaniglia SGD. Vedere il Decadimento del peso di fissaggio per la carta Adam .
LucasB,

Per chiarire: al momento della stesura del documento, i documenti PyTorch per Adam usano il termine "decadimento del peso" (tra parentesi chiamato "penalità L2") per riferirsi a ciò che penso che quegli autori chiamino regolamento L2. Se ho capito bene, questa risposta si riferisce a SGD senza slancio, dove i due sono equivalenti.
Dylan F,

14

Oltre alla risposta di @ mrig (+1), per molte applicazioni pratiche di reti neurali è meglio usare un algoritmo di ottimizzazione più avanzato, come Levenberg-Marquardt (reti di dimensioni medio-piccole) o discesa gradiente coniugato in scala (medio-grande reti), poiché saranno molto più veloci e non è necessario impostare il tasso di apprendimento (entrambi gli algoritmi adattano essenzialmente il tasso di apprendimento utilizzando la curvatura e il gradiente). Qualsiasi pacchetto o libreria di reti neurali decenti avrà implementazioni di uno di questi metodi, qualsiasi pacchetto che non è probabilmente obsoleto. Uso il libary NETLAB per MATLAB, che è un ottimo pezzo di kit.


Che dire degli algoritmi di ottimizzazione basati su Rprop? Come si accumulano?
potenza

4
Penso che molte persone stiano usando varianti di rprop + momentum come RMSProp, adagrad, SGD + nesterov momentum. Vedi classe cs231 .
facuq

1
Bene, ovviamente dipende dalla tua applicazione. Ma per grandi set di dati / reti che sono un po 'alla moda in questo momento, penso che le persone stiano trovando quegli algoritmi che ho citato più adatti.
facuq

6
@DikranMarsupial potrebbe essere perché al giorno d'oggi (quasi cinque anni dopo la tua risposta) le persone tendono ad usare Adam invece?
ComputerScientist,

2
In effetti questa risposta è molto obsoleta. Questi algoritmi non sono pratici con la scala di modelli e set di dati che sono tipici al giorno d'oggi, e i pacchetti più utilizzati, che certamente non sono obsoleti, mancano di questi algoritmi.
LucasB,

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.