梯度下降法公式问题

来源:6-1 什么是梯度下降法

weixin_慕勒6286300

2022-02-26

接上个问题:https://coding.imooc.com/learn/questiondetail/r9mGB65qgVK6jaKR.html


-η为什么要乘以导数呢,像老师所说的,把-η拿掉不是一样可以吗?dθ每次以一个固定长度增减,直到dθ的导数为0就可以了

写回答

1回答

liuyubobobo

2022-02-26

η 拿掉,理论上是可以的,整个梯度下降的逻辑过程依然是 ok 的。只不过有了 η,就多了一个调节步长的超参数,可以帮助我们更好地控制整个梯度下降的过程。比如:


如果发现梯度下降的过程过慢(尝试了 1w 次迭代,还没有收敛),那么我们就可以增大 η;


如果发现梯度下降的过程不稳定(比如在两个或者多个非最优解的地方跳动,甚至损失函数越来越大),那么可能是梯度下降的过程计算出的导数对应的步长大了,用一个较小的 η 则可以让其收敛;(很多同学在更真实的数据中遇到了这个问题,在这个课程的问答区你就能找到这样的提问,解决方式就是减小 η)


甚至一些改动的梯度下降法,这个 η 可以不断变化,比如随着迭代次数的增加逐渐变小,因为搜索前期可以步子大一些,而搜索后期越来越趋于收敛,则步子小一些,这样做可以帮助我们在速度和精度上做一个平衡;(这个例子课程后续你会看到)


所有的这些,都可以靠引入这养一个参数以后,靠调节这个参数完成。


===========


这就是工程和理论不一样的地方。


举一个或许不算恰当的例子。我们完全可以不给汽车设计油门,只要有前进档和倒挡就好了。前进档的时候前进,有上坡自动加点儿油,能把坡走上去;下坡的时候自动给点儿刹车,能安全平稳下坡,这是完全可以做到的。


那我们为什么还要设计一个油门?因为我们不满足于仅仅是车能“走起来”,能前进或者后退就可以。我们希望能够更多地控制车速,希望在有的路段快点儿走,在有的路段慢点儿走;有的天气快点儿走,有的天气慢点儿走;驾驶员在有些状态下车速能快点儿,有些状态下能慢点儿。我们靠油门控制“车速”这个参数,而不仅仅是让汽车能前进或者后退,才能让我们更好地使用汽车。


继续加油!:)

4
0

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

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

5839 学习 · 2437 问题

查看课程