7.4 SVD 的几何背景
一、SVD 的几何解释
SVD 将矩阵分解成三个矩阵的乘积: ( 正交矩阵 ) × ( 对角矩阵 ) × ( 正交矩阵 ) (\pmb{正交矩阵})\times(\pmb{对角矩阵})×(\pmb{正交矩阵}) (正交矩阵)×(对角矩阵)×(正交矩阵),用几何语言表述其几何背景: ( 旋转 ) × ( 伸缩 ) × ( 旋转 ) (\pmb{旋转})\times(\pmb{伸缩})\times(\pmb{旋转}) (旋转)×(伸缩)×(旋转). U Σ V T x U\Sigma V^T\boldsymbol x UΣVTx 首先旋转得到 V T x V^T\boldsymbol x VTx,然后 Σ \Sigma Σ 伸缩该向量得到 Σ V T x \Sigma V^T\boldsymbol x ΣVTx,最后矩阵 U U U 旋转得到 A x = U Σ V T x A\boldsymbol x=U\Sigma V^T\boldsymbol x Ax=UΣVTx,下面是图片:
诚然,上图仅适用于某些
2
×
2
2\times2
2×2 的矩阵,并非所有
2
×
2
2\times2
2×2 的矩阵都适用,因为
U
U
U 和
V
V
V 并不包含反射 —— 这三个矩阵的行列式都大于
0
0
0. 此处的矩阵
A
A
A 一定可逆,因为这三个矩阵均可逆:
[
a
b
c
d
]
=
[
cos
θ
−
sin
θ
sin
θ
cos
θ
]
[
σ
1
σ
2
]
[
cos
ϕ
sin
ϕ
−
sin
ϕ
cos
ϕ
]
=
U
Σ
V
T
(
7.4.1
)
\begin{bmatrix}a&b\\c&d\end{bmatrix}=\begin{bmatrix}\cos\theta&-\sin\theta\\\sin\theta&\kern 7pt\cos\theta\end{bmatrix}\begin{bmatrix}\sigma_1\\&\sigma_2\end{bmatrix}\begin{bmatrix}\kern 7pt\cos\phi&\sin\phi\\-\sin\phi&\cos\phi\end{bmatrix}=U\Sigma V^T\kern20pt(7.4.1)
[acbd]=[cosθsinθ−sinθcosθ][σ1σ2][cosϕ−sinϕsinϕcosϕ]=UΣVT(7.4.1)由矩阵
A
A
A 中的四个元素
a
,
b
,
c
,
d
a,b,c,d
a,b,c,d 得到 SVD 中的四个数
θ
,
σ
1
,
σ
2
,
ϕ
\theta,\sigma_1,\sigma_2,\phi
θ,σ1,σ2,ϕ.
由这张图导出矩阵代数中的三个重要概念:
- 矩阵范数 ∣ ∣ A ∣ ∣ ||\pmb{A}|| ∣∣A∣∣ —— 矩阵最大的增长因子.
- 极分解 A = Q S \pmb{A=QS} A=QS —— 正交矩阵 Q Q Q 乘正定矩阵 S S S.
- 伪逆 A + \pmb{A^+} A+ —— 当 A A A 不可逆时的最佳逆矩阵.
二、矩阵范数
如果要在 Figure 7.5 中选择一个关键的数字,那么就是 σ 1 \sigma_1 σ1,这个数字是任意向量 x \boldsymbol x x 的最大增长因子。观察 Figure 7.5 中左边的向量 v 1 \boldsymbol v_1 v1,可以看到它先旋转至 ( 1 , 0 ) (1,0) (1,0),然后伸缩成 ( σ 1 , 0 ) (\sigma_1,0) (σ1,0),最后再旋转至 σ 1 u 1 \sigma_1\boldsymbol u_1 σ1u1,表达式 A v 1 = σ 1 u 1 A\boldsymbol v_1=\sigma_1\boldsymbol u_1 Av1=σ1u1 就是奇异值分解,这个最大的奇异值 σ 1 \sigma_1 σ1 是矩阵 A A A 的 “范数(norm)”.
范数 ∣ ∣ A ∣ ∣ 是 ∣ ∣ A x ∣ ∣ ∣ ∣ x ∣ ∣ 的最大值, ∣ ∣ A ∣ ∣ = max x ≠ 0 ∣ ∣ A x ∣ ∣ ∣ ∣ x ∣ ∣ = σ 1 ( 7.4.2 ) 范数\, ||A||\,是\,\frac{||A\boldsymbol x||}{||\boldsymbol x||}\,的最大值,{\color{blue}||A||=\underset{\boldsymbol x\neq\boldsymbol 0}{\max}\frac{||A\boldsymbol x||}{||\boldsymbol x||}=\sigma_1}\kern 20pt(7.4.2) 范数∣∣A∣∣是∣∣x∣∣∣∣Ax∣∣的最大值,∣∣A∣∣=x=0max∣∣x∣∣∣∣Ax∣∣=σ1(7.4.2)
MATLAB 中使用
norm
(
x
)
\textrm{norm}(\boldsymbol x)
norm(x) 得到向量
x
\boldsymbol x
x 长度,使用
norm
(
x
)
\textrm{norm}(\boldsymbol x)
norm(x) 得到矩阵
A
A
A 的范数。数学符号是双竖线:
∣
∣
x
∣
∣
||\boldsymbol x||
∣∣x∣∣ 和
∣
∣
A
∣
∣
||A||
∣∣A∣∣,这里
∣
∣
x
∣
∣
||\boldsymbol x||
∣∣x∣∣ 的意思是向量的长度:
∣
∣
x
∣
∣
2
=
∣
x
1
∣
2
+
∣
x
2
∣
2
+
⋯
+
∣
x
n
∣
2
||\boldsymbol x||^2=|x_1|^2+|x_2|^2+\cdots+|x_n|^2
∣∣x∣∣2=∣x1∣2+∣x2∣2+⋯+∣xn∣2,矩阵的范数也来源于向量范数,当
x
=
v
1
\boldsymbol x=\boldsymbol v_1
x=v1 且
A
x
=
σ
1
u
1
A\boldsymbol x=\sigma_1\boldsymbol u_1
Ax=σ1u1,则
∣
∣
A
x
∣
∣
∣
∣
x
∣
∣
=
σ
1
\displaystyle\frac{||A\boldsymbol x||}{||\boldsymbol x||}=\sigma_1
∣∣x∣∣∣∣Ax∣∣=σ1,即最大的比值是
∣
∣
A
∣
∣
||A||
∣∣A∣∣.
由定义直接得到数值
norm
(
A
)
\textrm{norm}(A)
norm(A) 的两条重要性质:
三角不等式 ∣ ∣ A + B ∣ ∣ ≤ ∣ ∣ A ∣ ∣ + ∣ ∣ B ∣ ∣ 乘积不等式 ∣ ∣ A B ∣ ∣ ≤ ∣ ∣ A ∣ ∣ ∣ ∣ B ∣ ∣ ( 7.4.3 ) \pmb{三角不等式}\kern 5pt{\color{blue}||A+B||\leq||A||+||B||}\kern 20pt\pmb{乘积不等式}\kern 5pt{\color{blue}||AB||\leq||A||\,||B||}\kern 15pt(7.4.3) 三角不等式∣∣A+B∣∣≤∣∣A∣∣+∣∣B∣∣乘积不等式∣∣AB∣∣≤∣∣A∣∣∣∣B∣∣(7.4.3)
由定义(7.4.2)可知,对于任意向量
x
\boldsymbol x
x 都有
∣
∣
A
x
∣
∣
≤
∣
∣
A
∣
∣
∣
∣
x
∣
∣
||A\boldsymbol x||\leq||A||\,||\boldsymbol x||
∣∣Ax∣∣≤∣∣A∣∣∣∣x∣∣,然后再由向量的三角不等式推出矩阵的三角不等式:
对于向量
∣
∣
(
A
+
B
)
x
∣
∣
≤
∣
∣
A
x
∣
∣
+
∣
∣
B
x
∣
∣
≤
∣
∣
A
∣
∣
∣
∣
x
∣
∣
+
∣
∣
B
∣
∣
∣
∣
x
∣
∣
\pmb{对于向量}\kern 20pt||(A+B)\boldsymbol x||\le||A\boldsymbol x||+||B\boldsymbol x||\le||A||\,||\boldsymbol x||+||B||\,||\boldsymbol x||
对于向量∣∣(A+B)x∣∣≤∣∣Ax∣∣+∣∣Bx∣∣≤∣∣A∣∣∣∣x∣∣+∣∣B∣∣∣∣x∣∣然后同时除以
∣
∣
x
∣
∣
||\boldsymbol x||
∣∣x∣∣,遍历所有的
x
\boldsymbol x
x 取最大值,即得:
∣
∣
A
+
B
∣
∣
≤
∣
∣
A
∣
∣
+
∣
∣
B
∣
∣
||A+B||\le||A||+||B||
∣∣A+B∣∣≤∣∣A∣∣+∣∣B∣∣.
乘积不等式可以由
∣
∣
A
B
x
∣
∣
≤
∣
∣
A
∣
∣
∣
∣
B
x
∣
∣
≤
∣
∣
A
∣
∣
∣
∣
B
∣
∣
∣
∣
x
∣
∣
||AB\boldsymbol x||\le||A||\,||B\boldsymbol x||\le||A||\,||B||\,||\boldsymbol x||
∣∣ABx∣∣≤∣∣A∣∣∣∣Bx∣∣≤∣∣A∣∣∣∣B∣∣∣∣x∣∣ 快速得到,同样除以
∣
∣
x
∣
∣
||\boldsymbol x||
∣∣x∣∣,再遍历所有的
x
\boldsymbol x
x 取最大值,结果就是
∣
∣
A
B
∣
∣
≤
∣
∣
A
∣
∣
∣
∣
B
∣
∣
||AB||\le||A||\,||B||
∣∣AB∣∣≤∣∣A∣∣∣∣B∣∣.
【例1】秩一矩阵
A
=
u
v
T
A=\boldsymbol u\boldsymbol v^T
A=uvT 是我们能得到的最基础的矩阵,它有一个非零的特征值
λ
1
\lambda_1
λ1 和一个非零的奇异值
σ
1
\sigma_1
σ1,此外,它的特征向量是
u
\boldsymbol u
u,左和右奇异向量是
u
\boldsymbol u
u 和
v
\boldsymbol v
v.
特征向量
A
u
=
(
u
v
T
)
u
=
u
(
v
T
u
)
=
λ
1
u
所以
λ
1
=
v
T
u
奇异向量
A
T
A
v
=
(
v
u
T
)
(
u
v
T
)
v
=
v
(
u
T
u
)
(
v
T
v
)
所以
σ
1
=
∣
∣
u
∣
∣
∣
∣
v
∣
∣
\begin{array}{lll}\pmb{特征向量}&A\boldsymbol u=(\boldsymbol u\boldsymbol v^T)\boldsymbol u=\boldsymbol u(\boldsymbol v^T\boldsymbol u)=\lambda_1\boldsymbol u&所以\,\lambda_1=\boldsymbol v^T\boldsymbol u\\\\\pmb{奇异向量}&A^TA\boldsymbol v=(\boldsymbol v\boldsymbol u^T)(\boldsymbol u\boldsymbol v^T)\boldsymbol v=\boldsymbol v(\boldsymbol u^T\boldsymbol u)(\boldsymbol v^T\boldsymbol v)&所以\,\sigma_1=||\boldsymbol u||\,||\boldsymbol v||\end{array}
特征向量奇异向量Au=(uvT)u=u(vTu)=λ1uATAv=(vuT)(uvT)v=v(uTu)(vTv)所以λ1=vTu所以σ1=∣∣u∣∣∣∣v∣∣而
∣
λ
1
∣
≤
σ
1
|\lambda_1|\le\sigma_1
∣λ1∣≤σ1 正好对应施瓦茨不等式
∣
v
T
u
∣
≤
∣
∣
u
∣
∣
∣
∣
v
∣
∣
|\boldsymbol v^T\boldsymbol u|\le||\boldsymbol u||\,||\boldsymbol v||
∣vTu∣≤∣∣u∣∣∣∣v∣∣.
换个角度解释
∣
λ
1
∣
≤
σ
1
|\lambda_1|\le\sigma_1
∣λ1∣≤σ1,
A
x
=
λ
1
x
A\boldsymbol x=\lambda_1\boldsymbol x
Ax=λ1x 中的特征向量得到比值
∣
∣
A
x
∣
∣
∣
∣
x
∣
∣
=
∣
∣
λ
1
x
∣
∣
∣
∣
x
∣
∣
\displaystyle\frac{||A\boldsymbol x||}{||\boldsymbol x||}=\frac{||\lambda_1\boldsymbol x||}{||\boldsymbol x||}
∣∣x∣∣∣∣Ax∣∣=∣∣x∣∣∣∣λ1x∣∣,这个就是
∣
λ
1
∣
|\lambda_1|
∣λ1∣,最大的比值
σ
1
\sigma_1
σ1 不可能小于
∣
λ
1
∣
|\lambda_1|
∣λ1∣.
那么
∣
λ
2
∣
≤
σ
2
|\lambda_2|\le\sigma_2
∣λ2∣≤σ2 也是正确的吗?不,这个完全是错误的,实际上
2
×
2
2\times2
2×2 的矩阵有
∣
det
A
∣
=
∣
λ
1
λ
2
∣
=
σ
1
σ
2
|\det A|=|\lambda_1\lambda_2|=\sigma_1\sigma_2
∣detA∣=∣λ1λ2∣=σ1σ2,由于
∣
λ
1
∣
≤
σ
1
|\lambda_1|\le\sigma_1
∣λ1∣≤σ1 将会得到
∣
λ
2
∣
≥
∣
σ
2
∣
|\lambda_2|\ge|\sigma_2|
∣λ2∣≥∣σ2∣.
距离矩阵
A
最近的秩
k
矩阵是
A
k
=
σ
1
u
1
v
1
T
+
σ
2
u
2
v
2
T
+
⋯
+
σ
k
u
k
v
k
T
\pmb{距离矩阵\,A\,最近的秩\,k\,矩阵是\,A_k=\sigma_1\boldsymbol u_1\boldsymbol v_1^T+\sigma_2\boldsymbol u_2\boldsymbol v_2^T+\cdots+\sigma_k\boldsymbol u_k\boldsymbol v_k^T}
距离矩阵A最近的秩k矩阵是Ak=σ1u1v1T+σ2u2v2T+⋯+σkukvkT这是矩阵逼近理论中的关键结果:埃卡特-杨-米尔斯基(Eckart-Young-Mirsky)定理,其表述为
对所有的秩
k
矩阵都有:
∣
∣
A
−
B
∣
∣
≥
∣
∣
A
−
A
k
∣
∣
=
σ
k
+
1
\pmb{对所有的秩\,k\,矩阵都有:||A-B||\ge||A-A_k||=\sigma_{k+1}}
对所有的秩k矩阵都有:∣∣A−B∣∣≥∣∣A−Ak∣∣=σk+1这一结论完善了线性代数基本定理,
v
i
\boldsymbol v_i
vi 和
u
i
\boldsymbol u_i
ui 给出矩阵
A
A
A 四个基本子空间的标准正交基,前
k
k
k 个
v
i
\boldsymbol v_i
vi 和
u
i
\boldsymbol u_i
ui 和
σ
i
\sigma_i
σi 给出了
A
A
A 的最佳近似。
三、极分解 A = QS
每个复数 x + i y x+iy x+iy 都有极形式 r e i θ re^{i\theta} reiθ,即是一个数字 r ≥ 0 r\ge0 r≥0 乘上单位圆周上的数 e i θ e^{i\theta} eiθ,我们有 x + i y = r cos θ + i r sin θ = r ( cos θ + i sin θ ) = r e i θ x+iy=r\cos\theta+ir\sin\theta=r(\cos\theta+i\sin\theta)=re^{i\theta} x+iy=rcosθ+irsinθ=r(cosθ+isinθ)=reiθ. 将这些数看成 1 × 1 1\times1 1×1 的矩阵,则 e i θ e^{i\theta} eiθ 就是一个正交矩阵 Q Q Q,而 r ≥ 0 r\ge0 r≥0 是一个半正定矩阵(positive semidefinite matrix,称为 S S S),将这个思想推广到 n × n n\times n n×n 的矩阵就是极分解(polar decomposition) 的概念:正交矩阵乘半正定矩阵, A = Q S \pmb{A=QS} A=QS.
任意的实方阵都可以分解为 A = Q S \pmb{A=QS} A=QS,这里 Q Q Q 是正交矩阵, S S S 是对称半正定矩阵。如果 A A A 可逆,则 S S S 是正定矩阵。
只需要插入
V
T
V
=
I
V^TV=I
VTV=I 代入 SVD 的中间,即可得到证明:
极分解
A
=
U
Σ
V
T
=
(
U
V
T
)
(
V
Σ
V
T
)
=
(
Q
)
(
S
)
(
7.4.4
)
{\color{blue}\pmb{极分解\kern 15ptA=U\Sigma V^T=(UV^T)(V\Sigma V^T)=(Q)(S)}}\kern 20pt(7.4.4)
极分解A=UΣVT=(UVT)(VΣVT)=(Q)(S)(7.4.4)第一个因子
U
V
T
UV^T
UVT 是
Q
Q
Q,因为正交矩阵的乘积仍是正交矩阵。第二个因子
V
Σ
V
T
V\Sigma V^T
VΣVT 是
S
S
S,它是半正定矩阵,因为它的特征值在
Σ
\Sigma
Σ 中。
如果
A
A
A 可逆,则
Σ
\Sigma
Σ 和
S
S
S 都可逆。由于
S
2
=
V
Σ
2
V
T
=
A
T
A
S^2=V\Sigma^2V^T=A^TA
S2=VΣ2VT=ATA,所以
S
\pmb S
S 是
A
T
A
\pmb{A^TA}
ATA 的对称正定平方根,所以
S
S
S 的特征值就是
A
A
A 的奇异值,
S
S
S 的特征向量就是
A
A
A 的奇异向量
v
\boldsymbol v
v.
还有一种逆序的极分解
A
=
K
Q
A=KQ
A=KQ,
Q
Q
Q 是一样的,但是
K
=
U
Σ
U
T
K=U\Sigma U^T
K=UΣUT,此时
K
K
K 是
A
A
T
AA^T
AAT 的半正定平方根。
【例2】有
A
=
[
3
0
4
5
]
=
U
Σ
V
T
A=\begin{bmatrix}3&0\\4&5\end{bmatrix}=U\Sigma V^T
A=[3405]=UΣVT,求出极分解
A
=
Q
S
A=QS
A=QS 的因子
Q
Q
Q(旋转因子)和
S
S
S(伸缩矩阵)。
解:
U
=
1
10
[
1
−
3
3
1
]
Σ
=
[
45
5
]
V
=
1
2
[
1
−
1
1
1
]
Q
=
U
V
T
=
1
20
[
1
−
3
3
1
]
[
1
1
−
1
1
]
=
1
20
[
4
−
2
2
4
]
=
1
5
[
2
−
1
1
2
]
S
=
V
Σ
V
T
=
5
2
[
1
−
1
1
1
]
[
3
1
]
[
1
1
−
1
1
]
=
5
[
2
1
1
2
]
\begin{array}{l}U=\displaystyle\frac{1}{\sqrt{10}}\begin{bmatrix}1&-3\\3&\kern 7pt1\end{bmatrix}\kern 10pt\Sigma=\begin{bmatrix}\sqrt{45}\\&\sqrt5\end{bmatrix}\kern 10ptV=\frac{1}{\sqrt2}\begin{bmatrix}1&-1\\1&\kern 7pt1\end{bmatrix}\\\\Q=UV^T=\displaystyle\frac{1}{\sqrt{20}}\begin{bmatrix}1&-3\\3&\kern 7pt1\end{bmatrix}\begin{bmatrix}\kern 7pt1&1\\-1&1\end{bmatrix}=\frac{1}{\sqrt{20}}\begin{bmatrix}4&-2\\2&\kern 7pt4\end{bmatrix}=\frac{1}{\sqrt5}\begin{bmatrix}2&-1\\1&\kern 7pt2\end{bmatrix}\\\\S=V\Sigma V^T=\displaystyle\frac{\sqrt5}{2}\begin{bmatrix}1&-1\\1&\kern 7pt1\end{bmatrix}\begin{bmatrix}3\\&1\end{bmatrix}\begin{bmatrix}\kern 7pt1&1\\-1&1\end{bmatrix}=\sqrt5\begin{bmatrix}2&1\\1&2\end{bmatrix}\end{array}
U=101[13−31]Σ=[455]V=21[11−11]Q=UVT=201[13−31][1−111]=201[42−24]=51[21−12]S=VΣVT=25[11−11][31][1−111]=5[2112]则
A
=
Q
S
\pmb{A=QS}
A=QS.
在力学中,极分解将旋转(在
Q
Q
Q 中)和伸缩(在
S
S
S 中)分开了。在 Figure 7.5 中,
S
S
S 的特征值得到伸缩因子,特征向量给出了伸缩方向(椭圆的主轴);正交矩阵
Q
Q
Q 包含了旋转矩阵
U
U
U 和
V
T
V^T
VT。
关于旋转的一个事实:
Q
=
U
V
T
Q=UV^T
Q=UVT 是最接近
A
A
A 的正交矩阵,这个
Q
Q
Q 使得范数
∣
∣
Q
−
A
∣
∣
||Q-A||
∣∣Q−A∣∣ 尽可能的小。与此相对应的是
e
i
θ
e^{i\theta}
eiθ 是单位圆周上最接近
r
e
i
θ
re^{i\theta}
reiθ 最近的点。
SVD 告诉我们关于最近的奇异矩阵更重要的事实:
最接近 A A A 的奇异矩阵 A 0 A_0 A0 就是将它最小的奇异值 σ min \sigma_{\min} σmin 置零。
所以
σ
min
\sigma_{\min}
σmin 是度量
A
A
A 到奇异矩阵的距离,对于例
2
2
2 中的矩阵,这个距离是
σ
min
=
5
\sigma_{\min}=\sqrt5
σmin=5,如果将
σ
min
\sigma_{\min}
σmin 置零,就是踢除
A
=
σ
1
u
1
v
1
T
+
σ
2
u
2
v
2
T
A=\sigma_1\boldsymbol u_1\boldsymbol v_1^T+\sigma_2\boldsymbol u_2\boldsymbol v_2^T
A=σ1u1v1T+σ2u2v2T 中的最后(最小的)一项,那么就只有一个秩一(奇异)矩阵
σ
1
u
1
v
1
T
\sigma_1\boldsymbol u_1\boldsymbol v_1^T
σ1u1v1T 会剩下来:最接近
A
A
A. 这个最小的变化范数是
σ
2
=
5
\sigma_2=\sqrt5
σ2=5(比
3
3
3 小)。
在计算机实践中,经常会踢掉一些非常小的
σ
\sigma
σ,处理奇异矩阵要比处理这些趋近于零矩阵的部分而且无法注意到的要更好。
四、伪逆 A + A^+ A+
通过选择一组好基,
A
A
A 乘行空间中的
v
i
\boldsymbol v_i
vi 得到列空间中的
σ
i
u
i
\sigma_i\boldsymbol u_i
σiui,
A
−
1
A^{-1}
A−1 对应的是相反的操作,如果
A
v
=
σ
u
A\boldsymbol v=\sigma\boldsymbol u
Av=σu,则
A
−
1
u
=
v
σ
A^{-1}\boldsymbol u=\displaystyle\frac{\boldsymbol v}{\sigma}
A−1u=σv,
A
−
1
A^{-1}
A−1 的奇异值是
1
σ
\displaystyle\frac{1}{\sigma}
σ1,就像
A
−
1
A^{-1}
A−1 的特征值是
1
λ
\displaystyle\frac{1}{\lambda}
λ1. 基被反转后,
u
\boldsymbol u
u 在
A
−
1
A^{-1}
A−1 的行空间,
v
\boldsymbol v
v 在
A
−
1
A^{-1}
A−1 的列空间。
到这里我们一般都会加上如果
A
−
1
A^{-1}
A−1 存在这样的条件,但是这里不用,一个乘
u
i
\boldsymbol u_i
ui 得到
v
i
σ
i
\displaystyle\frac{\boldsymbol v_i}{\sigma_i}
σivi 的矩阵一定存在,它就是伪逆
A
+
A^{+}
A+:
A
的伪逆
A
+
=
V
Σ
+
U
T
=
[
v
1
⋯
v
r
⋯
v
n
]
[
σ
1
−
1
⋱
σ
r
−
1
]
[
u
1
⋯
u
r
⋯
u
n
]
T
n
×
n
n
×
m
m
×
m
\begin{array}{l}\pmb{A\,的伪逆}\\{\color{blue}A^+=V\Sigma^+U^T}&=\begin{bmatrix}\\\boldsymbol v_1&\cdots&\boldsymbol v_r&\cdots&\boldsymbol v_n\\\,\end{bmatrix}\begin{bmatrix}\sigma_1^{-1}\\&\ddots\\&&\sigma_r^{-1}\end{bmatrix}\begin{bmatrix}\\\boldsymbol u_1&\cdots&\boldsymbol u_r&\cdots&\boldsymbol u_n\\\,\end{bmatrix}^T\\&n\times n\kern 80ptn\times m\kern 80ptm\times m\end{array}
A的伪逆A+=VΣ+UT=
v1⋯vr⋯vn
σ1−1⋱σr−1
u1⋯ur⋯un
Tn×nn×mm×m伪逆(pseudoinverse)
A
+
A^{+}
A+ 是一个
n
×
m
n\times m
n×m 的矩阵,如果
A
−
1
A^{-1}
A−1 存在,则
A
+
A^+
A+ 和
A
−
1
A^{-1}
A−1 一样,在
m
=
n
=
r
m=n=r
m=n=r 这种情况下,
U
Σ
V
T
U\Sigma V^T
UΣVT 的逆就是
V
Σ
−
1
U
T
V\Sigma^{-1}U^T
VΣ−1UT. 如果
r
<
m
r<m
r<m 或
r
<
n
r<n
r<n,我们就需要新的符号
A
+
A^+
A+,此时虽然
A
A
A 没有双边逆矩阵(左逆和右逆),但是它有一个有相同秩的伪逆
A
+
A^+
A+:
对于
i
≤
r
:
A
+
u
i
=
1
σ
i
v
i
对于
i
>
r
:
A
+
u
i
=
0
\color{blue}对于\,i\le r:A^+\boldsymbol u_i=\frac{1}{\sigma_i}\boldsymbol v_i\kern 15pt对于\,i>r:A^+\boldsymbol u_i=\boldsymbol 0
对于i≤r:A+ui=σi1vi对于i>r:A+ui=0
A
A
A 列空间中的向量
u
1
,
u
2
,
⋯
u
r
\boldsymbol u_1,\boldsymbol u_2,\cdots\,\boldsymbol u_r
u1,u2,⋯ur 可以回到行空间中的向量
v
1
,
v
2
,
⋯
,
v
r
\boldsymbol v_1,\boldsymbol v_2,\cdots,\boldsymbol v_r
v1,v2,⋯,vr,其余的向量
u
r
+
1
,
u
r
+
2
,
⋯
,
u
m
\boldsymbol u_{r+1},\boldsymbol u_{r+2},\cdots,\boldsymbol u_m
ur+1,ur+2,⋯,um 在左零空间,
A
+
A^+
A+ 将它们映射为零向量。当我们知道了这些全部基向量如何变化,也就知道了
A
+
A^+
A+.
注意对角矩阵
Σ
\Sigma
Σ 的伪逆,
Σ
\Sigma
Σ 中的每个
σ
\sigma
σ 对应
Σ
+
\Sigma^+
Σ+ 中的
σ
−
1
\sigma^{-1}
σ−1,乘积
Σ
+
Σ
\Sigma^+\Sigma
Σ+Σ 是一个很接近单位矩阵的矩阵,它是一个投影矩阵,它包含子矩阵
I
I
I,其余的都是零。我们可以对每个
σ
\sigma
σ 求逆,但是对零行和零列什么也做不了。下例中
σ
1
=
2
,
σ
2
=
3
\sigma_1=2,\sigma_2=3
σ1=2,σ2=3:
Σ
+
Σ
=
[
1
/
2
0
0
0
1
/
3
0
0
0
0
]
[
2
0
0
0
3
0
0
0
0
]
=
[
1
0
0
0
1
0
0
0
0
]
=
[
I
0
0
0
]
\Sigma^+\Sigma=\begin{bmatrix}\pmb{1/2}&0&0\\0&\pmb{1/3}&0\\0&0&\pmb0\end{bmatrix}\begin{bmatrix}\pmb2&0&0\\0&\pmb3&0\\0&0&\pmb0\end{bmatrix}=\begin{bmatrix}\pmb1&0&0\\0&\pmb1&0\\0&0&\pmb0\end{bmatrix}=\begin{bmatrix}\pmb I&0\\0&\pmb0\end{bmatrix}
Σ+Σ=
1/20001/30000
200030000
=
100010000
=[I000]伪逆
A
+
A^+
A+ 是一个
n
×
m
n\times m
n×m 的矩阵,它使得
A
A
+
AA^+
AA+ 和
A
+
A
A^+A
A+A 成为投影矩阵。
对比 A A − 1 = A − 1 A = I A A + = 到 A 列空间上的投影矩阵 A + A = 到 A 行空间上的投影矩阵 \begin{array}{l}\pmb{对比}\\AA^{-1}=A^{-1}A=I\end{array}\kern 16pt\color{blue}\begin{array}{l}AA^+=到\,A\,列空间上的投影矩阵\\A^+A=到\,A\,行空间上的投影矩阵\end{array} 对比AA−1=A−1A=IAA+=到A列空间上的投影矩阵A+A=到A行空间上的投影矩阵
注:Figure 7.6 中 A + A = [ I 0 0 0 ] A^+A=\begin{bmatrix}I&0\\0&0\end{bmatrix} A+A=[I000] 是在 SVD 正交基(右奇异向量)的表示,其几何意义是保留行空间的分量,将零空间分量归零。
【例3】每个秩一矩阵都是一个行向量乘一个列向量。取单位向量 u \boldsymbol u u 和 v \boldsymbol v v,则 A = σ u v T A=\sigma\boldsymbol u\boldsymbol v^T A=σuvT,它的伪逆是 A + = v u T σ A^+=\displaystyle\frac{\boldsymbol v\boldsymbol u^T}{\sigma} A+=σvuT,乘积 A A + AA^+ AA+ 是 u u T \boldsymbol u\boldsymbol u^T uuT,就是到过向量 u \boldsymbol u u 的直线上的投影。乘积 A + A A^+A A+A 是 v v T \boldsymbol v\boldsymbol v^T vvT.
【例4】求 A = [ 1 1 1 1 ] A=\begin{bmatrix}1&1\\1&1\end{bmatrix} A=[1111] 的伪逆。这个矩阵不可逆,它的秩为 1 1 1,唯一的奇异值是 σ 1 = 2 \sigma_1=2 σ1=2,伪逆的奇异值就是 σ 1 \sigma_1 σ1 的倒数,它在秩一的 Σ + \Sigma^+ Σ+ 中: A + = V Σ + U T = 1 2 [ 1 1 1 − 1 ] [ 1 / 2 0 0 0 ] 1 2 [ 1 1 1 − 1 ] = 1 4 [ 1 1 1 1 ] A^+=V\Sigma^+U^T=\frac{1}{\sqrt2}\begin{bmatrix}1&\kern 7pt1\\1&-1\end{bmatrix}\begin{bmatrix}1/2&0\\0&0\end{bmatrix}\frac{1}{\sqrt2}\begin{bmatrix}1&\kern 7pt1\\1&-1\end{bmatrix}=\pmb{\frac{1}{4}\begin{bmatrix}1&1\\1&1\end{bmatrix}} A+=VΣ+UT=21[111−1][1/2000]21[111−1]=41[1111] A + A^+ A+ 的秩也为 1 1 1,它的列空间是 A A A 的行空间。
五、列线性相关矩阵的最小二乘解
如果矩阵
A
=
[
1
1
1
1
]
A=\begin{bmatrix}1&1\\1&1\end{bmatrix}
A=[1111],它的四个元素全为
1
1
1,不满足列线性无关的要求。这个矩阵可能由我们在时刻
t
=
1
t=1
t=1 的两次测量结果得到,最优直线过测量值
1
1
1 和
3
3
3 的中点,但是无法确定最优直线的斜率。
用矩阵语言表达,
A
T
A
A^TA
ATA 是奇异的,方程
A
T
A
x
=
A
T
b
A^TA\boldsymbol x=A^T\boldsymbol b
ATAx=ATb 有无穷多个解。伪逆给出了一种选择 “最优解” 的一种方法
x
+
=
A
+
b
\boldsymbol x^+=A^+\boldsymbol b
x+=A+b.
先写出无解的方程
A
x
=
b
A\boldsymbol x=\boldsymbol b
Ax=b 和无穷多个解的方程
A
T
A
x
^
=
A
T
b
A^TA\hat{\boldsymbol x}=A^T\boldsymbol b
ATAx^=ATb:
A
x
=
[
1
1
1
1
]
[
x
1
x
2
]
=
[
3
1
]
=
b
A
T
A
x
^
=
[
2
2
2
2
]
[
x
^
1
x
^
2
]
=
[
4
4
]
=
A
T
b
A\boldsymbol x=\begin{bmatrix}1&1\\1&1\end{bmatrix}\begin{bmatrix}x_1\\x_2\end{bmatrix}=\begin{bmatrix}3\\1\end{bmatrix}=\boldsymbol b\kern 17ptA^TA\hat{\boldsymbol x}=\begin{bmatrix}2&2\\2&2\end{bmatrix}\begin{bmatrix}\hat x_1\\\hat x_2\end{bmatrix}=\begin{bmatrix}4\\4\end{bmatrix}=A^T\boldsymbol b
Ax=[1111][x1x2]=[31]=bATAx^=[2222][x^1x^2]=[44]=ATb任意向量
x
^
=
(
1
+
c
,
1
−
c
)
\hat x=(1+c,1-c)
x^=(1+c,1−c) 都是正规方程组(normal equations)
A
T
A
x
^
=
b
A^TA\hat{\boldsymbol x}=\boldsymbol b
ATAx^=b 的解,伪逆的目的就是选择一个解
x
^
=
x
+
\hat{\boldsymbol x}=\boldsymbol x^+
x^=x+.
x + = A + b = ( 1 , 1 ) 是 A T A x ^ = A T b 和 A x ^ = p 的最短解 \color{blue}\boldsymbol x^+=A^+\boldsymbol b=(1,1)\,是\,A^TA\hat{\boldsymbol x}=A^T\boldsymbol b\,和\,A\hat{\boldsymbol x}=\boldsymbol p\, 的最短解 x+=A+b=(1,1)是ATAx^=ATb和Ax^=p的最短解
可以看出
x
+
=
(
1
,
1
)
\boldsymbol x^+=(1,1)
x+=(1,1)(这里是斜率和截距)比其它的任何解
x
^
=
(
1
+
c
,
1
−
c
)
\hat{\boldsymbol x}=(1+c,1-c)
x^=(1+c,1−c) 都短,
x
^
\hat{\boldsymbol x}
x^ 长度的平方是
(
1
+
c
)
2
+
(
1
−
c
)
2
=
2
+
2
c
2
(1+c)^2+(1-c)^2=2+2c^2
(1+c)2+(1−c)2=2+2c2,最短的选择就是
c
=
0
c=0
c=0,此时给出了
A
A
A 行空间的解
x
+
=
(
1
,
1
)
\boldsymbol x^+=(1,1)
x+=(1,1).
A
+
A^+
A+ 的几何意义:由
A
A
A 的列空间得到行空间,这两个空间都是
r
r
r 维的,左零空间中的误差向量
e
\boldsymbol e
e 映射为零向量。
伪逆
A
+
A^+
A+ 和最优解
x
+
\boldsymbol x^+
x+ 在统计学中非常关键,因为实验得到的矩阵通常列向量和行向量都是线性相关的。
六、主要内容总结
- 向量 A x A\boldsymbol x Ax 所形成椭圆的对称轴沿奇异向量 u i \boldsymbol u_i ui 的方向。
- 矩阵范数 ∣ ∣ A ∣ ∣ = σ 1 ||A||=\sigma_1 ∣∣A∣∣=σ1 源自向量的长度: ∣ ∣ A x ∣ ∣ ∣ ∣ x ∣ ∣ \displaystyle\frac{||A\boldsymbol x||}{||\boldsymbol x||} ∣∣x∣∣∣∣Ax∣∣ 的最大值。
- 可逆矩阵 = (正交矩阵)(正定矩阵): A = Q S A=QS A=QS.
- 任意矩阵 A = U Σ V T A=U\Sigma V^T A=UΣVT 都有伪逆 A + = V Σ + U T A^+=V\Sigma^+U^T A+=VΣ+UT,它将左零空间 N ( A T ) \pmb N(A^T) N(AT) 映射为零空间 Z \pmb Z Z.
七、例题
【例5】如果
m
×
n
m\times n
m×n 的矩阵
A
A
A 的秩为
n
n
n,即列满秩,则它有左逆(left inverse)
L
=
(
A
T
A
)
−
1
A
T
L=(A^TA)^{-1}A^T
L=(ATA)−1AT,由这个矩阵
L
L
L 可得
L
A
=
I
\pmb{LA=I}
LA=I,解释为什么这种情况下伪逆
A
+
=
L
\pmb{A^+=L}
A+=L.
如果
A
A
A 的秩为
m
m
m,即行满秩,则它有右逆(right inverse)
R
=
A
T
(
A
A
T
)
−
1
R=A^T(AA^T)^{-1}
R=AT(AAT)−1,由这个矩阵
R
R
R 可得
A
R
=
I
\pmb{AR=I}
AR=I,解释为什么这种情况想伪逆
A
+
=
R
\pmb{A^+=R}
A+=R.
求
A
1
A_1
A1 的
L
L
L 和
A
2
A_2
A2 的
R
R
R,并分别求出矩阵
A
1
,
A
2
,
A
3
A_1,A_2,A_3
A1,A2,A3 的伪逆:
A
1
=
[
2
2
]
A
2
=
[
2
2
]
A
3
=
[
2
2
1
1
]
A_1=\begin{bmatrix}\pmb2\\\pmb2\end{bmatrix}\kern 10ptA_2=\begin{bmatrix}\pmb2&\pmb2\end{bmatrix}\kern 10ptA_3=\begin{bmatrix}\pmb2&\pmb2\\\pmb1&\pmb1\end{bmatrix}
A1=[22]A2=[22]A3=[2121]解: 如果
A
A
A 的各列线性无关则
A
T
A
A^TA
ATA 可逆,从而
L
=
(
A
T
A
)
−
1
A
T
L=(A^TA)^{-1}A^T
L=(ATA)−1AT 乘
A
A
A 即
L
A
=
I
LA=I
LA=I:有左逆。
A
L
=
A
(
A
T
A
)
−
1
A
T
AL=A(A^TA)^{-1}A^T
AL=A(ATA)−1AT 是到列空间的投影矩阵,所以
L
L
L 符合
A
+
A^+
A+ 的要求:
L
A
LA
LA 和
A
L
AL
AL 分别是到
C
(
A
)
\pmb C(A)
C(A) 和
C
(
A
T
)
\pmb C(A^T)
C(AT) 的投影。
如果
A
A
A 的秩为
m
m
m,即行满秩,则
A
A
T
AA^T
AAT 可逆,从而
A
A
A 乘
R
=
A
T
(
A
A
T
)
−
1
R=A^T(AA^T)^{-1}
R=AT(AAT)−1 即
A
R
=
I
AR=I
AR=I. 反向相乘时,
R
A
=
A
T
(
A
A
T
)
−
1
A
RA=A^T(AA^T)^{-1}A
RA=AT(AAT)−1A 是到行空间的投影矩阵(
A
T
A^T
AT 的列向量),所以
R
R
R 等于伪逆
A
+
A^+
A+.
矩阵
A
1
A_1
A1 列满秩,有左逆
L
=
A
1
+
L=A_1^+
L=A1+,矩阵
A
2
A_2
A2 行满秩,有右逆
R
=
A
2
+
R=A_2^+
R=A2+:
A
1
+
=
(
A
1
T
A
1
)
−
1
A
1
T
=
1
8
[
2
2
]
A
2
+
=
A
2
T
(
A
2
A
2
T
)
−
1
=
1
8
[
2
2
]
A_1^+=(A_1^TA_1)^{-1}A_1^T=\frac{1}{8}\begin{bmatrix}2&2\end{bmatrix}\kern 15ptA_2^+=A_2^T(A_2A_2^T)^{-1}=\frac{1}{8}\begin{bmatrix}2\\2\end{bmatrix}
A1+=(A1TA1)−1A1T=81[22]A2+=A2T(A2A2T)−1=81[22]注意:
A
1
+
A
1
=
[
1
]
,
A
2
A
2
+
=
[
1
]
A_1^+A_1=[1],\kern 3ptA_2A_2^+=[1]
A1+A1=[1],A2A2+=[1]. 但是
A
3
A_3
A3 没有左逆和右逆,它不是满秩矩阵,
A
3
A_3
A3 的伪逆将它的列空间作用到行空间。
A
3
+
=
[
2
2
1
1
]
+
=
v
1
u
1
T
σ
1
=
1
10
[
2
1
2
1
]
A_3^+=\begin{bmatrix}2&2\\1&1\end{bmatrix}^+=\frac{\boldsymbol v_1\boldsymbol u_1^T}{\sigma_1}=\frac{1}{10}\begin{bmatrix}\pmb2&\pmb1\\\pmb2&\pmb1\end{bmatrix}
A3+=[2121]+=σ1v1u1T=101[2211]