从四个子空间角度理解SVD
A
=
U
m
×
m
Σ
m
×
n
V
n
×
n
H
\mathbf {A =U_{m \times m}\Sigma_{m \times n}V_{n \times n}^H}
A=Um×mΣm×nVn×nH
将
A
\mathbf {A}
A视为线性变换,并将整个
R
n
\mathbf R^n
Rn空间拆分为两部分,即
A
\mathbf {A}
A的行空间(维数
r
r
r)和零空间(维数
n
−
r
n-r
n−r,行空间的正交补):
-
A
\mathbf {A}
A的行空间中,存在第一部分标准正交基
v
i
(
i
=
1
,
2
,
.
.
.
,
r
)
\mathbf{v}_{i}(i=1,2,...,r)
vi(i=1,2,...,r)
A \mathbf A A对应的线性变换将行空间中的 v i \mathbf{v}_{i} vi映射为 A \mathbf A A的列空间中的一个非零向量 σ i u i = A v i \sigma_i\mathbf u_i=\mathbf A\mathbf{v}_{i} σiui=Avi(视为对 A \mathbf A A的列向量的线性组合);
A [ v 1 v 2 ⋯ v r ] = [ σ 1 u 1 σ 2 u 2 ⋯ σ r u r ] = [ u 1 u 2 ⋯ u r ] [ σ 1 σ 2 ⋱ σ r ] \begin{aligned}\boldsymbol{A}\left[\begin{array}{llll}\mathbf{v}_{1} & \mathbf{v}_{2} & \cdots & \mathbf{v}_{r}\end{array}\right] &=\left[\begin{array}{lllll} \sigma_{1} \mathbf{u}_{1} & \sigma_{2} \mathbf{u}_{2} & \cdots & \sigma_{r} \mathbf{u}_{r} \end{array}\right] \\ &=\left[\begin{array}{lllll} \mathbf{u}_{1} & \mathbf{u}_{2} & \cdots & \mathbf{u}_{r} \end{array}\right]\left[\begin{array}{llll} \sigma_{1} & & & \\ & \sigma_{2} & & \\ & & \ddots & \\ & & & \sigma_{r} \end{array}\right] \end{aligned} A[v1v2⋯vr]=[σ1u1σ2u2⋯σrur]=[u1u2⋯ur] σ1σ2⋱σr
此即 U m × n V ^ n × r = U ^ m × r Σ ^ r × r \mathbf U_{m\times n}\hat{\mathbf V}_{n\times r}=\hat{\mathbf U}_{m\times r}\hat{\mathbf \Sigma}_{r\times r} Um×nV^n×r=U^m×rΣ^r×r,对应下图中的红色边框部分
注意, A \mathbf A A的行空间中的向量 x \mathbf x x到列空间中的向量 A x \mathbf A\mathbf x Ax映射,为一一映射
也就是说对于行空间中的向量 x ≠ y \mathbf x\neq\mathbf y x=y,则必有列空间中的向量 A x ≠ A y \mathbf A\mathbf x\neq\mathbf A\mathbf y Ax=Ay
证明:
反证法:对于行空间的向量 x ≠ y \mathbf x\neq\mathbf y x=y,假设有 A x = A y \mathbf A\mathbf x=\mathbf A\mathbf y Ax=Ay
则 A ( x − y ) = 0 \mathbf A(\mathbf x-\mathbf y)=\mathbf 0 A(x−y)=0,这就是说,向量 ( x − y ) (\mathbf x-\mathbf y) (x−y)在零空间中;
另一方面,向量 ( x − y ) (\mathbf x-\mathbf y) (x−y)一定在行空间中(两个行空间中的向量的线性组合)
向量 ( x − y ) (\mathbf x-\mathbf y) (x−y)不可能既在行空间中,又在零空间中,因此假设不成立
-
A
\mathbf A
A的零空间中,有第二部分标准正交基
v
i
(
i
=
r
+
1
,
r
+
2
,
.
.
.
,
n
)
\mathbf v_i(i=r+1,r+2,...,n)
vi(i=r+1,r+2,...,n)
A \mathbf A A对应的线性变换将 v i \mathbf v_i vi映射为零向量,满足 A v i = 0 \mathbf {A}\mathbf v_i=0 Avi=0;
体现在 Σ m × n \boldsymbol{\Sigma}_{m\times n} Σm×n中,就是其右下角的0元素,对应上图蓝色边框部分
上面是从
A
=
U
Σ
V
H
⇒
A
V
=
U
Σ
\mathbf {A =U\Sigma V^H}\Rightarrow \mathbf {A V =U\Sigma}
A=UΣVH⇒AV=UΣ的角度出发;
从
A
H
=
V
Σ
H
U
H
⇒
A
H
U
=
V
Σ
H
\mathbf {A^H =V\Sigma^HU^H}\Rightarrow \mathbf {A^HU =V\Sigma^H}
AH=VΣHUH⇒AHU=VΣH的角度同理可知:
U
\mathbf U
U给出了
A
H
\mathbf A^H
AH的行空间和零空间的标准正交基
结论
我们在 A \boldsymbol{A} A的四个子空间中,寻找了两组合适的基:
- 第一组是
C
n
×
n
\mathbb C^{n\times n}
Cn×n空间中的标准正交基,由两部分构成:
v i ( i = 1 , 2 , . . . , r ) \mathbf{v}_{i}(i=1,2,...,r) vi(i=1,2,...,r)为行空间中的 r r r个标准正交基
v i ( i = r + 1 , r + 2 , . . . , n ) \mathbf{v}_{i}(i=r+1,r+2,...,n) vi(i=r+1,r+2,...,n)为零空间中的标准正交基 - 第二组是
C
m
×
m
\mathbb C^{m\times m}
Cm×m空间中的标准正交基,由两部分构成:
u i ( i = 1 , 2 , . . . , r ) \mathbf{u}_{i}(i=1,2,...,r) ui(i=1,2,...,r)为列空间中的 r r r个标标准正交基
u i ( i = r + 1 , r + 2 , . . . , m ) \mathbf{u}_{i}(i=r+1,r+2,...,m) ui(i=r+1,r+2,...,m)为左零空间中的标准正交基
瘦奇异值分解(thin SVD)
V m \mathbb V^m Vm空间的一组正交基是 U = [ U r U m − r ] = [ u 1 ⋯ u r ∣ u r + 1 ⋯ u m ] U=\begin{bmatrix} U_r&U_{m-r} \end{bmatrix}=\begin{bmatrix} \mathbf{u}_1&\cdots&\mathbf{u}_r~\vert~\mathbf{u}_{r+1}&\cdots&\mathbf{u}_m \end{bmatrix} U=[UrUm−r]=[u1⋯ur ∣ ur+1⋯um]
V n \mathbb V^n Vn空间的一组正交基是 V = [ V r V n − r ] = [ v 1 ⋯ v r ∣ v r + 1 ⋯ v n ] V=\begin{bmatrix} V_r&V_{n-r} \end{bmatrix}=\begin{bmatrix} \mathbf{v}_1&\cdots&\mathbf{v}_r~\vert~\mathbf{v}_{r+1}&\cdots&\mathbf{v}_n \end{bmatrix} V=[VrVn−r]=[v1⋯vr ∣ vr+1⋯vn]
对应了四个子空间:
A v i = σ i u i , i = 1 , … , r A v i = 0 i , i = r + 1 , … , n A H u i = σ i v i , i = 1 , … , r A H u i = 0 , i = r + 1 , … , m , \begin{aligned} A\mathbf{v}_i&=\sigma_i\mathbf{u}_i,~~~i=1,\ldots,r\\ A\mathbf{v}_i&=\mathbf{0}_i,~~~i=r+1,\ldots,n\\ A^H\mathbf{u}_i&=\sigma_i\mathbf{v}_i,~~~i=1,\ldots,r\\ A^H\mathbf{u}_i&=\mathbf{0},~~~i=r+1,\ldots,m,\end{aligned} AviAviAHuiAHui=σiui, i=1,…,r=0i, i=r+1,…,n=σivi, i=1,…,r=0, i=r+1,…,m,
实际上其中的
n
−
r
n-r
n−r个
v
i
\mathbf{v}_i
vi 和
m
−
r
m-r
m−r个
u
i
\mathbf{u}_i
ui是“多余”的
因为只要求它们被映射为零向量(而不要求有
A
v
i
=
σ
i
u
i
\mathbf A\mathbf{v}_i=\sigma_i\mathbf{u}_i
Avi=σiui的一一映射关系),或者说线性变换
A
\mathbf A
A并未对这些向量进行实质性的操作(
A
\mathbf A
A将多余的
v
i
\mathbf{v}_i
vi降维压缩为零向量,而
u
i
\mathbf{u}_i
ui则是那些线性变换后的新空间中与变换本身无关的多余维度)
从关注线性变换
A
\mathbf A
A的本质的角度,我们完全可以忽略零空间和左零空间,只关注行空间和列空间之间的一一映射
那么,有
A
A
A的瘦奇异值分解(thin SVD)如下:
A
=
[
U
r
U
m
−
r
]
[
D
0
0
0
]
[
V
r
H
V
n
−
r
H
]
=
U
r
D
V
r
H
=
[
u
1
⋯
u
r
]
[
σ
1
⋱
σ
r
]
[
v
1
H
⋮
v
r
H
]
=
σ
1
u
1
v
1
H
+
⋯
+
σ
r
u
r
v
r
H
,
\begin{aligned} A&=\begin{bmatrix} U_r&U_{m-r} \end{bmatrix}\begin{bmatrix} D&0\\ 0&0 \end{bmatrix}\begin{bmatrix} V_r^H\\ V_{n-r}^H \end{bmatrix}=U_rDV_r^H\\ &=\begin{bmatrix} \mathbf{u}_1&\cdots&\mathbf{u}_r \end{bmatrix}\begin{bmatrix} \sigma_1&&\\ &\ddots&\\ &&\sigma_r \end{bmatrix}\begin{bmatrix} \mathbf{v}_1^H\\ \vdots\\ \mathbf{v}_r^H \end{bmatrix}\\ &=\sigma_1\mathbf{u}_1\mathbf{v}_1^H+\cdots+\sigma_r\mathbf{u}_r\mathbf{v}_r^H,\end{aligned}
A=[UrUm−r][D000][VrHVn−rH]=UrDVrH=[u1⋯ur]
σ1⋱σr
v1H⋮vrH
=σ1u1v1H+⋯+σrurvrH,
理论的统一
前面笔记10-1说过,SVD( A = U Σ V T \boldsymbol{A} =\boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{V}^{T} A=UΣVT)中, Σ \boldsymbol{\Sigma} Σ奇异值 σ ≥ 0 \sigma\geq 0 σ≥0;
- 若
A
\boldsymbol{A}
A为可逆矩阵
r
=
n
r=n
r=n,没有0特征值,
则 A T A \boldsymbol{A}^{T} \boldsymbol{A} ATA和 A A T \boldsymbol{A}\boldsymbol{A}^{T} AAT特征值全为正,为正定矩阵,对应 A \boldsymbol{A} A奇异值全为正; - 若
A
\boldsymbol{A}
A为不可逆矩阵
r
<
n
r<n
r<n,有0特征值,
则 A T A \boldsymbol{A}^{T} \boldsymbol{A} ATA和 A A T \boldsymbol{A}\boldsymbol{A}^{T} AAT特征值正数和0,为半正定矩阵,对应 A \boldsymbol{A} A奇异值为正数和0
因此有:
A
\boldsymbol{A}
A不可逆(
r
<
n
r<n
r<n)
⟺
\iff
⟺
Σ
\boldsymbol{\Sigma}
Σ对角元为正数和0(存在奇异值为0)
⟺
\iff
⟺
A
\boldsymbol{A}
A存在零空间(维度
n
−
r
>
0
n-r>0
n−r>0),零空间中的一部分向量
v
i
\mathbf v_i
vi被线性变换
A
\boldsymbol{A}
A映射为零向量(
A
v
i
=
0
\boldsymbol{A}\mathbf v_i=0
Avi=0)
⟺
\iff
⟺
A
x
=
0
\bold{Ax=0}
Ax=0有非零解
⟺
\iff
⟺
A
\boldsymbol{A}
A的列向量组线性相关