奇异值分解
一、特征值分解
必要条件
待分解矩阵 A n × n A_{n \times n} An×n为方阵,同时具有n个线性无关的特征向量,可进行相似对角化(特征值分解)。
定理内容
记特征值为 λ 1 ≤ λ 2 ≤ . . . ≤ λ n \lambda_{1} \le \lambda_{2}\le ... \le \lambda_{n} λ1≤λ2≤...≤λn,对应的n个线性无关的特征向量为 v 1 , v 2 , . . . , v n v_{1},v_{2},...,v_{n} v1,v2,...,vn,则存在正交矩阵 V V V,满足以下式子。其中 V V V为特征向量按列排列,且为正交矩阵,即 V = ( v 1 , v 2 , . . . , v n ) V=(v_{1},v_{2},...,v_{n}) V=(v1,v2,...,vn)。
V − 1 A V = V T A V = Λ = ( λ _ 1 . . . λ _ n ) V^{-1}AV=V^{T}AV=\Lambda = \begin{pmatrix} \lambda\_{1} & & \\\ & ... & \\\ & & \lambda\_{n} \end{pmatrix} V−1AV=VTAV=Λ= λ_1 ...λ_n
上式对 A A A进行了相似对角化,通过可逆矩阵 V V V来得到 A A A的相似矩阵 Λ \Lambda Λ。也相当于为 A A A进行了特殊的表达,即转化为 A = V Λ V − 1 A=V\Lambda V^{-1} A=VΛV−1,从而将A这个线性变换转化为“旋转-缩放-旋转”的形式。
简要分析
考虑到对于任何一个方阵 A n × n A_{n \times n } An×n ,可以将其看作n维空间中的一个线性变换,它的一个特征向量 v ^ \hat{v} v^以及对应的特征值 λ \lambda λ,可以看作为在经过线性变换 A A A后,特征向量 v ^ \hat{v} v^的方向并未发生改变,只是进行了缩放比为 λ \lambda λ的缩放。即满足 A v ^ = λ v ^ A \hat{v} = \lambda \hat{v} Av^=λv^。
若能够找到n组特征向量与特征值,且这n个特征向量相互线性无关,那么将这n个特征向量组成一个基则能够保证在该基之下,线性变换A能够与一个对角矩阵相似(即A在V基下的线性变换为一个对角阵)。具体原因在于: A ( v 1 , v 2 , . . . , v n ) = ( λ 1 . . . λ n ) ( v 1 , v 2 , . . . , v n ) A(v_{1},v_{2},...,v_{n})= \begin{pmatrix} \lambda_{1} & & \\\ & ... & \\\ & & \lambda_{n} \end{pmatrix} (v_{1},v_{2},...,v_{n}) A(v1,v2,...,vn)= λ1 ...λn (v1,v2,...,vn) 。而对于基 V V V ,可以进行正交化,最终将矩阵 A A A进行分解得到“正交阵-对角阵-正交阵”的形式,即将线性变换分解为“旋转-缩放-旋转”。(正交阵带来的正交变换不改变距离、夹角、内积等性质,即为旋转;对于对角阵,只对各基方向进行成比例缩放)
二、奇异值分解
定义
将一个非零的
m
×
n
m \times n
m×n实矩阵
A
A
A,
A
∈
R
m
×
n
A \in R^{m \times n}
A∈Rm×n,表示为以下三个实矩阵的乘积形式的运算,即矩阵的因子分解。其中
U
U
U时
m
m
m阶正交矩阵,
V
V
V时
n
n
n阶正交矩阵,
Σ
\Sigma
Σ是由降序排序的非负的对角线元素组成的
m
×
n
m \times n
m×n矩形对角矩阵。
A
=
U
Σ
V
T
A=U\Sigma V^{T}
A=UΣVT
满足:
U
U
T
=
I
V
V
T
=
I
Σ
=
d
i
a
g
(
σ
1
,
σ
2
,
.
.
.
,
σ
p
)
σ
1
≥
σ
2
≥
.
.
.
≥
σ
p
≥
0
p
≤
m
i
n
(
m
,
n
)
UU^T=I \\\ VV^T=I \\\ \Sigma = diag(\sigma_{1},\sigma_{2},...,\sigma_{p})\\\ \sigma_{1} \ge \sigma_{2} \ge ... \ge \sigma_{p} \ge 0 \\\ p \le min(m,n)
UUT=I VVT=I Σ=diag(σ1,σ2,...,σp) σ1≥σ2≥...≥σp≥0 p≤min(m,n)
则
σ
i
\sigma_i
σi为矩阵
A
A
A的奇异值,
U
U
U 的列向量称为左奇异向量,
V
V
V的列向量称为右奇异向量。
奇异值分解存在定理
任意给定一个实矩阵,其奇异值分解一定存在。证明见《统计学习原理》P273。
紧奇异值分解与截断奇异值分解
紧奇异值分解是与原始矩阵 A A A等秩的奇异值分解,截断奇异值分解是比原始矩阵 A A A低秩的分解。
具体地,截断奇异值分解中,只取最大的k个奇异值( k < R ( A ) k < R(A) k<R(A))来组成 Σ \Sigma Σ。
举例:
对于以下矩阵 A A A,其秩为3。
A = ( 1 0 0 0 0 0 0 4 0 3 0 0 0 0 0 0 2 0 0 0 ) A= \begin{pmatrix} 1 & 0 & 0 & 0 \\\ 0 & 0 & 0 & 4 \\\ 0 & 3 & 0 & 0 \\\ 0 & 0 & 0 & 0 \\\ 2 & 0 & 0 & 0 \\\ \end{pmatrix} A= 1 0 0 0 2 003000000004000
A A A的紧奇异值分解为: A = U r Σ r V r T A=U_r \Sigma_r V_r^T A=UrΣrVrT,其中:
U r = ( 0 0 0.2 1 0 0 0 1 0 0 0 0 0 0 0.8 ) , Σ r = ( 4 0 0 0 3 0 0 0 5 ) , V r T = ( 0 0 0 1 0 1 0 0 1 0 0 0 ) U_r= \begin{pmatrix} 0 & 0 & \sqrt{0.2} \\\ 1 & 0 & 0 \\\ 0 & 1 & 0 \\\ 0 & 0 & 0 \\\ 0 & 0 & \sqrt{0.8} \\\ \end{pmatrix}, \Sigma_r = \begin{pmatrix} 4 & 0 & 0 \\\ 0 & 3 & 0 \\\ 0 & 0 & \sqrt{5} \\\ \end{pmatrix}, V_r^T = \begin{pmatrix} 0 & 0 & 0 & 1 \\\ 0 & 1 & 0 & 0 \\\ 1 & 0 & 0 & 0 \\\ \end{pmatrix} Ur= 0 1 0 0 0 001000.20000.8 ,Σr= 4 0 0 030005 ,VrT= 0 0 1 010000100
A A A的截断奇异值分解为: A = U k Σ k V r T A=U_k\Sigma_kV_r^T A=UkΣkVrT,其中:
U r = ( 0 0 1 0 0 1 0 0 0 0 ) , Σ r = ( 4 0 0 3 ) , V r T = ( 0 0 0 1 0 1 0 0 ) U_r= \begin{pmatrix} 0 & 0 \\\ 1 & 0 \\\ 0 & 1 \\\ 0 & 0 \\\ 0 & 0 \\\ \end{pmatrix}, \Sigma_r = \begin{pmatrix} 4 & 0 \\\ 0 & 3 \\\ \end{pmatrix}, V_r^T = \begin{pmatrix} 0 & 0 & 0 & 1 \\\ 0 & 1 & 0 & 0 \\\ \end{pmatrix} Ur= 0 1 0 0 0 00100 ,Σr= 4 0 03 ,VrT= 0 0 010010
相当于缺失了一部分信息,但也可能够根据剩余的奇异值还原原有矩阵的信息,实现一定程度的数据压缩。例如以上截断奇异值分解可以进行以下还原:
A 2 = U 2 Σ 2 V 2 T = ( 0 0 0 0 0 0 0 4 0 3 0 0 0 0 0 0 0 0 0 0 ) A_2=U_2\Sigma_2V_2^T= \begin{pmatrix} 0 & 0 & 0 & 0 \\\ 0 & 0 & 0 & 4 \\\ 0 & 3 & 0 & 0 \\\ 0 & 0 & 0 & 0 \\\ 0 & 0 & 0 & 0 \\\ \end{pmatrix} A2=U2Σ2V2T= 0 0 0 0 0 003000000004000
几何含义
对于线性变换 A = U Σ V T A=U\Sigma V^T A=UΣVT,即等价于经过旋转 V T V^T VT,缩放 Σ \Sigma Σ,旋转 U U U。 U U U和 V V V都是正交阵,对应的线性变化仅为旋转。如下图所示。
计算方法
给定 m × n m \times n m×n的矩阵 A A A,进行奇异值分解 A = U Σ V T A=U\Sigma V^{T} A=UΣVT。
(1)求 A T A A^TA ATA的特征向量和特征值。
计算对称矩阵
W
=
A
T
A
W=A^TA
W=ATA,有以下特征方程:
(
W
−
λ
E
)
x
=
0
(W-\lambda E)x=0
(W−λE)x=0
求解特征方程可得特征值
λ
i
\lambda_{i}
λi,将特征值从大到小进行排列:
λ
1
≥
λ
2
≥
.
.
.
≥
λ
n
≥
0
\lambda_{1} \ge \lambda_{2} \ge ... \ge \lambda_{n} \ge 0
λ1≥λ2≥...≥λn≥0。带入特征方程能够得到对应的的特征向量。
(2)求解n阶的正交矩阵 V V V
将求得的特征向量进行单位化,得到单位特征向量 v 1 , v 2 , . . . , v n v_1,v_2,...,v_n v1,v2,...,vn,构成n阶的正交矩阵 V = [ v 1 , v 2 , . . . , v n ] V=[v_1,v_2,...,v_n] V=[v1,v2,...,vn]。
(3)求 m × n m \times n m×n对角阵 Σ \Sigma Σ
计算
A
A
A的奇异值:
σ
i
=
λ
i
,
i
=
1
,
2
,
.
.
.
,
n
\sigma_i=\sqrt{\lambda_i} \ , i=1,2,...,n
σi=λi ,i=1,2,...,n
,那么可以构造出
Σ
\Sigma
Σ,主对角线的元素为奇异值,其余为0。
Σ
=
d
i
a
g
(
σ
1
,
σ
2
,
.
.
.
,
σ
n
)
\Sigma=diag(\sigma_1,\sigma_2,...,\sigma_n)
Σ=diag(σ1,σ2,...,σn)
(4)求m阶的正交矩阵
U
U
U
对A的前r个正奇异值,令
u
j
=
1
σ
j
A
v
j
,
j
=
1
,
2
,
.
.
,
r
u_j=\frac{1}{\sigma_j}Av_j,j=1,2,..,r
uj=σj1Avj,j=1,2,..,r。得到部分正交矩阵:
U
1
=
[
u
1
u
2
.
.
.
u
r
]
U_1=[u_1 \ u_2 \ ... \ u_r]
U1=[u1 u2 ... ur]
求
A
T
A^T
AT的零空间中的一组标准正交基
u
r
+
1
,
u
r
+
2
,
.
.
.
,
u
m
{u_{r+1},u_{r+2},...,u_{m}}
ur+1,ur+2,...,um,记为
U
2
U_2
U2。
则能够得到:
U
=
[
U
1
U
2
]
U=[U_1 \ U_2]
U=[U1 U2]
(5)得到奇异值分解结果。
A
=
U
Σ
V
T
A=U\Sigma V^T
A=UΣVT
参考资料
《统计学习方法》-李航