# 背景介绍
最小二乘法(英语:least squares method),又称最小平方法,是一种数学优化建模方法。它通过最小化误差的平方和(均方误差,mean square error, MSE)寻找数据的最佳函数匹配,以此可以简便的求得未知的数据。其最重要的应用是在曲线拟合上。
最小平方法通常归功于高斯(Carl Friedrich Gauss,1795),但最小平方法是由阿德里安 - 马里・勒让德(Adrien-Marie Legendre)首先发表的。
# 最小二乘法
# 问题描述
下文将以线性函数来对样本Sample 进行拟合为例,来说明最小二乘法。同时未经特别说明,文中所有的向量均为列向量(粗体)。
输入描述:m 个样本Sample={(x(1))T,y(1)),(x(2))T,y(2),⋯,(x(m))T,y(m))}. 找到一条曲线使得其可以尽可能的接近所以样本点(平均接近). 对于样本点i, y(i) 表示其函数值,x(i) 为自变量,不妨设其维度为n,即有:
x(i)=⎣⎢⎢⎢⎢⎢⎡x1(i)x2(i)⋮xn(i)⎦⎥⎥⎥⎥⎥⎤
目标函数:
fθ(x)=θ0+θ1x1+⋯+θnxn=[θ0θ1⋯θn]⎣⎢⎢⎢⎢⎡1x1⋮xn⎦⎥⎥⎥⎥⎤=θTx^(1)
对每个样本自变量添加一个维度x0, 并且所以的x0=1。即输入样本Sample^={(x^(1))T,y(1)),(x^(2))T,y(2),⋯,(x^(m))T,y(m))}
损失函数:
L(θ)=i=1∑m(fθ(x(i))−y(i))2=i=1∑m(θTx^(i)−y(i))2(2)
在损失函数最小的情况下,求解相应的参数值,即(θ0,θ1,⋯,θn)
# 代数求解法
要使得损失函数最小,分别对θj,j∈(0,1,⋯,n) 进行求导,令其偏导数为 0,即:
∂θj∂L(θ)=i=1∑m[(0⋯1⋯0)x^(i)(θTx^(i)−y(i))]=2i=1∑mxj(i)(θTx^(i)−y(i))=0(3)
即可得到一个 n+1 个关于(θ0,θ1,⋯,θn) 的方程组,联立方程组即可求解。这个方法同样也可以推广至非线性函数拟合,原理与上面一样,均是对每个参数求偏导为 0,然后联立方程组来求得参数值.
# 矩阵求解法
计算机对于方程组的求解,使用的一种技巧是矩阵求解法。对(3) 整理可得:
∂θj∂L(θ)=2(xj(1)xj(2)⋯xj(m))⎣⎢⎢⎢⎢⎡θTx^(1)−y(1)θTx^(2)−y(2)⋮θTx^(m)−y(m)⎦⎥⎥⎥⎥⎤=0j=(0,1,⋯,n)(4)
故将 n+1 个方程组联立可得:
∂θ∂L(θ)=2⎣⎢⎢⎢⎢⎢⎡x0(1)x1(1)⋮xn(1)x0(2)x1(2)⋮xn(2)⋯⋯⋱⋯x0(m)x1(m)⋮xn(m)⎦⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎡θTx^(1)−y(1)θTx^(2)−y(2)⋮θTx^(m)−y(m)⎦⎥⎥⎥⎥⎤=2XT⎣⎢⎢⎢⎢⎢⎡x0(1)x1(1)⋮xn(1)x0(2)x1(2)⋮xn(2)⋯⋯⋱⋯x0(m)x1(m)⋮xn(m)⎦⎥⎥⎥⎥⎥⎤⎝⎜⎜⎜⎜⎜⎜⎛X⎣⎢⎢⎢⎢⎡x^(1)x^(2)⋮x^(m)⎦⎥⎥⎥⎥⎤θ−⎣⎢⎢⎢⎢⎡y(1)y(2)⋮y(m)⎦⎥⎥⎥⎥⎤⎠⎟⎟⎟⎟⎟⎟⎞=2XT(Xθ−y)=0(5)
整理化简可得:XTXθ=XTy. 当XTX 可逆时,可求得:
θ=(XTX)−1XTy
# 局限性
- 如(5) 所示,使用矩阵求解法来求解时,其必须要满足上式(XTX) 可逆。如果不可逆,则无法使用最小二乘法,往往此时的解决方法可以是,使用其他优化算法来求解,比如梯度下降法。 (XTX) 不可逆存在如下特殊情况:
- 当样本数 <= 特征数时, (XTX) 必定不可逆。往往对样本数据重新整理,去掉冗余特征。若无法使得特征数小于样本数,说明拟合方程是欠定的,常用的优化方法都无法拟合数据。
- 当特征数目很多时,求解 (XTX) 的逆是一个非常耗时的工作(10000 个特征以上),往往先通过主成分分析 PCA 或者层次分析法降低特征的维度再使用最小二乘法。
# 参考文章
- 最小二乘法小结 - 刘建平 Pinard - 博客园 (cnblogs.com)
- 线性模型 - 哔哩哔哩 - 刘二大人 - bilibili
- WIKI - 维基百科 - 百科全书