2018-12-06梯度下降 - 学习率

如何选择学习率\alpha 以确保梯度下降工作正常?

一般有两种办法:

调试梯度下降。 在x轴上绘制具有迭代次数的图。 绘制成本函数,J(θ)超过梯度下降的迭代次数。 如果J(θ)增加,那么你可能需要减少α。

自动收敛测试。 如果J(θ)在一次迭代中减小小于E,则声明收敛,其中E是一些小值,例如[数学处理误差]。 但是在实践中很难选择这个阈值。E的确定比较困难。

度下降的工作是为你找到\alpha 的值,希望最小化成本函数J(\theta )。 因此,将成本函数J绘制为梯度下降运行。 x轴是梯度下降的迭代次数,随着梯度下降运行。

调试梯度下降

具体来说,红点位置是在100次迭代中运行梯度下降。 无论我在100次迭代后得到的是什么值,我都会在100次迭代后获得一些θ值。 对于\theta 的值,我在100次迭代后获得,并且该垂直高度是J(\theta )的值。 这个图表显示的是它是在每次迭代渐变之后显示成本函数的值。 如果梯度正常工作,那么J(\theta )应该在每次迭代后减少。在这里进行400次迭代,看起来梯度下降或多或少会收敛,因为成本函数不会下降得多。 所以看这个数字也可以帮助你判断梯度下降是否已经收敛。

\alpha 异常

J的异常变化通常是\alpha 的原因,但是不排除代码的错误。

\alpha 的选择

数学家已经表明,如果学习率α足够小,那么J(\theta )应该减少每一个迭代。 所以如果没有发生这可能意味着\alpha 太大了,你应该把它设置得更小。 但是,当然,您也不希望您的学习率太小,因为如果您这样做,那么梯度下降可能会很慢收敛。

尝试一系列的值,直到找到一个太小的值,并确保我找到一个太大的值。 然后尝试选择最大可能值,或者只是略小于我发现的最大合理值。

如果学习率α足够小,则J(θ)将在每次迭代时减小。

如果α太小:收敛慢。

如果α太大:可能不会在每次迭代时减少,因此可能不会收敛。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容