最近在看梯度下降的时候,也了解到了最小二乘法,其中遇到了一些困惑,主要有关于最小二乘法与梯度下降之间的异同。

最小二乘法

根据维基百科,最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配,可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。

最小二乘法所针对的问题环境是“过度确定系统”,即方程组比未知数更多的问题,然后用回归分析求得近似解。总体思路是将残差平方和的综合最小化
举个栗子——给出四个点(1,6),(2,5),(3,7),(4,10),希望找到一条最匹配的线:\[y=\beta_1+\beta_2x\],于是列出方程组:\[\beta_1+\beta_2=6\]\[\beta_1+2\beta_2=5\]\[\beta_1+3\beta_2=7\]\[\beta_1+4\beta_2=10\]目的是使残差平方和最小,于是我们可以得到误差方程:\[S(\beta_1,\beta_2)=[6-(\beta_1+\beta_2)]^2+[5-(\beta_1+2\beta_2)]^2+[7-(\beta_1+3\beta_2)]^2+[10-(\beta_1+4\beta_2)]^2\]最小值可以通过对S()求关于两个β的偏导数,令其等于0得到解:\[\frac{\partial S}{\partial \beta_1}=8\beta_1+20\beta_2-56=0\]\[\frac{\partial S}{\partial \beta_2}=20\beta_1+60\beta_2-154=0\]很容易可以解出$$\beta_1=3.5$$$$\beta_2=1.4$$于是我们得到了最佳回归方程:\[y=3.5+1.4x\]

最小二乘问题

广义的最小二乘问题是为了求测量值和估计值之间的最小误差,并对数学模型进行优化的问题,一般可表示为:\[minf(x)=\frac{1}{2}\sum_1^m (x-\hat{x})^2\]通过求解最小二乘问题我们可以使数学模型函数更接近于实际的数据表现。
我们根据问题的复杂程度可以将最小二乘问题分为线性最小二乘问题非线性最小二乘问题

  • 线性最小二乘问题是我们可以直接写出函数表达式并对其求导,求其导数为0的点以求得极小值,再通过比较获得全局最小值,从而得到全局最优解。
  • 非线性最小二乘问题是很难直接写出目标函数的导数形式,无法直接求得,于是采用迭代的办法来不断逼近极小值,并且我们认为该极小值能(在一定范围内)代表最优解。
    非线性最小二乘问题一般使用下降法来迭代求解,每一步的迭代中分为两步:求下降方向与合理的步长。其方法主要有:线性搜索法、最速下降法、信任域法、高斯牛顿法、Levenberg-Marquardt Method等。

最小二乘法与梯度下降法的异同

相同点

  1. 本质相同:两种方法都是在给定已知数据(independent & dependent variables)的前提下对dependent variables算出出一个一般性的估值函数。然后对给定新数据的dependent variables进行估算。
  2. 目标相同:都是在已知数据的框架内,使得估算值与实际值的总平方差尽量更小(事实上未必一定要使用平方)

不同

实现方法和结果不同:最小二乘法是直接对△求导找出全局最小,是非迭代法。而梯度下降法是一种迭代法,先给定一个β,然后向△下降最快的方向调整β,在若干次迭代之后找到局部最小。梯度下降法的缺点是到最小点的时候收敛速度变慢,并且对初始点的选择极为敏感,其改进大多是在这两方面下功夫。

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

另外,在深度神经网络中,最小二乘准则与梯度下降法可以串联使用,但实际拟合效果一般,反而是logistic回归+最大似然=交叉熵准则Cross Entropy在DNN参数优化算法中的更有效和广泛一些。


Reference:
维基百科-最小二乘法
SLAM中的优化理论(二)- 非线性最小二乘
最小二乘法和梯度下降法有哪些区别?
机器学习:最小二乘法和梯度下降法
最小二乘法的本质是什么?