Nel contesto delle reti neurali, qual è la differenza tra il tasso di apprendimento e il decadimento del peso?
Nel contesto delle reti neurali, qual è la differenza tra il tasso di apprendimento e il decadimento del peso?
Risposte:
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 i ← w i - η ∂ Eηwi
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.λ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
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.
Ho termini semplici:
learning_rate: controlla la velocità o la lentezza con cui un modello di rete neurale rileva un problema.
rif: https://machinelearningmastery.com/learning-rate-for-deep-learning-neural-networks/
wight_decay: è una tecnica di regolarizzazione utilizzata per evitare un eccesso di adattamento.
rif: https://metacademy.org/graphs/concepts/weight_decay_neural_networks