早在19世纪,勒让德就认为让"误差的平方和最小"估计出来的模型是最接近真实情形的。
按照勒让德的最佳原则,于是就是求:
L=i=1∑n(yi−f(xi))2
这个目标函数取得最小值时的函数参数,这就是最小二乘法的思想想,所谓"二乘"就是平方的意思。从这里我们可以看到,最小二乘法其实
就是用来做函数拟合的一种思想。
至于怎么求出具体的参数那就是另外一个问题了,理论上可以用导数法、几何法,工程上可以用梯度下降法。下面以最常用的线性回归为
例进行推导和理解。
在机器学习中用于回归问题的损失函数(Loss Function)是均方误差(MSE):
L=2n1i=1∑n(yi−f(xi))2
其实就是多了个1/2n。
线性回归因为比较简单,可以直接推导出解析解,而且许多非线性的问题也可以转化为线性问题来解决,所以得到了广泛的应用。甚至许多人认为最小二乘法指的就是线性回归,其实并不是,最小二乘法就是一种思想,它可以拟合任意函数,线性回归只是其中一个比较简单而且也很常用的函数,所以讲最小二乘法基本都会以它为例。
下面我会先用矩阵法进行推导,然后再用几何法来帮助你理解最小二乘法的几何意义。
设计矩阵 X (维度为n×(p+1)):包含所有样本的特征信息,第一列是全为 1 的常数列,代表截距项β0 ,其余列为各个特征的值。
X=⎣⎡11⋮1x11x21⋮xn1x12x22⋮xn2……⋱…x1px2p⋮xnp⎦⎤
回归系数向量 β (维度为(p+1)×1):包含所有的回归系数(包括截距项)。
β=⎣⎡β0β1β2⋮βp⎦⎤
观测值向量y(维度为n×1):包含所有样本的目标值。
y=⎣⎡y0y1y2⋮yp⎦⎤
线性回归的模型可以简化为:
y=Xβ+ϵ
其中ϵ是误差向量。
为了估计β,我们通常使用 最小二乘法 来最小化残差平方和,即:
βmin∣∣y−Xβ∣∣2
这里的∣⋅∣表示Frobenius 范数或F-范数,是一种矩阵范数。
矩阵A的Frobenius范数定义为矩阵A各项元素的绝对值平方的总和,即 :
$$
||A||F = \sqrt{\sum{i,j} |a_{ij}|^2}
$$
这里aij是矩阵 中第i行,第j列的元素。下标2可以省略,所以可以直接写成∣∣A∣∣。
因为y−Xβ其实是一个列向量,所以它的F-范数的平方就是行向量乘以列向量,我们可以得到:
∣∣A∣∣2=ATA
所以误差函数可以表示为:
∣∣y−Xβ∣∣2=(y−Xβ)T(y−Xβ)
展开后得到:
(y−Xβ)T(y−Xβ)=yTy−yTXβ−(Xβ)Ty+(Xβ)TXβ
然后得到:
(y−Xβ)T(y−Xβ)=yTy−yTXβ−βTXTy+βTXTXβ
这里yTXβ和βTXTy 都是1×1的标量,对于标量,有aT=a,因此βTXTy=(βTXTy)T=yTXβ
合并同类项:
(y−Xβ)T(y−Xβ)=yTy−2βTXTy+βTXTXβ
我们有Q函数
Q(β)=yTy−2βTXTy+βTXTXβ
,我们可以通过对其求导来找到minβ,这里涉及到了矩阵微积分
∂β∂Q(β)=2XTXβ−2XTy
令∂β∂Q(β)=0可得:
XTXβ=XTy
假设XTX是满秩的,因为(XTX)−1存在,解得:
β=(XTX)−1XTy
参考: