奇异值分解摘记——从EVD到SVD
1. 矩阵的对角化(Diagonalization)
\qquad 假设 A n × n A_{n\times n} An×n 具有 n n n 个线性无关的特征向量 { x 1 , x 2 , ⋯ , x n } , x i ∈ R n \{x_1,x_2,\cdots,x_n\},\ x_i\in R^n {x1,x2,⋯,xn}, xi∈Rn,可以定义特征向量矩阵 S = [ x 1 , x 2 , ⋯ , x n ] S=[x_1,x_2,\cdots,x_n] S=[x1,x2,⋯,xn],那么矩阵 A A A 可以被对角化 (diagonalized) \text{(diagonalized)} (diagonalized) 为一个对角阵 Λ \Lambda Λ(对角线元素为特征值):
S − 1 A S = Λ = [ λ 1 λ 2 ⋱ λ n ] \qquad\qquad S^{-1}AS=\Lambda=\left[\begin{matrix} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{matrix}\right] S−1AS=Λ=⎣ ⎡λ1λ2⋱λn⎦ ⎤ 或者 A = S Λ S − 1 A=S\Lambda S^{-1} A=SΛS−1
\qquad 为了完成矩阵 A A A 的对角化,其特征向量矩阵 S S S 必须可逆(要求 n n n 个线性无关的特征向量,或者没有重复的特征值)。
\qquad 上述对角化的过程实际上是:
\qquad\qquad 由: A x i = λ i x i , i = 1 , ⋯ , n Ax_i=\lambda_ix_i,\ i=1,\cdots,n Axi=λixi, i=1,⋯,n
\qquad\qquad 可得: A S = A [ x 1 , x 2 , ⋯ , x n ] = [ λ 1 x 1 , λ 2 x 2 , ⋯ , λ n x n ] AS=A[x_1,x_2,\cdots,x_n]=[\lambda_1x_1,\lambda_2x_2,\cdots,\lambda_nx_n] AS=A[x1,x2,⋯,xn]=[λ1x1,λ2x2,⋯,λnxn]
\qquad\qquad 而: [ λ 1 x 1 , λ 2 x 2 , ⋯ , λ n x n ] = [ x 1 , x 2 , ⋯ , x n ] [ λ 1 λ 2 ⋱ λ n ] = S Λ [\lambda_1x_1,\lambda_2x_2,\cdots,\lambda_nx_n]=[x_1,x_2,\cdots,x_n] \left[\begin{matrix} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{matrix}\right]=S\Lambda [λ1x1,λ2x2,⋯,λnxn]=[x1,x2,⋯,xn]⎣ ⎡λ1λ2⋱λn⎦ ⎤=SΛ
\qquad
矩阵的对角化可以简化很多问题。例如,
A
m
=
S
Λ
S
−
1
S
Λ
S
−
1
⋯
S
Λ
S
−
1
⏟
m
=
S
Λ
m
S
−
1
A^m=\underbrace{S\Lambda S^{-1} S\Lambda S^{-1}\cdots S\Lambda S^{-1}}_m=S\Lambda^mS^{-1}
Am=m
SΛS−1SΛS−1⋯SΛS−1=SΛmS−1
\qquad
2. 实对称矩阵的特征分解(Eigenvalue Decomposition,EVD)
2.1 实对称矩阵的对角化
\qquad
假设
A
n
×
n
A_{n\times n}
An×n 为实对称
(real
symmetric)
\textbf{(real\ symmetric)}
(real symmetric)矩阵,考虑其对角化过程:
\qquad
{
A
=
S
Λ
S
−
1
A
=
A
T
\qquad\qquad \left\{ \begin{aligned} \ A&=S\Lambda S^{-1} \\ A&=A^T \end{aligned} \right.
{ AA=SΛS−1=AT
⟹
\Longrightarrow
⟹
A
T
=
(
S
Λ
S
−
1
)
T
=
(
S
−
1
)
T
Λ
S
T
A^T=\left(S\Lambda S^{-1}\right)^T=\left(S^{-1}\right)^T\Lambda S^T
AT=(SΛS−1)T=(S−1)TΛST
⟹ \qquad\qquad\qquad\qquad\qquad\ \ \Longrightarrow ⟹ A = S Λ S − 1 = ( S − 1 ) T Λ S T = A T A=S\Lambda S^{-1}=\left(S^{-1}\right)^T\Lambda S^T=A^T A=SΛS−1=(S−1)TΛST=AT
⟹
\qquad\qquad\qquad\qquad\qquad\ \ \Longrightarrow
⟹
S
−
1
=
S
T
S^{-1}=S^T
S−1=ST 或
S
T
S
=
I
S^TS=\bold I
STS=I
\qquad
\qquad
此时,特征向量矩阵
S
=
[
x
1
,
x
2
,
⋯
,
x
n
]
,
x
i
∈
R
n
S=[x_1,x_2,\cdots,x_n],x_i\in R^n
S=[x1,x2,⋯,xn],xi∈Rn 是正交矩阵
(orthogonal matrix)
\text{(orthogonal\ matrix)}
(orthogonal matrix),具有特殊的性质:
S
S
S 中任意一个特征向量
x
i
x_i
xi 与其他特征向量
x
j
,
(
j
≠
i
)
x_j,\ (j\neq i)
xj, (j=i) 都正交。
S T S = I ⟹ { x i T x j = 0 , i ≠ j x i T x j = 1 , i = j \qquad\qquad S^TS=\bold I \quad \Longrightarrow\quad\left\{ \begin{aligned} \ x_i^Tx_j&=0&,i\neq j \\ x_i^Tx_j&=1&,i=j \end{aligned} \right. STS=I⟹{ xiTxjxiTxj=0=1,i=j,i=j
\qquad 为了区别于一般矩阵的对角化,记实对称矩阵的正交矩阵(特征向量矩阵)为 V V V、特征值对角阵为 D D D,那么实对称矩阵 A A A 可以对角化为:
A
=
V
D
V
−
1
=
V
D
V
T
\qquad\qquad\qquad A=VDV^{-1}=VDV^T
A=VDV−1=VDVT, 其中
V
T
V
=
I
V^TV=\bold I
VTV=I 或
V
−
1
=
V
T
V^{-1}=V^T
V−1=VT
\qquad
2.2 正交矩阵的几何意义
\qquad 在实对称矩阵 A = V D V − 1 A=VDV^{-1} A=VDV−1 的对角化过程中,正交矩阵 V V V 的主要作用在于:
- 将实对称矩阵 A A A 看成 R n R^n Rn 到 R n R^n Rn 的线性变换
A
:
R
n
⟶
R
n
\qquad\qquad A:R^n\longrightarrow R^n
A:Rn⟶Rn
v
i
⟶
A
v
i
,
v
i
,
A
v
i
∈
R
n
\qquad\qquad\quad\ \ \ v_i\longrightarrow Av_i,\qquad v_i,Av_i\in R^n
vi⟶Avi,vi,Avi∈Rn
- 实对称矩阵 A A A 的特征向量矩阵 V V V 提供了变换前后的 R n R^n Rn 中的正交基 { v 1 , v 2 , ⋯ , v n } \{v_1,v_2,\cdots,v_n\} {v1,v2,⋯,vn}
\qquad
将
A
A
A 的对角化写为
A
V
=
V
D
AV=VD
AV=VD,也就是
A
v
i
=
λ
i
v
i
Av_i=\lambda_iv_i
Avi=λivi
,
v
i
∈
R
n
,\ v_i\in R^n
, vi∈Rn,那么:
(
1
)
\qquad(1)
(1) 向量
v
i
∈
R
n
v_i\in R^n
vi∈Rn 经过矩阵
A
A
A 变换之后仍在
R
n
R^n
Rn 中
(the transformation takes
R
n
to itself)
\text{(the\ transformation\ takes}\ R^n\ \text{to\ itself)}
(the transformation takes Rn to itself)
(
2
)
\qquad(2)
(2) 向量
v
i
v_i
vi 的方向没变,只是向量的长度以
λ
i
\lambda_i
λi 的比率进行了缩放
\qquad
\qquad
因此,如果采用正交矩阵
V
V
V 中的特征向量
{
v
1
,
v
2
,
⋯
,
v
n
}
,
v
i
∈
R
n
\{v_1,v_2,\cdots,v_n\},v_i\in R^n
{v1,v2,⋯,vn},vi∈Rn 同时作为构建变换前的
R
n
R^n
Rn 和变换后的
R
n
R^n
Rn 的基向量,那么变换前后的
R
n
R^n
Rn 仅仅在尺度上发生了改变(如图
1
1
1 和图
3
3
3 所示)。
\qquad
例1 实对称矩阵
A
=
[
3
0
0
1
]
A=\left[\begin{matrix}3&0\\0&1\end{matrix}\right]
A=[3001],对应了
R
2
R^2
R2 中的线性变换:
[
3
0
0
1
]
[
x
1
x
2
]
=
[
3
x
1
x
2
]
,
[
x
1
x
2
]
∈
R
2
\left[\begin{matrix}3&0\\0&1\end{matrix}\right]\left[\begin{matrix}x_1\\x_2\end{matrix}\right]=\left[\begin{matrix}3x_1\\x_2\end{matrix}\right],\ \ \left[\begin{matrix}x_1\\x_2\end{matrix}\right]\in R^2
[3001][x1x2]=[3x1x2], [x1x2]∈R2
\qquad 特征向量为 v 1 = [ 1 0 ] \boldsymbol v_1=\left[\begin{matrix}1\\0\end{matrix}\right] v1=[10] 和 v 2 = [ 0 1 ] \boldsymbol v_2=\left[\begin{matrix}0\\1\end{matrix}\right] v2=[01],特征向量矩阵 V = [ 1 0 0 1 ] V=\left[\begin{matrix}1&0\\0&1\end{matrix}\right] V=[1001]
\qquad
特征值为
λ
1
=
3
,
λ
2
=
1
\lambda_1=3,\ \lambda_2=1
λ1=3, λ2=1,特征值对角阵
D
=
[
3
0
0
1
]
D=\left[\begin{matrix}3&0\\0&1\end{matrix}\right]
D=[3001]
\qquad
图1 标准坐标轴方向
正好是
特征向量的方向: e 1 = [ 1 , 0 ] T = v 1 , e 2 = [ 0 , 1 ] T = v 2 \boldsymbol e_1=[1,0]^T=\boldsymbol v_1,\ \boldsymbol e_2=[0,1]^T=\boldsymbol v_2 e1=[1,0]T=v1, e2=[0,1]T=v2
由 A v i = λ i v i Av_i=\lambda_iv_i Avi=λivi,特征向量 v i \boldsymbol v_i vi 经过线性变换之后,在新的 R 2 R^2 R2 中方向不会改变,只是改变了长度。
因此,对于“标准坐标轴方向”的单位向量 e 1 \boldsymbol e_1 e1 和 e 2 \boldsymbol e_2 e2 而言,在新的 R 2 R^2 R2 中方向仍保持不变:
( 1 ) e 1 (1)\ \boldsymbol e_1 (1) e1 方向上的尺度放大了 λ 1 = 3 \lambda_1=3 λ1=3 倍
( 2 ) e 2 (2)\ \boldsymbol e_2 (2) e2 方向上的尺度放大了 λ 2 = 1 \lambda_2=1 λ2=1 倍(尺度没变)
例2 实对称矩阵 A = [ 2 1 1 2 ] A=\left[\begin{matrix}2&1\\1&2\end{matrix}\right] A=[2112],对应了 R 2 R^2 R2 中的线性变换: [ 2 1 1 2 ] [ x 1 x 2 ] = [ 2 x 1 + x 2 x 1 + 2 x 2 ] \left[\begin{matrix}2&1\\1&2\end{matrix}\right]\left[\begin{matrix}x_1\\x_2\end{matrix}\right]=\left[\begin{matrix}2x_1+x_2\\x_1+2x_2\end{matrix}\right] [2112][x1x2]=[2x1+x2x1+2x2]
\qquad 特征向量为 v 1 = 1 2 [ 2 2 ] \boldsymbol v_1=\frac{1}{2}\left[\begin{matrix}\sqrt{2}\\\sqrt{2}\end{matrix}\right] v1=21[22] 和 v 2 = 1 2 [ − 2 2 ] \boldsymbol v_2=\frac{1}{2}\left[\begin{matrix}-\sqrt{2}\\\sqrt{2}\end{matrix}\right] v2=21[−22],特征向量矩阵 V = 1 2 [ 2 − 2 2 2 ] V=\frac{1}{2}\left[\begin{matrix}\sqrt{2}&-\sqrt{2}\\\sqrt{2}&\sqrt{2}\end{matrix}\right] V=21[22−22]
\qquad
特征值为
λ
1
=
3
,
λ
2
=
1
\lambda_1=3,\ \lambda_2=1
λ1=3, λ2=1,特征值对角阵
D
=
[
3
0
0
1
]
D=\left[\begin{matrix}3&0\\0&1\end{matrix}\right]
D=[3001]
\qquad
图2 标准坐标轴方向
不再是
特征向量的方向: e 1 = [ 1 , 0 ] T ≠ k 1 v 1 , e 2 = [ 0 , 1 ] T ≠ k 2 v 2 \boldsymbol e_1=[1,0]^T\neq k_1\boldsymbol v_1,\ \boldsymbol e_2=[0,1]^T\neq k_2\boldsymbol v_2 e1=[1,0]T=k1v1, e2=[0,1]T=k2v2
“标准坐标轴方向”的单位向量 e 1 \boldsymbol e_1 e1 和 e 2 \boldsymbol e_2 e2 经过线性变换之后,在新的 R 2 R^2 R2 中为: x 1 ′ = 2 x 1 + x 2 , x 2 ′ = x 1 + 2 x 2 x_1^{\prime}=2x_1+x_2,\ x_2^{\prime}=x_1+2x_2 x1′=2x1+x2, x2′=x1+2x2
也就是会改变大小和方向: e 1 ′ = A e 1 = [ 2 , 1 ] T , e 2 ′ = A e 2 = [ 1 , 2 ] T \boldsymbol e_1^{\prime}=A\boldsymbol e_1=[2,1]^T,\boldsymbol e_2^{\prime}=A\boldsymbol e_2=[1,2]^T e1′=Ae1=[2,1]T,e2′=Ae2=[1,2]T。
\qquad
图3 由 A v i = λ i v i Av_i=\lambda_iv_i Avi=λivi,特征向量 v i \boldsymbol v_i vi 经过线性变换之后,在新的 R 2 R^2 R2 中方向不会改变,只是改变了长度:
( 1 ) v 1 = 1 2 [ 2 , 2 ] T (1)\ \boldsymbol v_1=\frac{1}{2}[\sqrt{2},\sqrt{2}]^T (1) v1=21[2,2]T 方向上的尺度放大了 λ 1 = 3 \lambda_1=3 λ1=3 倍
( 2 ) v 2 = 1 2 [ − 2 , 2 ] T (2)\ \boldsymbol v_2=\frac{1}{2}[-\sqrt{2},\sqrt{2}]^T (2) v2=21[−2,2]T 方向上的尺度放大了 λ 2 = 1 \lambda_2=1 λ2=1 倍(尺度没变)
也就是说,如果采用特征向量 v 1 \boldsymbol v_1 v1 和 v 2 \boldsymbol v_2 v2 作为基向量来构造 R 2 R^2 R2,那么变换前后的 R 2 R^2 R2 仅仅是尺度发生了改变。
\qquad
3. 奇异值分解(Singular Value Decomposition,SVD)
\qquad 奇异值分解 SVD \text{SVD} SVD 可以实现对一般矩阵 A m × n A_{m\times n} Am×n(非方阵)的对角化:
A = U Σ V T \qquad\qquad A=U\Sigma V^T A=UΣVT 或者 A V = U Σ AV=U\Sigma AV=UΣ
\qquad\qquad
其中,
U
m
×
m
U_{m\times m}
Um×m 和
V
n
×
n
V_{n\times n}
Vn×n 都是正交矩阵
\qquad\qquad
Σ
m
×
n
\Sigma_{m\times n}
Σm×n 是对角阵
(
Σ
i
i
=
σ
i
)
(\Sigma_{ii}=\sigma_i)
(Σii=σi)
\qquad
3.1 SVD的实质
\qquad
理解
SVD
\text{SVD}
SVD 的本质,还得从线性变换的角度去看待,如图
4
4
4 所示:
图4 在《向量空间基础》一文中已经说明:
1 ) 1) 1) 对于一个秩为 r r r 的矩阵 A m × n A_{m\times n} Am×n,其中必然包含着一个 r × r r\times r r×r 的可逆方阵 A ^ r × r \hat A_{r\times r} A^r×r
2 ) 2) 2) 线性变换 A m × n : R n → R m A_{m\times n}:R^n\rightarrow R^m Am×n:Rn→Rm,实际上是由 A m × n : C ( A T ) → C ( A ) A_{m\times n}:C(A^T)\rightarrow C(A) Am×n:C(AT)→C(A) 完成(图中的 A x r = b A\boldsymbol x_r=\boldsymbol b Axr=b)
3 ) 3) 3) 去掉空间 N ( A ) N(A) N(A)和 N ( A T ) N(A^T) N(AT),线性变换 A m × n : C ( A T ) → C ( A ) A_{m\times n}:C(A^T)\rightarrow C(A) Am×n:C(AT)→C(A) 实际上是指 r r r 维子空间上的 A ^ r × r : R r → R r \hat A_{r\times r}:R^r\rightarrow R^r A^r×r:Rr→Rr
图片取自于《Introduction to Linear Algebra(Gilbert Strang)》Fig 4.3
\qquad
从线性变换的角度来看:矩阵
A
m
×
n
A_{m\times n}
Am×n 将
R
n
R^n
Rn 中的向量变换为
R
m
R^m
Rm 中的向量。
\qquad
然而,仅仅使用真实大小的可逆矩阵
A
r
×
r
A_{r\times r}
Ar×r 来表示矩阵
A
m
×
n
A_{m\times n}
Am×n 的对角化,无法完整说明矩阵
A
m
×
n
A_{m\times n}
Am×n 作为
R
n
⟶
R
m
R^n\longrightarrow R^m
Rn⟶Rm 线性变换的过程,只能说明实际的
C
(
A
T
)
⟶
C
(
A
)
C(A^T)\longrightarrow C(A)
C(AT)⟶C(A) 变换过程(图
4
4
4 中的
A
x
r
=
b
A\boldsymbol x_r=\boldsymbol b
Axr=b),而
C
(
A
)
C(A)
C(A) 和
C
(
A
T
)
C(A^T)
C(AT) 空间的实际维度都为
r
r
r —— 都只有
r
r
r 个线性无关的基向量。
\qquad
\qquad
因此,对于一个秩为
r
r
r 的矩阵
A
m
×
n
A_{m\times n}
Am×n,其
SVD
\text{SVD}
SVD 对角化本质上是指
r
r
r 维子空间上的可逆方阵
A
^
r
×
r
\hat A_{r\times r}
A^r×r 所对应的线性变换
A
^
r
×
r
:
R
r
→
R
r
\hat A_{r\times r}:R^r\rightarrow R^r
A^r×r:Rr→Rr,也就是:
{ A v 1 = σ 1 u 1 A v 2 = σ 2 u 2 A v r = σ r u r ⟹ A m × n [ v 1 ⋯ v r ] n × r = [ u 1 ⋯ u r ] m × r [ σ 1 ⋱ σ r ] r × r \qquad\qquad\left\{\begin{aligned}A\boldsymbol v_1=\sigma_1\boldsymbol u_1 \\ A\boldsymbol v_2=\sigma_2\boldsymbol u_2\\ \\ A\boldsymbol v_r=\sigma_r\boldsymbol u_r\end{aligned}\right.\quad\Longrightarrow\quad A_{m\times n}\left[\begin{matrix} & &\\ \ \boldsymbol v_1 &\cdots &\boldsymbol v_r\ \\ & & \end{matrix}\right]_{n\times r}=\left[\begin{matrix} & &\\ \ \boldsymbol u_1 &\cdots &\boldsymbol u_r\ \\ & & \end{matrix}\right]_{m\times r}\left[\begin{matrix} \sigma_1 & & \\ & \ddots & \\ & & \sigma_r \end{matrix}\right]_{r\times r} ⎩ ⎨ ⎧Av1=σ1u1Av2=σ2u2Avr=σrur⟹Am×n⎣ ⎡ v1⋯vr ⎦ ⎤n×r=⎣ ⎡ u1⋯ur ⎦ ⎤m×r⎣ ⎡σ1⋱σr⎦ ⎤r×r
\qquad 奇异向量 (singular vector) v 1 , ⋯ , v r \text{(singular\ vector)}\ \boldsymbol v_1,\cdots,\boldsymbol v_r (singular vector) v1,⋯,vr 都在 A A A 的行空间 C ( A T ) C(A^T) C(AT) 中,而 u 1 , ⋯ , u r \boldsymbol u_1,\cdots,\boldsymbol u_r u1,⋯,ur 都在 A A A 的列空间 C ( A ) C(A) C(A) 中。而且,奇异值 σ 1 , ⋯ , σ r \sigma_1,\cdots,\sigma_r σ1,⋯,σr 都是正数(见 3.3 3.3 3.3 节 结论 1 1 1)。
\qquad 因此,矩阵 A m × n A_{m\times n} Am×n 的奇异值分解也可以写为:
\qquad\qquad A = U Σ V T = U r Σ r V r T = u 1 σ 1 v 1 T + ⋯ + u r σ r v r T A=U\Sigma V^T=U_r\Sigma_r V_r^T=\boldsymbol u_1\sigma_1\boldsymbol v_1^T+\cdots+\boldsymbol u_r\sigma_r\boldsymbol v_r^T A=UΣVT=UrΣrVrT=u1σ1v1T+⋯+urσrvrT
\qquad
例3 假设
r
=
2
,
m
=
n
=
r
r=2,m=n=r
r=2,m=n=r,奇异值分解的过程如图
5
5
5 所示:
\qquad
图5 与实对称矩阵的 EVD \text{EVD} EVD 不同:
( 1 ) (1) (1) 奇异向量 v i ∈ R n \boldsymbol v_i\in R^n vi∈Rn 经过矩阵 A m × n A_{m\times n} Am×n 变换为 A v i ∈ R m A\boldsymbol v_i\in R^m Avi∈Rm 之后 不一定满足方向不变
( 2 ) (2) (2) 将矩阵 A m × n A_{m\times n} Am×n 变换后的向量 A v 1 A\boldsymbol v_1 Av1 和 A v 2 A\boldsymbol v_2 Av2 单位化,就是 R m R^m Rm 中的向量 u 1 \boldsymbol u_1 u1 和 u 2 \boldsymbol u_2 u2
且满足 A v 1 = σ 1 u 1 , A v 2 = σ 2 u 2 A\boldsymbol v_1=\sigma_1\boldsymbol u_1,A\boldsymbol v_2=\sigma_2\boldsymbol u_2 Av1=σ1u1,Av2=σ2u2(奇异值为长度)
( 3 ) (3) (3) 正交的奇异向量 v 1 \boldsymbol v_1 v1 和 v 2 \boldsymbol v_2 v2,经过矩阵 A m × n A_{m\times n} Am×n 变换为 A v 1 A\boldsymbol v_1 Av1 和 A v 2 A\boldsymbol v_2 Av2 后仍保持正交性,即:向量 u 1 \boldsymbol u_1 u1 和 u 2 \boldsymbol u_2 u2 也正交
【注】:本例中由于 m = n = r = 2 m=n=r=2 m=n=r=2,因此两个零空间 N ( A ) = { 0 } N(A)=\{\boldsymbol 0\} N(A)={0} 和 N ( A T ) = { 0 } N(A^T)=\{\boldsymbol 0\} N(AT)={0}
图1,2,3,5 均取自于:《We Recommend a Singular Value Decomposition》
\qquad
例4 奇异值分解
A
=
U
Σ
V
T
=
U
r
Σ
r
V
r
T
=
u
1
σ
1
v
1
T
+
⋯
+
u
r
σ
r
v
r
T
A=U\Sigma V^T=U_r\Sigma_r V_r^T=\boldsymbol u_1\sigma_1\boldsymbol v_1^T+\cdots+\boldsymbol u_r\sigma_r\boldsymbol v_r^T
A=UΣVT=UrΣrVrT=u1σ1v1T+⋯+urσrvrT 过程描述
\qquad 图 6 ( a ) ( b ) 6(a)(b) 6(a)(b) 表示源空间,图 6 ( c ) 6(c) 6(c) 表示目标空间,矩阵 A 3 × 3 A_{3\times 3} A3×3 的秩为 r = 2 r=2 r=2,其 SVD \text{SVD} SVD 过程为:
( 1 ) \qquad(1) (1) 图 6 ( a ) 6(a) 6(a) 中, R 3 R^3 R3 空间 v 3 \boldsymbol v_3 v3 轴上的所有向量经过 A 3 × 3 A_{3\times 3} A3×3 变换后为 0 \boldsymbol 0 0,即零空间 N ( A ) = { k v 3 } N(A)=\{k\boldsymbol v_3\} N(A)={kv3}
( 2 ) \qquad(2) (2) 在图 6 ( a ) 6(a) 6(a) 的 R 3 R^3 R3 空间中去掉零空间 N ( A ) = { k v 3 } N(A)=\{k\boldsymbol v_3\} N(A)={kv3},就变成了图 6 ( b ) 6(b) 6(b) 中(与零空间正交的)实际维度为 2 2 2 的行空间 C ( A T ) C(A^T) C(AT),即图 6 ( b ) 6(b) 6(b) 阴影区域所在平面
( 3 ) \qquad(3) (3) 从图 6 ( b ) 6(b) 6(b) 的行空间 C ( A T ) C(A^T) C(AT) 中选择出正交的奇异向量 v 1 , v 2 \boldsymbol v_1,\boldsymbol v_2 v1,v2,经过 A A A 变换后就变成了图 6 ( c ) 6(c) 6(c) 中的向量 A v 1 = σ 1 u 1 A\boldsymbol v_1=\sigma_1\boldsymbol u_1 Av1=σ1u1 和 A v 2 = σ 2 u 2 A\boldsymbol v_2=\sigma_2\boldsymbol u_2 Av2=σ2u2,向量 u 1 , u 2 \boldsymbol u_1,\boldsymbol u_2 u1,u2 仍保持正交性,以 u 1 , u 2 \boldsymbol u_1,\boldsymbol u_2 u1,u2 为基向量就构建出了实际维度为 2 2 2 的列空间 C ( A ) C(A) C(A),即图 6 ( c ) 6(c) 6(c) 阴影区域所在平面
(
4
)
\qquad(4)
(4) 奇异值分解
A
=
U
Σ
V
T
=
U
r
Σ
r
V
r
T
A=U\Sigma V^T=U_r\Sigma_r V_r^T
A=UΣVT=UrΣrVrT 实际上是指
A
^
2
×
2
:
C
(
A
T
)
→
C
(
A
)
\hat A_{2\times 2}:C(A^T)\rightarrow C(A)
A^2×2:C(AT)→C(A)
\qquad
图6 取自于《A Singularly Valuable Decomposition: The SVD of a Matrix》Fig.2
\qquad
3.2 SVD的奇异向量(Singular vector)
\qquad 由上节分析可知,只考虑用 v 1 , ⋯ , v r \boldsymbol v_1,\cdots,\boldsymbol v_r v1,⋯,vr 作为基向量构建行空间 C ( A T ) C(A^T) C(AT) 、以及用 u 1 , ⋯ , u r \boldsymbol u_1,\cdots,\boldsymbol u_r u1,⋯,ur 作为基向量构建列空间 C ( A ) C(A) C(A) 来完成 SVD \text{SVD} SVD 显然不足以描述线性变换 A m × n : R n ⟶ R m A_{m\times n}:R^n\longrightarrow R^m Am×n:Rn⟶Rm 的完整过程,还必须完成以下内容:
- 使用正交矩阵 V n × n V_{n\times n} Vn×n 中的所有列向量 { v i } i = 1 n \{\boldsymbol v_i\}_{i=1}^n {vi}i=1n 构建 R n R^n Rn 空间
( 1 ) \qquad(1) (1) 由于 r r r 个线性无关的奇异向量 v 1 , ⋯ , v r \boldsymbol v_1,\cdots,\boldsymbol v_r v1,⋯,vr 都在 A A A 的行空间 C ( A T ) C(A^T) C(AT) 中,实际上只是构成了 R n R^n Rn 中的子空间 R r ⊆ R n R^r\subseteq R^n Rr⊆Rn,并不足以构成整个 R n R^n Rn
( 2 ) \qquad(2) (2) 由于行空间 C ( A T ) C(A^T) C(AT) 在 R n R^n Rn 中的正交补空间为零空间 N ( A ) N(A) N(A),为了构建整个 R n R^n Rn,还必须补充构成 N ( A ) N(A) N(A) 的 n − r n-r n−r 个 { v i } i = r + 1 n \{\boldsymbol v_i\}_{i=r+1}^n {vi}i=r+1n 基向量,也就是要使用到 V n × n V_{n\times n} Vn×n 的全部列向量 { v i } i = 1 n \{\boldsymbol v_i\}_{i=1}^n {vi}i=1n
零空间 N ( A ) N(A) N(A) 中的 n − r n-r n−r 个 { v i } i = r + 1 n \{\boldsymbol v_i\}_{i=r+1}^n {vi}i=r+1n 基向量,均与行空间 C ( A T ) C(A^T) C(AT) 中的 v 1 , ⋯ , v r \boldsymbol v_1,\cdots,\boldsymbol v_r v1,⋯,vr 正交
由于 A v i = 0 ∈ R m , ∀ v i ∈ N ( A ) ⊂ R n A\boldsymbol v_i=\boldsymbol 0\in R^m,\ \forall\ \boldsymbol v_i\in N(A)\sub R^n Avi=0∈Rm, ∀ vi∈N(A)⊂Rn,矩阵 A A A 将 N ( A ) N(A) N(A) 中的向量变换为了 R m R^m Rm 的原点
也就是说, N ( A ) N(A) N(A) 中的向量没能真正体现出“矩阵 A A A 作为线性变换”应有的作用,可以认为是“冗余的”
- 使用正交矩阵 U m × m U_{m\times m} Um×m 中的所有列向量 { u i } i = 1 m \{\boldsymbol u_i\}_{i=1}^m {ui}i=1m 构建 R m R^m Rm 空间
( 1 ) \qquad(1) (1) 由于 r r r 个线性无关的 u 1 , ⋯ , u r \boldsymbol u_1,\cdots,\boldsymbol u_r u1,⋯,ur 都在 A A A 的列空间 C ( A ) C(A) C(A) 中,实际上只是构成了 R m R^m Rm 中的子空间 R r ⊆ R m R^r\subseteq R^m Rr⊆Rm,并不足以构成整个 R m R^m Rm
( 2 ) \qquad(2) (2) 由于列空间 C ( A ) C(A) C(A) 在 R m R^m Rm 中的正交补空间为左零空间 N ( A T ) N(A^T) N(AT),为了构建整个 R m R^m Rm,还必须补充构成 N ( A T ) N(A^T) N(AT) 的 m − r m-r m−r 个 { u i } i = r + 1 m \{\boldsymbol u_i\}_{i=r+1}^m {ui}i=r+1m 基向量,也就是要使用到 U m × m U_{m\times m} Um×m 的全部列向量 { u i } i = 1 m \{\boldsymbol u_i\}_{i=1}^m {ui}i=1m
左零空间 N ( A T ) N(A^T) N(AT) 中的 m − r m-r m−r 个 { u i } i = r + 1 m \{\boldsymbol u_i\}_{i=r+1}^m {ui}i=r+1m 基向量,均与列空间 C ( A ) C(A) C(A) 中的 u 1 , ⋯ , u r \boldsymbol u_1,\cdots,\boldsymbol u_r u1,⋯,ur 正交
由于 A T u i = 0 ∈ R n , ∀ u i ∈ N ( A T ) ⊂ R m A^T\boldsymbol u_i=\boldsymbol 0\in R^n,\ \forall\ \boldsymbol u_i\in N(A^T)\sub R^m ATui=0∈Rn, ∀ ui∈N(AT)⊂Rm,矩阵 A T A^T AT 将 R m R^m Rm 中的一些向量 u i ∈ N ( A T ) \boldsymbol u_i\in N(A^T) ui∈N(AT) 变换为了 R n R^n Rn 的原点
因此, N ( A T ) ⊂ R m N(A^T)\sub R^m N(AT)⊂Rm 中的这些向量对于变换 A T A^T AT 而言也是“冗余的”
\qquad
\qquad
使用所有
{
u
i
}
i
=
1
m
\{\boldsymbol u_i\}_{i=1}^m
{ui}i=1m 和
{
v
i
}
i
=
1
n
\{\boldsymbol v_i\}_{i=1}^n
{vi}i=1n 构建了完整的
R
m
R^m
Rm 和
R
n
R^n
Rn 之后, 矩阵
A
m
×
n
A_{m\times n}
Am×n 作为
R
n
⟶
R
m
R^n\longrightarrow R^m
Rn⟶Rm 的线性变换过程才得以完整体现。此时,完整的奇异值分解就表示为
A
V
=
U
Σ
AV=U\Sigma
AV=UΣ,也就是:
\qquad
A
[
v
1
⋯
v
r
⋯
v
n
]
⏟
V
n
×
n
=
[
u
1
⋯
u
r
⋯
u
m
]
⏟
U
m
×
m
[
σ
1
⋱
σ
r
]
⏟
Σ
m
×
n
\qquad\qquad A\ \underbrace{\left[\begin{matrix} \\ \ \boldsymbol v_1\ \cdots\ \boldsymbol v_r\ \cdots\ \boldsymbol v_n\\ \\ \end{matrix}\right] }_{V_{n\times n}}=\underbrace{ \left[\begin{matrix} \\ \ \boldsymbol u_1\ \cdots\ \boldsymbol u_r\ \cdots\ \boldsymbol u_m\\ \\ \end{matrix}\right] }_{U_{m\times m}} \underbrace{ \left[\begin{matrix} \sigma_1 & & \\ & \ddots & \\ & & \sigma_r \\ & & & \end{matrix}\right]}_{\Sigma_{m\times n}}
A Vn×n
⎣
⎡ v1 ⋯ vr ⋯ vn⎦
⎤=Um×m
⎣
⎡ u1 ⋯ ur ⋯ um⎦
⎤Σm×n
⎣
⎡σ1⋱σr⎦
⎤
\qquad 或者 A = U Σ V T = U r Σ r V r T A=U\Sigma V^T=U_r\Sigma_r V_r^T A=UΣVT=UrΣrVrT 的形式:
A = [ u 1 ⋯ u r ∣ u r + 1 ⋯ u m ] [ σ 1 0 ⋯ 0 ⋱ ⋮ 0 ⋮ σ r ⋮ 0 ⋮ 0 ⋯ 0 0 ⋯ 0 ⋮ 0 ⋮ ⋮ ⋱ ⋮ 0 ⋯ 0 0 ⋯ 0 ] [ v 1 T ⋮ v r T —— v r + 1 T ⋮ v n T ] = [ u 1 ⋯ u r ] [ σ 1 ⋱ σ r ] [ v 1 T ⋮ v r T ] ⏟ U r Σ r V r T + [ u r + 1 ⋯ u m ] [ 0 ] [ v r + 1 T ⋮ v n T ] \qquad\qquad \begin{aligned}A &= \left[\begin{matrix} \ \boldsymbol u_1\ \cdots\ \boldsymbol u_r\ \Big|\ \boldsymbol u_{r+1}\ \cdots\ \boldsymbol u_m \end{matrix}\right] \left[\begin{matrix} \sigma_1 & & & 0 &\cdots & 0 \\ & \ddots & &\vdots & 0 & \vdots \\ & & \sigma_r & \vdots & 0 & \vdots\\ 0& \cdots & 0 & 0 & \cdots & 0 \\ \vdots & 0 & \vdots & \vdots &\ddots & \vdots \\ 0& \cdots & 0 & 0 & \cdots &0 \end{matrix}\right] \left[\begin{matrix} \boldsymbol v_1^T\\ \vdots\\ \boldsymbol v_r^T\\ ——\\ \boldsymbol v_{r+1}^T\\ \vdots\\ \boldsymbol v_n^T\\ \end{matrix}\right]\\ &= \underbrace{ \left[\begin{matrix} \ \boldsymbol u_1\ \cdots\ \boldsymbol u_r \end{matrix}\right] \left[\begin{matrix} \sigma_1 & & \\ & \ddots & \\ & & \sigma_r \end{matrix}\right] \left[\begin{matrix} \boldsymbol v_1^T\\ \vdots\\ \boldsymbol v_r^T \end{matrix}\right] }_{U_r\Sigma_r V_r^T}+ \left[\begin{matrix} \boldsymbol u_{r+1}\ \cdots\ \boldsymbol u_m \end{matrix}\right] \left[\begin{matrix} & & \\ & \bold 0 & \\ & & \end{matrix}\right] \left[\begin{matrix} \boldsymbol v_{r+1}^T\\ \vdots\\ \boldsymbol v_n^T\\ \end{matrix}\right] \end{aligned} A=[ u1 ⋯ ur ∣ ∣ ur+1 ⋯ um]⎣ ⎡σ10⋮0⋱⋯0⋯σr0⋮00⋮⋮0⋮0⋯00⋯⋱⋯0⋮⋮0⋮0⎦ ⎤⎣ ⎡v1T⋮vrT——vr+1T⋮vnT⎦ ⎤=UrΣrVrT [ u1 ⋯ ur]⎣ ⎡σ1⋱σr⎦ ⎤⎣ ⎡v1T⋮vrT⎦ ⎤+[ur+1 ⋯ um]⎣ ⎡0⎦ ⎤⎣ ⎡vr+1T⋮vnT⎦ ⎤
\qquad
3.3 SVD奇异向量与EVD的关系
\qquad
结论1 右奇异向量矩阵
V
n
×
n
=
[
v
1
,
⋯
,
v
n
]
,
v
i
∈
R
n
V_{n\times n}=[\boldsymbol v_1,\cdots,\boldsymbol v_n],\ \boldsymbol v_i\in R^n
Vn×n=[v1,⋯,vn], vi∈Rn 是实对称矩阵
A
T
A
A^TA
ATA 的特征分解
EVD
\text{EVD}
EVD 的特征向量集,且实对称矩阵
A
T
A
A^TA
ATA 的特征值都是非负的,矩阵
A
m
×
n
A_{m\times n}
Am×n 进行
SVD
\text{SVD}
SVD 后的奇异值都是非负的。
A
T
A
=
V
D
V
T
\qquad\qquad A^TA=VDV^T
ATA=VDVT
\qquad\qquad
其中,正交矩阵
V
n
×
n
=
[
v
1
,
⋯
,
v
n
]
,
v
i
∈
R
n
V_{n\times n}=[\boldsymbol v_1,\cdots,\boldsymbol v_n],\ \boldsymbol v_i\in R^n
Vn×n=[v1,⋯,vn], vi∈Rn 就是
SVD
\text{SVD}
SVD 的右奇异向量矩阵
\qquad\qquad
对角阵
D
n
×
n
D_{n\times n}
Dn×n 的对角线元素
λ
i
\lambda_i
λi 为
A
T
A
A^TA
ATA 的特征值,假设特征值在对角线上以降序排列
\qquad
由于:
A
T
A
V
=
V
D
⟹
A
T
A
v
i
=
λ
i
v
i
\qquad\qquad\qquad A^TAV=VD\Longrightarrow A^TA\boldsymbol v_i=\lambda_i\boldsymbol v_i
ATAV=VD⟹ATAvi=λivi
\qquad
可得:
(
A
v
i
)
T
(
A
v
j
)
=
v
i
T
A
T
A
v
j
=
v
i
T
(
λ
j
v
j
)
=
λ
j
v
i
T
v
j
=
0
\qquad\qquad\qquad\begin{aligned}(A\boldsymbol v_i)^T(A\boldsymbol v_j)&=\boldsymbol v_i^TA^TA\boldsymbol v_j \\ &=\boldsymbol v_i^T(\lambda_j\boldsymbol v_j) \\ &=\lambda_j\boldsymbol v_i^T\boldsymbol v_j \\ &=0 \end{aligned}
(Avi)T(Avj)=viTATAvj=viT(λjvj)=λjviTvj=0
\qquad 这就说明,正交矩阵 V n × n V_{n\times n} Vn×n 中正交的列向量 { v 1 , ⋯ , v n } , v i ∈ R n \{\boldsymbol v_1,\cdots,\boldsymbol v_n\},\ \boldsymbol v_i\in R^n {v1,⋯,vn}, vi∈Rn,经过矩阵 A m × n A_{m\times n} Am×n 变换为 R m R^m Rm 中的 { A v 1 , ⋯ , A v n } , A v i ∈ R m \{A\boldsymbol v_1,\cdots,A\boldsymbol v_n\},\ A\boldsymbol v_i\in R^m {Av1,⋯,Avn}, Avi∈Rm 后,仍然是正交的。
\qquad
\qquad
因此:
( A v i ) T ( A v j ) ⟹ { ( A v i ) T ( A v j ) = λ j v i T v j = 0 , i ≠ j ( A v i ) T ( A v i ) = ∥ A v i ∥ 2 = λ i ≥ 0 , i = j \qquad\qquad\qquad(A\boldsymbol v_i)^T(A\boldsymbol v_j)\Longrightarrow\left\{\begin{aligned}(A\boldsymbol v_i)^T(A\boldsymbol v_j)&=\lambda_j\boldsymbol v_i^T\boldsymbol v_j=0 &,i\neq j\\ \\(A\boldsymbol v_i)^T(A\boldsymbol v_i)&=\Vert A\boldsymbol v_i \Vert^2=\lambda_i\ge0 &,i=j \end{aligned}\right. (Avi)T(Avj)⟹⎩ ⎨ ⎧(Avi)T(Avj)(Avi)T(Avi)=λjviTvj=0=∥Avi∥2=λi≥0,i=j,i=j
\qquad 这就说明,实对称矩阵 A T A A^TA ATA 的特征值 λ i \lambda_i λi 都是非负的。
\qquad 又因为,在 SVD \text{SVD} SVD 中满足 A v i = σ i u i , i ∈ { 1 , ⋯ , r } A\boldsymbol v_i=\sigma_i\boldsymbol u_i,\quad i\in\{1,\cdots,r\} Avi=σiui,i∈{1,⋯,r},因此:
u i = A v i ∣ A v i ∣ = 1 λ i A v i = 1 σ i A v i , i ∈ { 1 , ⋯ , r } \qquad\qquad\qquad\boldsymbol u_i=\dfrac{A\boldsymbol v_i}{\big|A\boldsymbol v_i \big|}=\dfrac{1}{\sqrt{\lambda_i}}A\boldsymbol v_i=\dfrac{1}{\sigma_i}A\boldsymbol v_i,\quad i\in\{1,\cdots,r\} ui=∣ ∣Avi∣ ∣Avi=λi1Avi=σi1Avi,i∈{1,⋯,r}
\qquad 这就说明,矩阵 A m × n A_{m\times n} Am×n 进行 SVD \text{SVD} SVD 后的奇异值 σ i = λ i ≥ 0 \sigma_i=\sqrt{\lambda_i}\ge0 σi=λi≥0 ,都是非负的。
\qquad
结论2 左奇异向量矩阵
U
m
×
m
=
[
u
1
,
⋯
,
u
m
]
,
u
i
∈
R
m
U_{m\times m}=[\boldsymbol u_1,\cdots,\boldsymbol u_m],\ \boldsymbol u_i\in R^m
Um×m=[u1,⋯,um], ui∈Rm 是实现实对称矩阵
A
A
T
AA^T
AAT 的特征分解
EVD
\text{EVD}
EVD 的特征向量集,而且具有与实对称矩阵
A
T
A
A^TA
ATA 相同的非零特征值。
\qquad 由于满足 A v i = σ i u i , i ∈ { 1 , ⋯ , r } \ \ A\boldsymbol v_i=\sigma_i\boldsymbol u_i,\quad i\in\{1,\cdots,r\} Avi=σiui,i∈{1,⋯,r}
\qquad
又因为:
u
i
=
1
λ
i
A
v
i
=
1
σ
i
A
v
i
,
i
∈
{
1
,
⋯
,
r
}
\qquad\qquad\qquad \boldsymbol u_i=\dfrac{1}{\sqrt{\lambda_i}}A\boldsymbol v_i=\dfrac{1}{\sigma_i}A\boldsymbol v_i,\quad i\in\{1,\cdots,r\}
ui=λi1Avi=σi1Avi,i∈{1,⋯,r}
\qquad 因此:
A A T u i = A A T ( 1 σ i A v i ) = 1 σ i A ( A T A v i ) = 1 σ i A ( λ i v i ) = 1 σ i λ i ( A v i ) = 1 σ i λ i ( σ i u i ) = λ i u i \qquad\qquad\qquad \begin{aligned}AA^T\boldsymbol u_i&=AA^T\left(\dfrac{1}{\sigma_i}A\boldsymbol v_i\right)\\ &=\dfrac{1}{\sigma_i}A(A^TA\boldsymbol v_i)\\ &=\dfrac{1}{\sigma_i}A(\lambda_i\boldsymbol v_i)\\ &=\dfrac{1}{\sigma_i}\lambda_i(A\boldsymbol v_i) \\ &=\dfrac{1}{\sigma_i}\lambda_i(\sigma_i\boldsymbol u_i)\\ &=\lambda_i\boldsymbol u_i \end{aligned} AATui=AAT(σi1Avi)=σi1A(ATAvi)=σi1A(λivi)=σi1λi(Avi)=σi1λi(σiui)=λiui
\qquad 也就是 A A T U = U D AA^TU=UD AATU=UD 或者 A A T = U D U T AA^T=UDU^T AAT=UDUT
\qquad
这就说明,实对称矩阵
A
A
T
AA^T
AAT 具有与实对称矩阵
A
T
A
A^TA
ATA 相同的非负特征值
λ
i
≥
0
,
i
∈
{
1
,
⋯
,
r
}
\lambda_i\ge0,\ i\in\{1,\cdots,r\}
λi≥0, i∈{1,⋯,r}。
\qquad
\qquad
【注】:关于向量空间的基本概念,请参考《向量空间基础知识》