请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

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

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

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2020-09-17 16:15:19

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


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


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


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 手中的铅笔 #1
    感谢老师的及时解答。关于老师的第二段话:“注意,是所有的 theta 组成了搜索空间,我们是在这个空间中做搜索。如果存在一个最优解的话,远离最优解,就意味着离所有的正确的 theta 都越来越远。”我还是有点蒙。
    
    根据目前的梯度下降公式,老师,您的意思是不是说当更新具体某一个 theta 值的时候,目前的梯度下降算法需要所有的 theta 值参与运算,因此,一个极端值出现的话就会影响整体的结果。
    回复 有任何疑惑可以回复我~ 2020-09-17 16:23:34
  • liuyubobobo 回复 提问者 手中的铅笔 #2
    对!虽然其实在这个问题里,并不是个别“极端值”的问题,而是数据尺度不一样,导致我们需要小心地选择合适的 eta,否则很容易从某个维度开始偏离,最终越来越远。解决这个问题的另一个方式是对求解出的搜索方向做归一化,只取方向,而步长完全由 eta 决定。可以参考这里:http://coding.imooc.com/learn/questiondetail/113270.html
    回复 有任何疑惑可以回复我~ 2020-09-17 16:31:14
  • 提问者 手中的铅笔 回复 liuyubobobo #3
    老师,看了您推荐的解答,有一个点还是蒙。
    
    这是您另一个解答中的一段话:“这样,每次theta的改变,不再受gradient大小的影响,gradient只提供方向,更容易靠eta控制搜索的步长。”
    
    按我的理解,特征标准化改变了特征的分布情况,使得它们整体更有规律。这和提供方向有什么联系,怎么理解?我唯一想到的是向量标准化变成单位向量,不考虑大小,只有方向。这里的标准化和向量标准化不一样吧?
    回复 有任何疑惑可以回复我~ 2020-09-17 16:52:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信