梯度下降--学习率

文中截图均来自Andrew Ng 视频,文字总结部分全为原创。

如何得知我们的梯度下降算法是在正常工作的

梯度下降算法收敛所需要的迭代次数根据模型的不同而不同,我们不能提前预知。一般情况下,可以画出迭代次数和代价函数的图来观测算法在何时收敛。如下图:


从图中可以看出迭代400次之后,minJ()的值基本保持不变了,因此大致在400次左右进行收敛。这样的图意味着梯度下降是正常工作的。

但是如果出现以下图,这表明梯度下降没有正常工作:


上图中表示的意思是迭代次数的增加,代价函数反而变大,导致这一现象的原因可能是学习率过大,出现了以下情况(下图是Θ与J(Θ)的关系图,横坐标是Θ)。下图所显示的就是学习率过大,导致发散。


上图出现的情况可以使用降低学习率来缓解这一问题。

判断收敛

1、大多情况下,可以从图中看出迭代多少次后J(Θ)趋于稳定,就表明此刻收敛。
2、此外,还有一些自动测试是否收敛的方法,例如将代价函数的变化值与某个阈值进行比较(例如0.001),但通常还是观察图比较好。因为很难确定那样一个阈值。
三、学习率大小的确定
通常,学习率过高可能导致发散,过小则会导致迭代次数太多。可以多次尝试一些学习率,如:0.01、0.03、0.1、0.3、1、3、10

我的博客 : https://NingSM.github.io

转载请注明原址,谢谢

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容