请稍等 ...
×

采纳答案成功!

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

梯度下降求得的参数过大

阿斯蒂芬图片描述
big_reg1._theta为通过正规方程解求得的参数,与true_theta差的很多。。big_reg2的参数也没有完全拟合

正在回答

3回答

可以参考这里:https://coding.imooc.com/learn/questiondetail/69537.html


因为是高位数据,所以可能遭遇位数灾难:

1)尝试正规化数据;

2)尝试减小eta;

3)尝试使用随机梯度下降法


另外,再具体实现上,课程代码的这句话:theta = theta - eta * gradient

每一次,都把gradient进行一下归一化,效果会更好。(虽然数据整体的正规化就能很好解决这个问题)。这样,每次theta的改变,不再受gradient大小的影响,gradient只提供方向,更容易靠eta控制搜索的步长。印象里我有几个问答在说这个问题,但是搜索了一圈没有找到><


继续加油!:)

2 回复 有任何疑惑可以回复我~
  • 提问者 慕桂英雄 #1
    老师给力!
    回复 有任何疑惑可以回复我~ 2019-04-15 23:05:26
能豆子 2019-09-23 16:25:17

今天我也遇到相同的问题,但是@慕桂英雄 同学貌似问错了问题,求出参数过大的恰恰不是梯度下降法,而是正规方程解法。

老师不是说正规方程解可以求出正确解,而不需要进行数据归一化处理吗?

怎么正规方程解解出的解反而更让人觉得是错误的呢?


我转念再看,是不是因为m=1000,n=5000,待求参数的个数已经大于数据行数,从线性代数的角度来看,如果这是一个m行,n个参数的非齐次方程,m<n, 这是个没有唯一解的方程。

瞎猜的,不知道有没有关系,麻烦bobo老师再次答疑!

1 回复 有任何疑惑可以回复我~
  • 赞!我当时回答这个问题的时候,没有注意到他用的数据维度远大于样本数。你的思考是对的。大概率的,正规解的结果并非“错误”,而是由于约束太少,使得满足约束的解的可能性太多。正规解方程只能按照最小二成的方式找到其中一个,这一个解不一定是你想要的。这本身也是维数灾难的体现:)
    回复 有任何疑惑可以回复我~ 2019-09-23 21:25:40
  • (1)理解正规解方法是如何选出的解 这重要吗
    (2)对于样本数m<参数个数n,容易发生过拟合。sklearn中正规解是不是考虑过这样的情况呢(他认为梯度下降法所求的情况可能过拟合了)
    回复 有任何疑惑可以回复我~ 2019-11-15 12:52:55
能豆子 2019-09-27 07:56:25

终于在网上找到为什么正规方程解求得的解过大的原因了。


在特征数目n大于样本数目m的情况下,求得的解不是过大,实际上是无法求解。

在正规方程解的公式中,

https://img1.sycdn.imooc.com//szimg/5d8d4edf0925f57201640049.jpg

当n>m的时候,https://img1.sycdn.imooc.com//szimg/5d8d4f5a095b861a00470026.jpg是不可逆的奇异矩阵,无法求逆,因此无法通过正规方程解的方法求解。


造成不可逆的另一个通常的原因是有冗余特征: 有两个特征之间存在着一定联系,比如一个特殊X1单位是米,另一个特征X2单位是千米,但表示的是同一个特征,这时候这两个特征之间存在着关系X1=X2。 根据线性代数的知识, 线性相关的矩阵不可逆的。


0 回复 有任何疑惑可以回复我~
  • 大赞!感谢分享:)
    回复 有任何疑惑可以回复我~ 2019-09-27 08:08:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信