最小二乘法,是机器学习中的一个基础概念——却丝毫不影响它的重要性,本文将对其作一个详细的讲解,以便更好地掌握和利用。
1、最小二乘
最小二乘,广义上来说其实是机器学习中的平方损失函数:
L(Y,f(X))=(Y−f(X))2
L
(
Y
,
f
(
X
)
)
=
(
Y
−
f
(
X
)
)
2
对应于模型 f f 的线性和非线性之分,最小二乘也相应地分为线性最小二乘和非线性最小二乘。
我们通常所讲的“最小二乘法”,其实是狭义上的“最小二乘”,指的是在线性回归下采用平方损失函数,进行线性拟合参数求解的、矩阵形式的公式方法。
线性最小二乘有闭式解,可用最小二乘法求解,也可采用迭代法(如梯度下降)求解;非线性最小二乘没有闭式解,只能采用迭代法求解。
关于模型的线性和非线性,读者可前往阅读参考文献[2]和[3],这里我们只强调,有些所谓的非线性模型可以通过适当的变换将其化为标准的线性模型,但并非所有的非线性模型都可以线性化。
2、最小二乘法
前面做完了铺垫,这一节我们进入主题,讲一讲最小二乘法。
考虑超定方程组(超定指未知数小于方程个数):
∑j=1nXijβj=yi,i=1,2,3,…,m
∑
j
=
1
n
X
i
j
β
j
=
y
i
,
i
=
1
,
2
,
3
,
…
,
m
其中,m代表样本数,n代表参数维度,将上式向量化得到:
Xβ=y
X
β
=
y
X=⎡⎣⎢⎢⎢⎢X11X21⋮Xm1X12X22⋮Xm2⋯⋯⋯X1nX2n⋮Xmn⎤⎦⎥⎥⎥⎥,β=⎡⎣⎢⎢⎢⎢β1β2⋮βn⎤⎦⎥⎥⎥⎥,y=⎡⎣⎢⎢⎢⎢y1y2⋮ym⎤⎦⎥⎥⎥⎥
X
=
[
X
11
X
12
⋯
X
1
n
X
21
X
22
⋯
X
2
n
⋮
⋮
⋮
X
m
1
X
m
2
⋯
X
m
n
]
,
β
=
[
β
1
β
2
⋮
β
n
]
,
y
=
[
y
1
y
2
⋮
y
m
]
为了求解 β β 的最佳估计值 β̂ β ^ ,可采用最小二乘法,问题转化如下:
S(β)=||Xβ−y||
S
(
β
)
=
|
|
X
β
−
y
|
|
β̂ =argmin(S(β))
β
^
=
a
r
g
m
i
n
(
S
(
β
)
)
通过对 S(β) S ( β ) 进行微分求最值,可得:
XTXβ=XTy
X
T
X
β
=
X
T
y
如果矩阵 XTX X T X 非奇异,则 β β 有唯一解:
β̂ =(XTX)−1XTy
β
^
=
(
X
T
X
)
−
1
X
T
y
参考文献
[1] https://www.zhihu.com/question/20822481
[2] https://baike.baidu.com/item/非线性最小二乘法/2697652
[3] https://baike.baidu.com/item/非线性模型
[4] https://baike.baidu.com/item/最小二乘法/2522346?fr=aladdin
[5] https://zh.wikipedia.org/wiki/最小二乘法
以上为本文的全部参考文献,对原作者表示感谢。