最小二乘法和梯度下降法有哪些区别?

https://www.zhihu.com/question/20822481

最小二乘法的目标:求误差的最小平方和,对应有两种:线性和非线性。线性最小二乘的解是closed-form即x=(A^T A)^{-1}A^Tb,而非线性最小二乘没有closed-form,通常用迭代法求解。

迭代法,即在每一步update未知量逐渐逼近解,可以用于各种各样的问题(包括最小二乘),比如求的不是误差的最小平方和而是最小立方和。

梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。高斯-牛顿法是另一种经常用于求解非线性最小二乘的迭代法(一定程度上可视为标准非线性最小二乘求解方法)。

还有一种叫做Levenberg-Marquardt的迭代法用于求解非线性最小二乘问题,就结合了梯度下降和高斯-牛顿法。

所以如果把最小二乘看做是优化问题的话,那么梯度下降是求解方法的一种,x=(A^T A)^{-1}A^Tb是求解线性最小二乘的一种,高斯-牛顿法和Levenberg-Marquardt则能用于求解非线性最小二乘。

具体可参考维基百科(Least squares, Gradient descent, Gauss-Newton algorithm, Levenberg-Marquardt algorithm

作者:知乎用户
链接:https://www.zhihu.com/question/20822481/answer/23648885
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

作者:佳礼
链接:https://www.zhihu.com/question/20822481/answer/37362968
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

 通常我们所说的狭义的最小二乘,指的是在线性回归下采用最小二乘准则(或者说叫做最小平方),进行线性拟合参数求解的、矩阵形式的公式方法。所以,这里的「最小二乘法」应叫做「最小二乘算法」或者「最小二乘方法」,百度百科「最小二乘法」词条中对应的英文为「The least square method」。

  这里,基于线性回归,有两个细节比较重要:

  第一,线性回归的模型假设,这是最小二乘方法的优越性前提,否则不能推出最小二乘是最佳(即方差最小)的无偏估计,具体请参考高斯-马尔科夫定理。特别地,当随机噪声服从正态分布时,最小二乘与最大似然等价。

  第二,由于是线性回归/拟合,因此可以很容易的求出全局最优的闭式解close form solution,也即我们通常看到的那几个矩阵形式,给了input data可以一步到位算拟合参数,而不是像梯度下降法或者牛顿法那样一点点地迭代优化调参最后到达极值点。

  而广义的最小二乘,指的是上文提到过的最小二乘准则,本质上是一种evaluation rule或者说objective funcion,这里的「最小二乘法」应叫做「最小二乘法则」或者「最小二乘准则」,英文可呼为LSE(least square error)

  举个例子,我要优化一个深度神经网络DNN(Deep neural network)的网络参数(换言之,优化此网络对于已知数据拟合结果的正确性),可不可以用最小二乘准则去衡量某一拟合结果相对于标准答案的偏差程度呢?可以。而同时,由于DNN模型本身的复杂性,我们没有办法像线性拟合时那样,在理论和公式的层面求出一个close form solution,因此需要引入所谓的BP算法(实质上就是梯度下降法)进行参数的迭代求解。

  But(^_^),上面虽然给出了最小二乘准则+梯度下降法串联使用的例子,但实际的拟合效果必定会比较一般,原因在于DNN这一体系相当于非线性回归,因此最小二乘不好,反而是logistic回归+最大似然=交叉熵准则Cross Entropy在DNN参数优化算法中的更有效和广泛一些。当然,这就是另一个话题了。



综上:
  狭义的最小二乘方法,是线性假设下的一种有闭式解的参数求解方法,最终结果为全局最优;
  梯度下降法,是假设条件更为广泛(无约束)的,一种通过迭代更新来逐步进行的参数优化方法,最终结果为局部最优;
  广义的最小二乘准则,是一种对于偏差程度的评估准则,与上两者不同。
 

  水平所限,欢迎讨论指正。

猜你喜欢

转载自blog.csdn.net/HappinessSourceL/article/details/82659712