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

慕桂英雄
2019-04-10
阿斯蒂芬
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控制搜索的步长。印象里我有几个问答在说这个问题,但是搜索了一圈没有找到><
继续加油!:)
212019-04-15 -
能豆子
2019-09-23
今天我也遇到相同的问题,但是@慕桂英雄 同学貌似问错了问题,求出参数过大的恰恰不是梯度下降法,而是正规方程解法。
老师不是说正规方程解可以求出正确解,而不需要进行数据归一化处理吗?
怎么正规方程解解出的解反而更让人觉得是错误的呢?
我转念再看,是不是因为m=1000,n=5000,待求参数的个数已经大于数据行数,从线性代数的角度来看,如果这是一个m行,n个参数的非齐次方程,m<n, 这是个没有唯一解的方程。
瞎猜的,不知道有没有关系,麻烦bobo老师再次答疑!
122019-11-15 -
能豆子
2019-09-27
终于在网上找到为什么正规方程解求得的解过大的原因了。
在特征数目n大于样本数目m的情况下,求得的解不是过大,实际上是无法求解。
在正规方程解的公式中,
当n>m的时候,
是不可逆的奇异矩阵,无法求逆,因此无法通过正规方程解的方法求解。
造成不可逆的另一个通常的原因是有冗余特征: 有两个特征之间存在着一定联系,比如一个特殊X1单位是米,另一个特征X2单位是千米,但表示的是同一个特征,这时候这两个特征之间存在着关系X1=X2。 根据线性代数的知识, 线性相关的矩阵不可逆的。
012019-09-27
相似问题