如何判断梯度下降法已经收敛?
① 可以进行一些自动的收敛测试,用一种算法来告诉你梯度下降算法是否已经收敛,例如,如果代价函数 J(θ) 的下降小于一个很小的值 ε ,那么认为已经收敛,比如可以选择 1e-3 。
注:选择一个合适的阈值 ε 是相当困难的。
② 为了检查梯度下降算法是否收敛,实际上还是通过看左边的这条曲线图,而不是依靠自动收敛测试 (不仅仅是通过阈值来判断测试)。
![b3818744e9bc36f5e0a4b45f3f01db29.png](https://img-blog.csdnimg.cn/img_convert/b3818744e9bc36f5e0a4b45f3f01db29.png)
③ 曲线图可以在算法没有正常工作时提前警告你。
注:例如,第一个曲线(左上角图)表示梯度下降算法没有正常工作(因为J逐渐增大),你应该使用较小的学习率 α ,第二个曲线图通常同样是需要选择较小α值 。
注:只要学习率足够小,那么每次迭代之后代价函数 J(θ) 都会下降。
注:如果代价函数没有下降,那可能以为学习率过大,这时就应该尝试一个较小的学习率。
注:如果学习率 α 太小,梯度下降算法的收敛将会很缓慢 。
Python基础积累
创建、删除文件夹
import
运行结果:
--