奇异值分解
导读:
奇异值分解singular value decomposition-SVD:是一种矩阵因子分解方法,是线性代数的概念。
- 本书中主成分分析,潜在语义分析都用到了奇异值分解。
- 奇异值分解可以看作是矩阵数据压缩的一种方法,即用因子分解的方式近似地表示原始矩阵,这种近似是在平方损失下的最优近似。
1-奇异值分解的定义与性质
1.1 定义
- 奇异值分解:将一个非零的
m
∗
n
m*n
m∗n实矩阵
A
,
A
∈
R
m
∗
n
A,A\in R^{m*n}
A,A∈Rm∗n,可以表示为以下三个实矩阵乘积运算,即进行矩阵的因子分解:
A = U Σ V T A=U \Sigma V^{T} A=UΣVT - U是m阶正交矩阵(orthogonal matrix)
- V是n阶正交矩阵
-
Σ
\Sigma
Σ是由降序排列的非负的对角线元素组成的
m
∗
n
m*n
m∗n矩形对角矩阵(rectangular diagonal matrix)
U U T = I UU^{T}=I UUT=I V V T = I VV^{T}=I VVT=I Σ = d i a g ( σ 1 , σ 2 , . . . σ p ) \Sigma =diag(\sigma_1,\sigma_2,...\sigma_p) Σ=diag(σ1,σ2,...σp) σ 1 ≥ σ 2 ≥ . . . σ p ≥ 0 \sigma_1 \ge \sigma_2 \ge ...\sigma_p \ge 0 σ1≥σ2≥...σp≥0 p = m i n ( m , n ) p=min(m,n) p=min(m,n) - σ i \sigma_i σi称为矩阵A的奇异值
- U U U的列向量为左奇异向量
- V V V的列向量为右奇异向量
- 矩阵的奇异值分解不是唯一的
1.2 紧奇异值分解
上述的奇异值分解, A = U Σ V T A=U\Sigma V^{T} A=UΣVT,称为矩阵的完全奇异值分解。紧奇异值分解是与原始矩阵等秩的奇异值分解
- 紧奇异值分解:有一
m
∗
n
m*n
m∗n实矩阵
A
A
A,其秩为
r
a
n
k
(
A
)
=
r
,
r
≤
m
i
n
(
m
,
n
)
rank(A)=r,r\le min(m,n)
rank(A)=r,r≤min(m,n),则A的紧奇异值分解(compact singular value decomposition)为:
A = U r Σ r V r T A=U_r \Sigma_r V_r^{T} A=UrΣrVrT - U r U_r Ur是 m ∗ r m*r m∗r阶矩阵,完全奇异值分解中 U U U的前 r r r 列
- V r V_r Vr是 n ∗ r n*r n∗r矩阵,完全奇异值分解中 V V V的前 r r r 列
- Σ r \Sigma_r Σr 是 Σ \Sigma Σ 的前 r r r 个对角线元素得到
- 紧奇异值分解的对角矩阵 Σ r \Sigma_r Σr的秩与原始矩阵 A A A的秩相等
1.3 截断奇异值分解
截断奇异值分解:在矩阵的奇异值分解中,只取最大的 k k k 个奇异值( k < r , r k<r,r k<r,r为矩阵的秩)对应的部分。截断奇异值分解是比原始矩阵低秩的奇异值分解
- 截断奇异值分解:有一
m
∗
n
m*n
m∗n实矩阵
A
A
A,其秩为
r
a
n
k
(
A
)
=
r
,
0
<
k
<
r
rank(A)=r,0 < k <r
rank(A)=r,0<k<r,则A的截断奇异值分解(truncated singular value decomposition)为:
A ≈ U k Σ k V k T A \approx U_k \Sigma_k V_k^{T} A≈UkΣkVkT - U k U_k Uk是 m ∗ k m*k m∗k阶矩阵,完全奇异值分解中 U U U的前 k k k 列
- V k V_k Vk是 n ∗ k n*k n∗k矩阵,完全奇异值分解中 V V V的前 k k k 列
- Σ k \Sigma_k Σk 是 k k k 阶对角阵, Σ \Sigma Σ 的前 k k k 个对角线元素得到
- 截断奇异值分解的对角矩阵 Σ k \Sigma_k Σk的秩与原始矩阵 A A A的秩低
- 在实际应用中,常常需要对矩阵的数据进行压缩,将其近似表示。奇异值分解是在平方损失(弗罗贝尼乌斯范数)意义下对矩阵的最优近似。
- 紧奇异值分解——无损压缩
- 截断奇异值分解——有损压缩
1.4 几何解释
- 从线性变换的角度来看,奇异值分解将 m ∗ n m*n m∗n矩阵的 A A A表示从 n n n维空间 R n R^n Rn到 m m m维空间 R m R^m Rm的一个线性变换,主要分为以下三个简单变换,且这种变换分解一定存在。
- 一个坐标系的旋转或反射变换: V T V^T VT
- 一个坐标轴的缩放变换: Σ \Sigma Σ
- 一个坐标系的旋转或反射变换:
U
U
U
奇异值分解的计算计算过程,可参考例15.5,计算量不大,推导就可以理解。
2-奇异值分解与矩阵近似
2.1 弗罗贝尼乌斯范数
- 奇异值分解也是一种矩阵近似的方法,这个近似是在弗罗贝尼乌斯范数(Frobenius norm)意义下的近似。
- 矩阵的弗罗贝尼乌斯范数是向量的L2范数的直接推广,对应着机器学习中的平方损失函数
- 弗罗贝尼乌斯范数: 设矩阵
A
∈
R
m
∗
n
,
A
=
[
a
i
j
]
m
n
A \in R^{m*n},A=[a_{ij}]_{mn}
A∈Rm∗n,A=[aij]mn,则范数为:
∥ A ∥ F = ( ∑ i = 1 m ∑ j = 1 n ( a i j ) 2 ) 1 / 2 \parallel A \parallel _F =(\sum_{i=1}^{m} \sum_{j=1}^{n}(a_{ij})^2 ) ^{1/2} ∥A∥F=(i=1∑mj=1∑n(aij)2)1/2 - 引理15.1:假设矩阵
A
∈
R
m
∗
n
A \in R^{m*n}
A∈Rm∗n,A的奇异值分解为
U
Σ
V
T
U \Sigma V^T
UΣVT,其中
Σ
=
d
i
a
g
(
σ
1
,
σ
2
,
.
.
.
σ
n
)
\Sigma = diag(\sigma_1,\sigma_2,...\sigma_n)
Σ=diag(σ1,σ2,...σn),则:
∥ A ∥ F = ( σ 1 2 + σ 2 2 + . . . + σ n 2 ) 1 / 2 \parallel A \parallel _F =(\sigma_1^2+\sigma_2^2+...+\sigma_n^2) ^{1/2} ∥A∥F=(σ12+σ22+...+σn2)1/2
2.2 矩阵的最优近似
- 奇异值分解是在平方损失(弗罗贝尼乌斯范数)意义下对矩阵的最优近似,即数据压缩
- 紧奇异值分解:是在弗罗贝尼乌斯范数意义下的无损压缩
- 截断奇异值分解:是有损压缩。截断奇异值分解得到的矩阵的秩为k,通常远小于原始矩阵的秩r,所以是由低秩矩阵实现了对原始矩阵的压缩
2.3 矩阵的外积展开
-
矩阵 A A A 的奇异值分解 U Σ V T U \Sigma V^T UΣVT 可以由外积形式表示
- 将
A
A
A的奇异值分解看成矩阵
U
Σ
U \Sigma
UΣ 和
V
T
V^T
VT 的乘积,将
U
Σ
U\Sigma
UΣ按列向量分块,将
V
T
V^T
VT 按行向量分块,得到:
U Σ = [ σ 1 u 1 , σ 2 u 2 , . . . σ n u n ] U\Sigma = [\sigma_1u_1 ,\sigma_2u_2,...\sigma_nu_n] UΣ=[σ1u1,σ2u2,...σnun] V T = [ v 1 T v 2 T . . . v n T ] V^T =\begin{bmatrix}v_1^T \\v_2^T \\... \\v_n^T \end{bmatrix} VT=⎣ ⎡v1Tv2T...vnT⎦ ⎤
则:
A = σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + . . . + σ n u n v n T A=\sigma_1u_1v_1^T+\sigma_2u_2v_2^T+...+\sigma_nu_nv_n^T A=σ1u1v1T+σ2u2v2T+...+σnunvnT - A为矩阵的外积展开
- u k v k T u_kv_k^T ukvkT是 m ∗ n m*n m∗n矩阵,是列向量 u k u_k uk和行向量 v k T v_k^T vkT的外积
- 将
A
A
A的奇异值分解看成矩阵
U
Σ
U \Sigma
UΣ 和
V
T
V^T
VT 的乘积,将
U
Σ
U\Sigma
UΣ按列向量分块,将
V
T
V^T
VT 按行向量分块,得到:
-
设 A n − 1 = σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + . . . + σ n − 1 u n − 1 v n − 1 T A_{n-1} =\sigma_1u_1v_1T+ \sigma_2u_2v_2^T+...+\sigma_{n-1}u_{n-1}v_{n-1}^T An−1=σ1u1v1T+σ2u2v2T+...+σn−1un−1vn−1T,则 r a n k ( A n − 1 ) = n − 1 rank(A_{n-1})=n-1 rank(An−1)=n−1,且 A n − 1 A_{n-1} An−1是秩为 n − 1 n-1 n−1的矩阵在弗罗贝尼乌斯范数意义下 A A A 的最优近似矩
一般的,设矩阵:
A
k
=
σ
1
u
1
v
1
T
+
σ
2
u
2
v
2
T
+
.
.
.
+
σ
k
u
k
v
k
T
A_{k} =\sigma_1u_1v_1T+ \sigma_2u_2v_2^T+...+\sigma_{k}u_{k}v_{k}^T
Ak=σ1u1v1T+σ2u2v2T+...+σkukvkT,则
r
a
n
k
(
A
k
)
=
k
rank(A_{k}) = k
rank(Ak)=k,且
A
k
A_{k}
Ak是秩为
k
k
k的矩阵在弗罗贝尼乌斯范数意义下
A
A
A 的最优近似矩阵.
矩阵
A
k
A_k
Ak就是
A
A
A 的截断奇异值分解。
- 通常由于奇异值 σ i \sigma_i σi递减很快,所以 k k k 取很小值时, A k A_k Ak 也可以对 A A A 有很好的近似。