模拟梯度下降一课中,设置n_iters = 1e4,结果报错‘Result too large'

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

闪闪一年

2018-12-23

图片描述
图片描述
尝试把i_iters赋值为1e3可以,但是1e4就开始报错。求教波波老师。

写回答

1回答

liuyubobobo

2018-12-23

说明你的梯度下降法没有收敛,越搜索值越大,此时需要调小eta的值试试看:)


关于梯度下降法溢出的更多相关讨论,可以参考这里:https://coding.imooc.com/learn/questiondetail/69537.html 


另外一个修改方案,是每次求出的梯度,进行一下归一化处理。就是我们只取gradient的方向,而步长完全由eta负责。这样的话,这个情况也会得到缓解。具体可以参考这个问答,尤其是后续的讨论:https://coding.imooc.com/learn/questiondetail/56515.html


加油!:)

0
3
闪闪一年
回复
liuyubobobo
收到,我尝试一下
2018-12-24
共3条回复

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

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

5893 学习 · 2454 问题

查看课程