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

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

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

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


 

yayat   2018-04-05 11:15



   4个回答 
6

线性回归$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.

Zealing   2018-04-05 14:26

4

我觉得主要有两个原因。

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

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


mrhust   2018-04-13 10:26

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

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

dzzxjl   2018-04-09 15:35

0

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

viaeou   2018-04-05 19:56



  相关主题

RMSProp的直白解释   1回答

最速下降法与梯度下降法   1回答

梯度上升算法是什么?   2回答

Adam优化算法   1回答

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

随机平均梯度法(Stochasitc Average Gradient)和随机梯度下降(SGD)有什么区别   3回答

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

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

什么是Hessian矩阵和Jacobian矩阵   1回答

为什么SGD需要对特征先做归一化缩放处理?   2回答

python里用来做数值优化的库?   2回答

怎么用牛顿法近似求解根号2?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!