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

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

一般有两种办法:

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

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

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

调试梯度下降

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

异常

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

的选择

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

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

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

如果α太小:收敛慢。

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

你可能感兴趣的:(2018-12-06梯度下降 - 学习率)