最小二乘法,左逆,投影矩阵
矩阵
A
A
A 是列满秩矩阵时,高斯消元法可以求得方程
A
x
=
b
A\mathbf{x}=\mathbf{b}
A x = b 的解,但该方法有个致命缺点,往往没有解!根据前章结论:列满秩矩阵
A
m
n
A_{mn}
A m n ,高斯消元法变换为
L
m
m
A
=
[
U
n
n
O
m
−
n
,
n
]
L_{mm}A = \left[ \begin{matrix} U_{nn} \\ \mathbf{O}_{m-n,n} \end{matrix} \right]
L m m A = [ U n n O m − n , n ] ,
L
m
m
L_{mm}
L m m 是
m
m
m 阶单位下三角阵。
对向量
b
\mathbf{b}
b ,如果
L
m
m
b
=
[
b
′
0
]
L_{mm}\mathbf{b}=\left[ \begin{matrix} \mathbf{b'} \\ \mathbf{0} \end{matrix} \right]
L m m b = [ b ′ 0 ] ,即后
m
−
n
m-n
m − n 个分量都为
0
0
0 ,则方程
A
m
n
x
=
b
A_{mn}\mathbf{x}=\mathbf{b}
A m n x = b 有唯一解;只要后
m
−
n
m-n
m − n 个分量有一个不为
0
0
0 ,或者很接近
0
0
0 ,则方程无解。方程要保证后
m
−
n
m-n
m − n 个分量都为
0
0
0 ,几乎不可能,所以方程往往无解。实际中,又需要找到方程最优近似解即最小二乘解。我们举个例子,更容易理解。
假设要测量圆的直径
D
D
D ,测量了
m
m
m 次,每次测量值为
d
i
d_i
d i 。据此可以列出方程
D
=
d
i
,
i
∈
[
1
,
m
]
D = d_i,i \in [ 1,m]
D = d i , i ∈ [ 1 , m ]
写成矩阵形式为
[
1
1
⋮
1
]
D
=
[
d
1
d
2
⋮
d
m
]
\left[ \begin{matrix} 1 \\ 1 \\ \vdots \\ 1 \end{matrix} \right] D = \left[ \begin{matrix} d_1 \\ d_2 \\ \vdots \\ d_m \end{matrix} \right]
⎣ ⎢ ⎢ ⎢ ⎡ 1 1 ⋮ 1 ⎦ ⎥ ⎥ ⎥ ⎤ D = ⎣ ⎢ ⎢ ⎢ ⎡ d 1 d 2 ⋮ d m ⎦ ⎥ ⎥ ⎥ ⎤
即
A
=
[
1
1
⋮
1
]
A=\left[ \begin{matrix} 1 \\ 1 \\ \vdots \\ 1 \end{matrix} \right]
A = ⎣ ⎢ ⎢ ⎢ ⎡ 1 1 ⋮ 1 ⎦ ⎥ ⎥ ⎥ ⎤ ,
b
=
[
d
1
d
2
⋮
d
m
]
\mathbf{b}=\left[ \begin{matrix} d_1 \\ d_2 \\ \vdots \\ d_m \end{matrix} \right]
b = ⎣ ⎢ ⎢ ⎢ ⎡ d 1 d 2 ⋮ d m ⎦ ⎥ ⎥ ⎥ ⎤ 。
对增广矩阵进行高斯消元,可以发现只要
d
i
d_i
d i 不是完全一样,则方程无解!如果
d
i
d_i
d i 完全一样,则解存在且唯一
D
=
d
i
D = d_i
D = d i ,但由于
d
i
d_i
d i 完全一样,则只相当测量了一次。实际测量中,由于无处不在的误差,测量值即使很接近,但不可能完全一致,故方程无解。常识又告诉我们,应该多次测量取平均值作为直径的最优估计值,即
D
=
∑
i
d
i
/
m
D = \sum_i d_i /m
D = ∑ i d i / m 。
假设车辆做匀加速直线运动
s
=
s
0
+
v
0
t
+
1
/
2
a
t
2
s = s_0 + v_0t + 1/2at^2
s = s 0 + v 0 t + 1 / 2 a t 2 ,我们需要获得加速度,可以测量不同时刻的位移
(
t
i
,
s
i
)
(t_i, s_i)
( t i , s i ) ,即
t
i
t_i
t i 时刻的速度为
s
i
s_i
s i ,测量了
m
m
m 个数据,则得到方程
s
0
+
v
0
t
+
1
/
2
a
t
i
2
=
s
i
,
i
∈
[
1
,
m
]
s_0 + v_0t + 1/2at^2_i = s_i ,i \in [ 1,m]
s 0 + v 0 t + 1 / 2 a t i 2 = s i , i ∈ [ 1 , m ]
写成矩阵形式为
[
1
1
⋮
1
]
s
0
+
[
t
1
t
2
⋮
t
m
]
v
0
+
[
t
1
2
t
2
2
⋮
t
m
2
]
1
/
2
a
=
[
s
1
s
2
⋮
s
m
]
\left[ \begin{matrix} 1 \\ 1 \\ \vdots \\ 1 \end{matrix} \right] s_0 + \left[ \begin{matrix} t_1 \\ t_2 \\ \vdots \\ t_m \end{matrix} \right] v_0+ \left[ \begin{matrix} t^2_1 \\ t^2_2 \\ \vdots \\ t^2_m \end{matrix} \right] 1/2a= \left[ \begin{matrix} s_1 \\ s_2 \\ \vdots \\ s_m \end{matrix} \right]
⎣ ⎢ ⎢ ⎢ ⎡ 1 1 ⋮ 1 ⎦ ⎥ ⎥ ⎥ ⎤ s 0 + ⎣ ⎢ ⎢ ⎢ ⎡ t 1 t 2 ⋮ t m ⎦ ⎥ ⎥ ⎥ ⎤ v 0 + ⎣ ⎢ ⎢ ⎢ ⎡ t 1 2 t 2 2 ⋮ t m 2 ⎦ ⎥ ⎥ ⎥ ⎤ 1 / 2 a = ⎣ ⎢ ⎢ ⎢ ⎡ s 1 s 2 ⋮ s m ⎦ ⎥ ⎥ ⎥ ⎤
即
A
=
[
1
t
1
t
1
2
1
t
2
t
2
2
⋮
1
t
m
t
m
2
]
A=\left[ \begin{matrix} 1 & t_1& t^2_1\\ 1 & t_2& t^2_2 \\ \vdots \\ 1 & t_m& t^2_m \end{matrix} \right]
A = ⎣ ⎢ ⎢ ⎢ ⎡ 1 1 ⋮ 1 t 1 t 2 t m t 1 2 t 2 2 t m 2 ⎦ ⎥ ⎥ ⎥ ⎤ ,
b
=
[
s
1
s
2
⋮
s
m
]
\mathbf{b}=\left[ \begin{matrix} s_1 \\ s_2 \\ \vdots \\ s_m \end{matrix} \right]
b = ⎣ ⎢ ⎢ ⎢ ⎡ s 1 s 2 ⋮ s m ⎦ ⎥ ⎥ ⎥ ⎤ ,
x
=
[
s
0
v
0
1
/
2
a
]
\mathbf{x} = \left[ \begin{matrix} s_0 \\v_0 \\ 1/2a \end{matrix} \right]
x = ⎣ ⎡ s 0 v 0 1 / 2 a ⎦ ⎤ ,
A
x
=
b
A\mathbf{x} = \mathbf{b}
A x = b 。
对增广矩阵进行高斯消元,实际测量中,由于无处不在的误差,只有进行三次测量,方程才存在解且唯一,测量超过三次,则无解!但常识又告诉我们,多次测量可以达到对测量误差取平均效果,精度会更高。
实际中有大量类似的例子,为了获得某些量的真实值,需要进行测量,然后根据测量值获得真实值的最优估计值。方程
A
m
n
x
n
=
b
m
A_{mn}\mathbf{x}_n=\mathbf{b}_m
A m n x n = b m 表示共进行了
m
m
m 次测量,每次测量构成一个子方程。我们希望用第
i
i
i 次测量值
a
r
i
\mathbf{a}_{ri}
a r i 线性拟合
b
i
b_{i}
b i ,拟合系数为
x
n
\mathbf{x}_n
x n ,拟合偏差尽可能小,所以也称为线性拟合或线性回归。每次测量值
(
a
r
i
,
b
i
)
(\mathbf{a}_{ri},b_i)
( a r i , b i ) 也称为测量点或简称点。
由于测量误差,为了提高精度,需要多次测量,理论上是测量次数趋于无穷时,最优估计值无限接近真实值。根据方程理论,当测量次数多于需要估计的量时,由于测量误差,方程一般是矛盾方程,无解!怎么解决这个矛盾呢?伟大的最小二乘法就是解决这个问题的,由于测量误差,不应该寻找表面上的精确解,而是寻找最优近似解。
这章内容和第一章的投影密切相关,故希望读者熟悉投影。方程
A
x
=
b
A\mathbf{x} = \mathbf{b}
A x = b ,因为向量
b
\mathbf{b}
b 不位于矩阵
A
A
A 的列空间,所以不存在精确解。令向量
b
\mathbf{b}
b 向矩阵
A
A
A 列空间的投影向量为
b
p
\mathbf{b}_p
b p ,则方程
A
x
=
b
p
A\mathbf{x} = \mathbf{b}_p
A x = b p 有唯一精确解,这个精确解就是方程
A
x
=
b
A\mathbf{x} = \mathbf{b}
A x = b 最优近似解,为了区分,我们记最优近似解为
x
^
\mathbf{\hat{x}}
x ^ 。根据投影性质,向量
b
−
b
p
\mathbf{b}-\mathbf{b}_p
b − b p 是垂直于矩阵
A
A
A 列空间,所以垂直于矩阵
A
A
A 列向量组
A
T
(
b
−
b
p
)
=
0
A^T(\mathbf{b}-\mathbf{b}_p) = \mathbf{0}
A T ( b − b p ) = 0
将
A
x
^
=
b
p
A\mathbf{\hat{x}} = \mathbf{b}_p
A x ^ = b p 代入上式,得
A
T
(
b
−
A
x
^
)
=
0
A^T(\mathbf{b}-A\mathbf{\hat{x}}) = \mathbf{0}
A T ( b − A x ^ ) = 0 即
A
T
A
x
^
=
A
T
b
A^TA\mathbf{\hat{x}} = A^T\mathbf{b}
A T A x ^ = A T b
因为
r
a
n
k
A
T
A
=
r
a
n
k
A
=
n
rank A^TA = rank A = n
r a n k A T A = r a n k A = n ,
A
T
A
A^TA
A T A 是
n
n
n 阶方阵,故
A
T
A
A^TA
A T A 可逆,得到最优近似解,即最小二乘解
x
^
=
(
A
T
A
)
−
1
A
T
b
\mathbf{\hat{x}} = (A^TA)^{-1}A^T\mathbf{b}
x ^ = ( A T A ) − 1 A T b
读者可以按该公式自行推导测量直径的例子,会发现最小二乘解就是测量的平均值。测量加速度的例子读者也可以自行推导,本书从略。
令
A
L
−
1
=
(
A
T
A
)
−
1
A
T
A^{-1}_L = (A^TA)^{-1}A^T
A L − 1 = ( A T A ) − 1 A T ,可以发现
A
L
−
1
A
=
E
n
A^{-1}_LA=E_n
A L − 1 A = E n ,称
A
L
−
1
A^{-1}_L
A L − 1 是
A
A
A 的左逆,其尺寸为
n
×
m
n \times m
n × m 。
定义 左逆 对于列满秩矩阵
A
m
n
A_{mn}
A m n ,如果存在矩阵
B
n
m
B_{nm}
B n m ,使
B
A
=
E
n
BA=E_n
B A = E n 成立,则称
B
B
B 是
A
A
A 的左逆,
A
L
−
1
=
(
A
T
A
)
−
1
A
T
A^{-1}_L=(A^TA)^{-1}A^T
A L − 1 = ( A T A ) − 1 A T 是其中一个左逆。
特别强调下,左逆不唯一,证明如下:假设
B
n
m
B_{nm}
B n m 是任意矩阵,如果
(
A
L
−
1
+
B
)
A
=
E
(A^{-1}_L+B)A=E
( A L − 1 + B ) A = E 成立,则
(
A
L
−
1
+
B
)
(A^{-1}_L+B)
( A L − 1 + B ) 是左逆,因为
A
L
−
1
A
=
E
A^{-1}_LA=E
A L − 1 A = E ,则只需
B
A
=
O
BA=\mathbf{O}
B A = O ,根据第三章内容,矩阵
A
A
A 行向量组是相关组,故矩阵
B
B
B 行向量组只要位于矩阵
A
A
A 左零空间,则
B
A
=
O
BA=\mathbf{O}
B A = O ,故有无穷多左逆。如果不特别强调,我们称左逆,都是特指矩阵
A
L
−
1
=
(
A
T
A
)
−
1
A
T
A^{-1}_L=(A^TA)^{-1}A^T
A L − 1 = ( A T A ) − 1 A T 。
代入
A
x
^
=
b
p
A\mathbf{\hat{x}} = \mathbf{b}_p
A x ^ = b p ,可以得到投影向量
b
p
=
A
(
A
T
A
)
−
1
A
T
b
=
A
A
L
−
1
b
=
P
b
\mathbf{b}_p = A(A^TA)^{-1}A^T\mathbf{b}=AA^{-1}_L\mathbf{b}=P\mathbf{b}
b p = A ( A T A ) − 1 A T b = A A L − 1 b = P b
矩阵
P
=
A
A
L
−
1
=
A
(
A
T
A
)
−
1
A
T
P = AA^{-1}_L=A(A^TA)^{-1}A^T
P = A A L − 1 = A ( A T A ) − 1 A T 是投影矩阵,即对任意向量
b
\mathbf{b}
b ,向量
P
b
P\mathbf{b}
P b 是向量
b
\mathbf{b}
b 向矩阵
A
A
A 列空间的投影向量
b
p
\mathbf{b}_p
b p ,投影矩阵尺寸是
m
×
m
m \times m
m × m 。
投影矩阵是幂等矩阵,即满足
P
2
=
P
P^2=P
P 2 = P ,读者可自行验证。其背后的几何意义更重要,对任意向量
b
\mathbf{b}
b ,
b
p
=
P
b
\mathbf{b}_p=P\mathbf{b}
b p = P b 是投影向量, 那么
P
b
p
P\mathbf{b}_p
P b p 是什么呢?因为
b
p
\mathbf{b}_p
b p 已经位于 矩阵
A
A
A 列空间,投影后还是位于列空间,故向量不变,所以
P
b
p
=
b
p
P\mathbf{b}_p=\mathbf{b}_p
P b p = b p ,则
P
2
b
=
P
b
P^2\mathbf{b}=P\mathbf{b}
P 2 b = P b 对任意向量
b
\mathbf{b}
b 均成立,故
P
2
=
P
P^2=P
P 2 = P 。投影矩阵是对称矩阵
P
T
=
P
P^T=P
P T = P 。
关于投影矩阵,有两点说明,第一投影矩阵不可逆,如果可逆,
P
2
=
P
P^2=P
P 2 = P 左乘逆矩阵,得
P
=
E
P=E
P = E ,投影矩阵一般都不是单位阵,当然单位阵是投影矩阵。第二投影矩阵唯一,证明如下:假设
B
n
m
B_{nm}
B n m 是任意矩阵,如果
A
(
A
L
−
1
+
B
)
=
P
A(A^{-1}_L+B)=P
A ( A L − 1 + B ) = P 是投影矩阵,则只需
A
B
=
O
AB=\mathbf{O}
A B = O ,根据第三章内容,矩阵
A
A
A 列向量组是无关组,故矩阵
B
B
B 是零矩阵。
综上,列满秩矩阵
A
A
A ,左逆不唯一,
E
=
A
L
−
1
A
E = A^{-1}_LA
E = A L − 1 A ,
A
L
−
1
A^{-1}_L
A L − 1 是一个左逆;投影矩阵
P
=
A
A
L
−
1
P = AA^{-1}_L
P = A A L − 1 唯一,且 $ A^{-1}_LA \ne AA^{-1}_L$ 。与可逆矩阵对比,
A
−
1
A
=
A
A
−
1
A^{-1}A = AA^{-1}
A − 1 A = A A − 1 ,逆矩阵
A
−
1
A^{-1}
A − 1 唯一,它们差别很大。