多项式:
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
θ
1
θ
2
⋯
θ
n
]
T
\theta = [θ0θ1θ2⋯θn]
A
i
=
[
1
x
i
x
i
2
⋯
x
i
m
]
A_i=[1xix2i⋯xmi]
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}
令
令
令
A
=
[
A
1
A
2
A
3
⋮
A
m
]
A=[A1A2A3⋮Am]
b
=
[
b
1
b
2
b
3
⋮
b
m
]
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=[a1a2a3⋯an]
考虑 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在[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}
⇒
[
a
1
T
a
2
T
a
3
T
⋮
a
n
T
]
(
b
−
A
θ
~
)
=
[
0
0
0
⋮
0
]
\Rarr [aT1aT2aT3⋮aTn]
⇒
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