Déterminer le taux d'apprentissage optimal pour la descente de gradient en régression linéaire

9

Comment déterminer le taux d'apprentissage optimal pour la descente en pente? Je pense que je pourrais l'ajuster automatiquement si la fonction de coût renvoie une valeur supérieure à celle de l'itération précédente (l'algorithme ne convergera pas), mais je ne suis pas vraiment sûr de la nouvelle valeur qu'elle devrait prendre.

Valentin Radu
la source
willamette.edu/~gorr/classes/cs449/momrate.html Essai de recuit avec une forme d'adaptation de débit local: µ (t) = µ (0) / (1 + t / T); Incrémentez t lorsque le signe de l'erreur change.
Chris

Réponses:

2

(Des années plus tard) recherchez la méthode de taille de pas de Barzilai-Borwein; onmyphd.com a une belle description de 3 pages. L'auteur dit

cette approche fonctionne bien, même pour des problèmes de grande dimension

mais c'est terrible pour son applet de la fonction 2d Rosenbrock. Si quelqu'un utilise Barzilai-Borwein, veuillez commenter.

denis
la source
1

Tu es sur la bonne piste. Une approche courante consiste à doubler la taille de l'étape chaque fois que vous effectuez une descente réussie et à diviser par deux la taille de l'étape lorsque vous allez accidentellement «trop loin». Vous pouvez bien sûr évoluer d'un facteur autre que 2, mais cela ne fera généralement pas une grande différence.

Des méthodes d'optimisation plus sophistiquées accéléreront probablement un peu la convergence, mais si vous devez lancer votre propre mise à jour pour une raison quelconque, ce qui précède est joliment simple et souvent assez bon.

A dessiné
la source
Je pensais aussi à multiplier / diviser par deux. Cependant, je crains que multiplier par deux chaque fois qu'une étape réussie se produise se traduira par beaucoup plus d'itérations. J'espérais qu'il existe un moyen de le faire en utilisant le gradient, car il fournit des informations sur la pente de la pente.
Valentin Radu
Il ne me semble pas plausible que vous puissiez obtenir de telles informations à partir du dégradé. Le gradient seul ne vous dit pas à quelle distance vous êtes de l'optimum, et ce qui est plus important - comment le gradient lui-même change-t-il lorsque change. Pour cela, vous auriez besoin d'une toile de jute. x
sjm.majewski
Si vous avez affaire à un processus stationnaire sous-jacent, le taux d'apprentissage maximal est régi par le spectre de la matrice de corrélation, non?
étoile brillante