在视频 10:20 的时候,为什么输出的每一个参数值都是 nan ?

来源:6-5 梯度下降法的向量化和数据标准化

手中的铅笔

2020-09-17

按照老师的意思,是因为原数据中有些特征的数值过大,导致步长乘以偏导数过大所以出现了 overflow 的现象。

但是有些特征值乘以对应的偏导数也在合理范围内,为什么它们最终也会是 nan ?

这块我理解的应该有问题,还请老师抽空解答一下:)

写回答

1回答

liuyubobobo

2020-09-17

因为步长越累越高,导致最终搜索的点,越来越远离真正的最优解。


注意,是所有的 theta 组成了搜索空间,我们是在这个空间中做搜索。如果存在一个最优解的话,远离最优解,就意味着离所有的正确的 theta 都越来越远。


如果你说是不是会有某个瞬间,不是所有的结果都是 nan,我只能说有可能,但是要找相应的数据。因为步长越来越大,大概率的,最终一个巨大的步长“压垮”了所有的特征。


继续加油!:)

0
4
liuyubobobo
回复
手中的铅笔
是的,我说的向量标准化就是指把向量化成单位向量。在我们的代码中,之所以步长会特别大,是因为计算出的 gradient 的长度会特别大,它和 eta 一起决定了步长,所以会更容易 overflow。
2020-09-18
共4条回复

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

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

5839 学习 · 2437 问题

查看课程