确定线性回归中梯度下降的最佳学习率


9

如何确定梯度下降的最佳学习率?我在想,如果成本函数返回的值比上一次迭代的值大(算法不会收敛),我可以自动调整它,但是我不确定是否应该采用新值。


willamette.edu/~gorr/classes/cs449/momrate.html使用局部速率自适应形式尝试退火:µ(t)= µ(0)/(1 + t / T);错误符号更改时,将t递增。
克里斯(Chris

Answers:


2

(几年后)查找Barzilai-Borwein步长法; onmyphd.com有一个漂亮的3页描述。作者说

即使对于大尺寸问题,这种方法也能很好地工作

但是对于他的2d Rosenbrock函数小程序来说,这很糟糕。如果有人使用Barzilai-Borwein,请发表评论。


1

您走在正确的轨道上。一种常见的方法是,每当您成功执行下坡步骤时,将步长加倍,而当您意外地走得“太远”时,将步长减半。当然,您可以按2以外的其他比例进行缩放,但通常不会产生太大的变化。

更复杂的优化方法可能会大大加快收敛速度​​,但是如果由于某种原因而不得不滚动自己的更新,则上述内容非常简单,通常就足够好了。


我当时也在考虑乘/除二。但是,我担心每次成功执行步骤每次乘以2都会导致更多的迭代。我希望有一种使用渐变的方法,因为它提供了有关坡度有多陡峭的一些信息。
Valentin Radu

在我看来,您可以从渐变中获取此类信息似乎并不合理。渐变本身并不能告诉您距最佳距离有多远,更重要的是-渐变本身在何时变化X变化。为此,您需要一个粗麻布的。
sjm.majewski 2012年

如果您要处理基本的平稳过程,则最大学习率取决于相关矩阵的频谱,对吗?
明亮的明星
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.