Réseaux de neurones: impulsion de changement de poids et perte de poids


42

Momentum est utilisé pour diminuer les fluctuations de poids lors d’itérations successives:α

Δωje(t+1)=-ηEwje+αΔωje(t),
E(w) est la fonction d'erreur, w - le vecteur de poids, η - taux d'apprentissage.

Weight decay λ pénalise les changements de poids:

Δωi(t+1)=-ηEwje-ληωje

La question est de savoir s'il est judicieux de combiner les deux astuces lors de la rétro-propagation et quel effet cela aurait-il?

Δωje(t+1)=-ηEwje+αΔωje(t)-ληωje

1
Voulez-vous dire i (t + 1) = i - ηE / wi + αΔωi (t), au lieu de Δωi (t + 1) = ωi - ηE / ∂wi + αΔωi (t)?
hakunamatata

Réponses:


48

Oui, il est très courant d'utiliser les deux astuces. Ils résolvent différents problèmes et peuvent bien fonctionner ensemble.

Une façon de penser à cela est que la perte de poids modifie la fonction en cours d'optimisation , tandis que la quantité de mouvement modifie le chemin que vous suivez .

La diminution du poids, en réduisant vos coefficients vers zéro, vous assure de trouver un optimum local avec des paramètres de faible amplitude. Ceci est généralement crucial pour éviter les surajustements (bien que d'autres types de contraintes sur les poids puissent également fonctionner). En contrepartie, il peut également être plus facile d'optimiser le modèle en rendant la fonction objectif plus convexe.

Une fois que vous avez une fonction objective, vous devez décider comment vous y déplacer. L’approche la plus simple est la descente la plus raide sur le gradient, mais vous avez raison de dire que les fluctuations peuvent être un gros problème. Ajouter de la dynamique aide à résoudre ce problème. Si vous travaillez avec des mises à jour par lots (ce qui est généralement une mauvaise idée avec les réseaux de neurones), les étapes de type Newton sont une autre option. Les nouvelles approches "à chaud" sont basées sur le gradient accéléré de Nesterov et sur l'optimisation dite "sans hesse".

Mais quelles que soient les règles de mise à jour que vous utilisez (momentum, Newton, etc.), vous travaillez toujours avec la même fonction objectif, qui est déterminée par votre fonction d'erreur (par exemple, l'erreur au carré) et d'autres contraintes (par exemple, la perte de poids). . La principale question à prendre en compte pour décider lequel d’entre eux utiliser est la rapidité avec laquelle vous obtiendrez un bon ensemble de poids.


"cela peut également faciliter l'optimisation du modèle en rendant la fonction objectif plus convexe" - pourriez-vous expliquer comment des poids plus faibles rendent cela possible?
Alex

Voici un exemple simple qui devrait illustrer ce point: si votre fonction d’objectif initiale est , il existe une infinité de minima locaux. Si vous ajoutez à la fonction d'objectif et est supérieur à environ 0,2, tous les anciens optima locaux disparaîtront et il ne vous restera qu'un minimum près de 0.sjen(X)uneX2une
David J. Harris

Bonne réponse, merci. Qu'en est-il d'Adam Optimizer? Fonctionne-t-il mieux que la combinaison de perte de poids et d’élan?
A. Piro

Adam est comme un élan, mais pas comme une perte de poids; cela affecte la façon dont vous naviguez dans la fonction objectif, mais pas la fonction objectif elle-même.
David J. Harris
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.