最小二乘(Least Square)与多项式拟合(fitted polynomial)的理解
多项式:
f
(
x
i
)
=
θ
0
+
θ
1
x
i
+
θ
2
x
i
2
+
⋯
+
θ
n
x
i
n
f(x_i)=\theta_0+\theta_1x_i+\theta_2{x_i}^2+\cdots+{\theta_n}{x_i}^n
f(xi)=θ0+θ1xi+θ2xi2+⋯+θnxin
存在样本:
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
,
(
x
m
,
y
m
)
(x_1,y_1),(x_2,y_2),\cdots,(x_m,y_m)
(x1,y1),(x2,y2),⋯,(xm,ym)
样本值代入多项式得方程组:
{
θ
0
+
θ
1
x
1
+
θ
2
x
1
2
+
⋯
+
θ
n
x
1
n
=
y
1
θ
0
+
θ
1
x
2
+
θ
2
x
2
2
+
⋯
+
θ
n
x
2
n
=
y
2
⋮
θ
0
+
θ
1
x
m
+
θ
2
x
m
2
+
⋯
+
θ
n
x
m
n
=
y
m
\begin{dcases} \theta_0 + \theta_1x_1+\theta_2{x_1}^2+\cdots+\theta_n{x_1}^n=y_1 \\ \theta_0 + \theta_1x_2+\theta_2{x_2}^2+\cdots+\theta_n{x_2}^n=y_2 \\ \vdots \\ \theta_0 + \theta_1x_m+\theta_2{x_m}^2+\cdots+\theta_n{x_m}^n=y_m \end{dcases}
⎩
⎨
⎧θ0+θ1x1+θ2x12+⋯+θnx1n=y1θ0+θ1x2+θ2x22+⋯+θnx2n=y2⋮θ0+θ1xm+θ2xm2+⋯+θnxmn=ym
令
令
令
θ
=
[
θ
0
θ
1
θ
2
⋯
θ
n
]
T
\theta = \begin{bmatrix} \theta_0 & \theta_1 & \theta_2 & \cdots & \theta_n \end{bmatrix}^T
θ=[θ0θ1θ2⋯θn]T
A
i
=
[
1
x
i
x
i
2
⋯
x
i
m
]
A_i=\begin{bmatrix} 1 & x_i & x_i^2 & \cdots & x_i^m \end{bmatrix}
Ai=[1xixi2⋯xim]
b
i
=
y
i
b_i=y_i
bi=yi
i
=
1
,
⋯
,
m
i=1,\cdots,m
i=1,⋯,m
则方程组变换为:
则方程组变换为:
则方程组变换为:
{
A
1
θ
=
b
1
A
2
θ
=
b
2
⋮
A
m
θ
=
b
m
\begin{dcases} A_1\theta=b_1 \\ A_2\theta=b_2 \\ \vdots \\ A_m\theta=b_m \\ \end{dcases}
⎩
⎨
⎧A1θ=b1A2θ=b2⋮Amθ=bm
令
令
令
A
=
[
A
1
A
2
A
3
⋮
A
m
]
A=\begin{bmatrix} A_1 \\ A_2 \\ A_3 \\ \vdots \\ A_m \end{bmatrix}
A=⎣
⎡A1A2A3⋮Am⎦
⎤
b
=
[
b
1
b
2
b
3
⋮
b
m
]
b=\begin{bmatrix} b_1 \\ b_2 \\ b_3 \\ \vdots \\ b_m \end{bmatrix}
b=⎣
⎡b1b2b3⋮bm⎦
⎤
方程组变换为矩阵方程式:
A
θ
=
b
A\theta=b
Aθ=b
A
=
[
a
1
a
2
a
3
⋯
a
n
]
=
[
1
x
1
x
1
2
⋯
x
1
n
1
x
2
x
2
2
⋯
x
2
n
⋮
⋮
⋮
⋱
⋮
1
x
m
x
m
2
⋯
x
m
n
]
,
θ
=
[
θ
0
θ
1
θ
2
⋮
θ
n
]
,
b
=
[
y
0
y
1
y
2
⋮
y
m
]
A=\begin{bmatrix} a_1 & a_2 & a_3 & \cdots & a_n \end{bmatrix} =\begin{bmatrix} 1 & x_1 & x_1^2 & \cdots & x_1^n \\ 1 & x_2 & x_2^2 & \cdots & x_2^n \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_m & x_m^2 & \cdots & x_m^n \\ \end{bmatrix}, \theta=\begin{bmatrix} \theta_0 \\ \theta_1 \\ \theta_2 \\ \vdots \\ \theta_n \end{bmatrix}, b=\begin{bmatrix} y_0 \\ y_1 \\ y_2 \\ \vdots \\ y_m \end{bmatrix}
A=[a1a2a3⋯an]=⎣
⎡11⋮1x1x2⋮xmx12x22⋮xm2⋯⋯⋱⋯x1nx2n⋮xmn⎦
⎤,θ=⎣
⎡θ0θ1θ2⋮θn⎦
⎤,b=⎣
⎡y0y1y2⋮ym⎦
⎤
考虑 A θ = b 无解,需要从 A 的列空间中找出最接近 b 的向量 p ( p 可以理解为 b 在 A 的列空间中的投影,理解如下图所示:) 考虑A\theta=b无解,需要从A的列空间中找出最接近b的向量p(p可以理解为b在A的列空间中的投影,理解如下图所示:) 考虑Aθ=b无解,需要从A的列空间中找出最接近b的向量p(p可以理解为b在A的列空间中的投影,理解如下图所示:)
如上图所示,
p
是
b
在
[
a
1
a
2
]
列空间中的投影。
如上图所示,p是b在\begin{bmatrix} a_1 & a_2 \end{bmatrix} 列空间中的投影。
如上图所示,p是b在[a1a2]列空间中的投影。
令
e
=
b
−
p
,最小二乘就是找到
∥
e
∥
2
最小的点,最小二乘就是指向量长度的最小平方。
令e=b-p,最小二乘就是找到\parallel e \parallel^2最小的点,最小二乘就是指向量长度的最小平方。
令e=b−p,最小二乘就是找到∥e∥2最小的点,最小二乘就是指向量长度的最小平方。
由上可知,
p
位于
A
的列空间中,即
p
是
A
的各列的线性组合:
由上可知,p位于A的列空间中,即p是A的各列的线性组合:
由上可知,p位于A的列空间中,即p是A的各列的线性组合:
p
=
a
1
θ
1
~
+
a
2
θ
2
~
+
⋯
+
a
n
θ
n
~
p=a_1\tilde{\theta_1} + a_2\tilde{\theta_2} + \cdots + a_n\tilde{\theta_n}
p=a1θ1~+a2θ2~+⋯+anθn~
即
A
θ
~
=
p
有解。
即A\tilde{\theta}=p有解。
即Aθ~=p有解。
e
=
b
−
p
=
b
−
A
θ
~
e=b-p=b-A\tilde{\theta}
e=b−p=b−Aθ~
e
正交于
A
的列空间,存在:
e正交于A的列空间,存在:
e正交于A的列空间,存在:
e
⊥
a
1
,
e
⊥
a
2
,
⋯
,
e
⊥
a
n
e \perp a_1,e \perp a_2,\cdots,e \perp a_n
e⊥a1,e⊥a2,⋯,e⊥an
⇒ { a 1 T ( b − A θ ~ ) = 0 a 2 T ( b − A θ ~ ) = 0 ⋮ a n T ( b − A θ ~ ) = 0 \Rarr \begin{dcases} a_1^T(b-A\tilde{\theta})=0 \\ a_2^T(b-A\tilde{\theta})=0 \\ \vdots \\ a_n^T(b-A\tilde{\theta})=0 \end{dcases} ⇒⎩ ⎨ ⎧a1T(b−Aθ~)=0a2T(b−Aθ~)=0⋮anT(b−Aθ~)=0
⇒ [ a 1 T a 2 T a 3 T ⋮ a n T ] ( b − A θ ~ ) = [ 0 0 0 ⋮ 0 ] \Rarr \begin{bmatrix} a_1^T \\ a_2^T \\ a_3^T \\ \vdots \\ a_n^T \end{bmatrix} (b-A\tilde{\theta})= \begin{bmatrix} 0 \\ 0 \\ 0 \\ \vdots \\ 0 \end{bmatrix} ⇒⎣ ⎡a1Ta2Ta3T⋮anT⎦ ⎤(b−Aθ~)=⎣ ⎡000⋮0⎦ ⎤
⇒
A
T
(
b
−
A
θ
~
)
=
0
\Rarr A^T(b-A\tilde{\theta})=0
⇒AT(b−Aθ~)=0
⇒
A
T
A
θ
~
=
A
T
b
\Rarr A^TA\tilde{\theta}=A^Tb
⇒ATAθ~=ATb
⇒
θ
~
=
(
A
T
A
)
−
1
A
T
b
\Rarr \tilde{\theta}=(A^TA)^{-1}A^Tb
⇒θ~=(ATA)−1ATb
上述式子是
矩阵法
求解推导公式。
上述式子是\fcolorbox{red}{aqua}{矩阵法}求解推导公式。
上述式子是矩阵法求解推导公式。
此外还有
正规方程法
,
householderQr 分解法
,
bdcSvd分解法
。
此外还有\fcolorbox{red}{aqua}{正规方程法},\fcolorbox{red}{aqua}{householderQr 分解法},\fcolorbox{red}{aqua}{bdcSvd分解法}。
此外还有正规方程法,householderQr 分解法,bdcSvd分解法。
针对最小二乘几个方法的应用情况:
Eigen 官网在 Solving linear least squares systems 章节中讨论了 SVD 分解、QR 分解和正规方程(即使用 LDLT 解法)三种方法在求解线性最小二乘问题上的差异,并指出:SVD 分解通常精度最高但速度最慢,正规方程速度最快但精度最差,QR 分解性能介于两种方法之间。相比 SVD 分解和 QR 分解,当矩阵 病态时,正规方程解法所得结果将损失两倍精度。
参考:
1、https://zhuanlan.zhihu.com/p/268884807