是否可以采用theta差接近0作为梯度下降循环结束的条件

来源:6-2 模拟实现梯度下降法

白早

2019-03-31

老师代码中采用了梯度差接近0时退出循环,我看到有的同学问能不能直接梯度接近0时退出循环,我也想知道,能不能让theta在循环中数值几乎不变作为退出条件呢,希望得到老师的解答~

写回答

1回答

liuyubobobo

2019-03-31

首先纠正一下,课程中的代码循环退出条件,不是前后梯度差接近0,而是前后损失函数对应的值的差,接近零。


我们是将theta带进损失函数,看损失函数的变化是否足够小:)

//img.mukewang.com/szimg/5ca0633b0001718a04450126.jpg


可不可以看前后两个theta的距离足够小作为循环退出条件。可以。


但是,这样不好。因为,我们实际寻找的,是损失函数的最小值。这句话的意思,就是顺着梯度下降的方向,走一小步,J变换不大,即达到谷底。但是,如果用两个theta距离足够小作为判断条件,有可能由于我们的曲线很陡,虽然两个theta距离足够小,但是,他们之间的J(theta),相差是大的:)


继续加油!:)



0
1
白早
谢谢老师!!!
2019-03-31
共1条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5839 学习 · 2437 问题

查看课程