梯度下降和最小二乘法的区别

最小二乘法跟梯度下降法都是通过求导来求损失函数的最小值,那它们有什么区别呢。

   相同

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

\bigtriangleup =\frac{1}{2}\sum_{i=1}^{m}(f\beta (\bar{x_{i})}-y_{i})^{2}

其中 \bar{x_{_{i}}}为第i组数据的independent variable, \bar{_{y_{i}}}为第i组数据的dependent variable,\beta为系数向量。

 不同

  实现方法和结果不同:最小二乘法是直接对\Delta求导找出全局最小,是非迭代法而梯度下降法是一种迭代法,先给定一个\beta,然后向\Delta下降最快的方向调整\beta

在若干次迭代之后找到局部最小。梯度下降法的缺点是到最小点的时候收敛速度变慢,并且对初始点的选择极为敏感,其改进大多是在这两方面下功夫。

 机器学习中不使用第一种方法的原因主要是因为涉及方阵求逆——矩阵求逆的复杂度是O(N^3),其中,N为特征数目。次要原因是因为如果特征数目大于样本数目,则方阵是奇异矩阵,逆不存在(——这其实常常通过惩罚因子来解决)

你可能感兴趣的:(梯度下降和最小二乘法的区别)