最小二乘法,是机器学习中的一个基础概念——却丝毫不影响它的重要性,本文将对其作一个详细的讲解,以便更好地掌握和利用。


1、最小二乘

最小二乘,广义上来说其实是机器学习中的平方损失函数:

L(Y,f(X))=(Y-f(X))^2

对应于模型 f 的线性和非线性之分,最小二乘也相应地分为线性最小二乘和非线性最小二乘。

我们通常所讲的「最小二乘法」,其实是狭义上的「最小二乘」,指的是在线性回归下采用平方损失函数,进行线性拟合参数求解的、矩阵形式的公式方法。

线性最小二乘有闭式解,可用最小二乘法求解,也可采用迭代法(如梯度下降)求解;非线性最小二乘没有闭式解,只能采用迭代法求解。

关于模型 f 的线性和非线性,读者可前往阅读参考文献[2]和[3],这里我们只强调,有些所谓的非线性模型可以通过适当的变换将其化为标准的线性模型,但并非所有的非线性模型都可以线性化。

2、最小二乘法

前面做完了铺垫,这一节我们进入主题,讲一讲最小二乘法。

考虑超定方程组(超定指未知数小于方程个数):

sum_{j=1}^{n}X_{ij}eta_j=y_i,i=1,2,3,dots,m

其中, m 代表样本数, n 代表参数维度,将上式向量化得到:

Xeta=y

X=egin{bmatrix} X_{11}&X_{12}&cdots & X_{1n}      \ X_{21}&X_{22}&cdots & X_{2n}      \ vdots & vdots & &vdots \ X_{m1}&X_{m2}&cdots & X_{mn}  end{bmatrix},eta=egin{bmatrix} eta_1 \ eta_2 \ vdots \ eta_n end{bmatrix},y=egin{bmatrix} y_1 \ y_2 \ vdots \ y_m end{bmatrix}

为了求解 eta 的最佳估计值 hat eta ,可采用最小二乘法,问题转化如下:

S(eta)=||Xeta-y||

hat eta = arg min(S(eta))

通过对 S(eta) 进行微分求最值,可得:

X^{T}Xeta=X^{T}y

如果矩阵 X^{T}X 非奇异,则 eta 有唯一解:

hat eta=(X^{T}X)^{-1}X^{T}y


参考文献

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

[2] 非线性最小二乘法_百度百科

[3] 非线性模型_百度百科

[4] 最小二乘法_百度百科

[5] https://zh.wikipedia.org/wiki/最小二乘法

以上为本文的全部参考文献,对原作者表示感谢。


我的足迹

  • CSDN
  • GitHub

推荐阅读:

相关文章