线性回归有精确的解析解为什么还要用梯度下降得到数值解?

  统计/机器学习 数值计算 最优化 回归分析    浏览次数:7861        分享
3

学完了SGD才突然想起来,线性回归明明是有解析解的,而且是精确的。

既然有精确的解析解,为什么还要用梯度下降得到数值解呢?


 

yayat   2018-04-05 11:15



   4个回答 
9

线性回归$y=Xw+\epsilon$其中$X$是输入,$y$是输出,$w$是未知参数,$\epsilon$是噪声。所谓的解析解就是最小二乘法($w=argmin_w|Xw-y|^2$)意义下的对$X$的pseudoinverse $w=(X^TX)^{-1}X^Ty$.这有个前提是$X$和$y$服从联合正态分布。如果$X$和$y$不是联合正态分布,那么这个解析解就不是精确的。实际中X和y的分布有可能不知道或者太复杂,不能化简一步得到解析解,所以还是要靠SGD之类的循环算法去逼近最优解。

加一个blog https://wiseodd.github.io/techblog/2017/01/05/bayesian-regression/

还可以去看Murphy, Kevin P. Machine learning: a probabilistic perspective.

--------------------

1.如果X中含有非独立的变量,$rank(\Sigma_{XX})=rank(X^TX)<d$,d是X维度,则$X^TX$不可逆。此时最小二乘无解。

2.如果X中的变量非常相关,$X^TX$的condition number很大,$(X^TX)^{-1}$中误差会被放大,而且会非常大。GD不用求$X^TX$的逆,所以结果比较可信。

SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2018-04-05 14:26

9

我觉得主要有两个原因。

第一个原因:速度快。这个当然是最主要的原因之一了。Zealing的回答里已经提到了,精确解是需要求矩阵乘积和矩阵逆的,这个计算量是比较恐怖的。SGD比这个快多了。

第二个原因:SGD是线上算法(online)。有新数据进入的时候,不需要重新计算,而精确的矩阵求解是做不到线上算法的。


SofaSofa数据科学社区DS面试题库 DS面经

mrhust   2018-04-13 10:26

我觉得online是个很大的优势 - okayguy   2018-04-25 11:31
2

之前好像在某本书里看到“当训练集特征维度数较大或者样本数过多时,使用GD应该可以提高训练的速度”,不知是不是这样。

SofaSofa数据科学社区DS面试题库 DS面经

dzzxjl   2018-04-09 15:35

0

复杂模型拟合的高阶连续函数应该都是非线性的吧

SofaSofa数据科学社区DS面试题库 DS面经

viaeou   2018-04-05 19:56



  相关讨论

优化算法中的“带冲量”是什么意思?

Newton–Raphson和牛顿法区别?

随机梯度下降(sgd)的收敛问题

学习率不当会导致sgd不收敛吗?

为什么梯度的反方向是函数下降最快的方向?

对于小批量随机剃度下降法(mini-batch SGD),如何选择每批样本的数量?

牛顿法到底是一阶优化算法还是二阶优化算法?

用SGD时陷入局部最优解的解决方法

nesterov’s momentum和momentum的区别?

RMSProp的直白解释

  随便看看

为什么矩阵的二范数和向量的二范数的定义不同?

什么是混淆矩阵(confusion matrix)

线性回归需要满足哪些基本前提假设

seaborn.distplot直方图的y轴的数值是什么意思?

tf.placeholder(tf.float32, shape=(None, 1024))中的None是什么意思