文章目录
0. 线性代数与矩阵基础知识回顾
本文讨论的范围实数空间,不涉及复数空间,因此各种术语和定理都以实空间下的名称为准,当然也可以推广到复数空间,只需进行一些名词的变换(对称矩阵-Hermitian举矩阵,正交矩阵-酉矩阵)。
0.1. 正交向量组
对于向量 x 1 , x 2 , ⋯ , x k ∈ R n x_1,x_2,\cdots,x_k\in R^n x1,x2,⋯,xk∈Rn,若 x i T x j = 0 , ∀ ( i , j ) ∈ { ( i , j ) ∣ 1 ≤ i < j ≤ k } x_i^Tx_j=0,\forall (i,j)\in \{(i,j)\lvert 1\leq i<j\leq k\} xiTxj=0,∀(i,j)∈{(i,j)∣1≤i<j≤k},则称 x 1 , x 2 , ⋯ , x k x_1,x_2,\cdots,x_k x1,x2,⋯,xk是一组正交向量组,简称正交组。如果正交组里面的向量还是归一化的,即 x i T x i = 1 , i = 1 , 2 , ⋯ , k x_i^Tx_i=1,i=1,2,\cdots,k xiTxi=1,i=1,2,⋯,k,则称该正交组为标准正交组。
0.2. 正交矩阵
一个实的正方矩阵
Q
∈
R
n
×
n
Q\in R^{n\times n}
Q∈Rn×n称为正交矩阵,若:
Q
Q
T
=
Q
T
Q
=
I
(0,2)
QQ^T=Q^TQ=I\\ \tag{0,2}
QQT=QTQ=I(0,2)
由上述定义可以推出如下几个等价的叙述:
- Q Q Q是正交矩阵
- Q T Q^T QT是正交矩阵
- Q Q Q是非奇异的,并且 Q T = Q − 1 Q^T=Q^{-1} QT=Q−1
- Q Q T = Q T Q = I QQ^T=Q^TQ=I QQT=QTQ=I
- Q = [ q 1 , q 2 , ⋯ , q n ] Q=[q_1,q_2,\cdots,q_n] Q=[q1,q2,⋯,qn]的列组成标准正交组
- Q Q Q的行组成标准正交组
- ∀ x ∈ R n , y = Q x \forall x\in R^n, y=Qx ∀x∈Rn,y=Qx的Euclidean长度与 x x x的Euclidean长度相等,也即有 y T y = x T x y^Ty=x^Tx yTy=xTx。
0.3. 正定矩阵
一个对称矩阵 A A A称为
- 正定矩阵( A > 0 A>0 A>0):若二次型 x T A x > 0 , ∀ x ≠ 0 x^TAx>0,\forall x\neq 0 xTAx>0,∀x=0;
- 半正定矩阵( A ≥ 0 A\geq 0 A≥0):若二次型 x T A x ≥ 0 , ∀ x ≠ 0 x^TAx\geq 0,\forall x\neq 0 xTAx≥0,∀x=0;
- 负定矩阵:如果 − A -A −A是正定的
- 半负定矩阵:如果 − A -A −A是半正定的
正定矩阵的等价条件:
- 存在可逆矩阵 C C C使 C T C C^TC CTC等于该矩阵
- 正定矩阵 < = > <=> <=>所有特征值取正实数,半正定矩阵 < = > <=> <=>所有特征值取非负实数
0.4. 特征值
- 对于n阶对称矩阵 A A A的特征值都是实数。
- 对于n阶对称矩阵 A A A,总存在正交阵 Q Q Q,使得 Q − 1 A Q Q^{-1}AQ Q−1AQ是对角阵,且对角线元素就是 A A A的特征值按从大到小排列。即 Q − 1 A Q = d i a g ( λ 1 , λ 2 , ⋯ , λ n ) , λ 1 > λ 2 > ⋯ > λ n Q^{-1}AQ=diag(\lambda_1,\lambda_2,\cdots,\lambda_n),\lambda_1>\lambda_2>\cdots>\lambda_n Q−1AQ=diag(λ1,λ2,⋯,λn),λ1>λ2>⋯>λn。
1. 奇异值分解(Singular Value Decomposition)
1.1. svd的数学描述
svd告诉我们,对任意
m
×
n
m\times n
m×n的矩阵
A
A
A,都可以表示为下面这种形式:
A
=
U
Σ
V
T
(1,1)
A=U\Sigma V^T\\ \tag{1,1}
A=UΣVT(1,1)
其中
U
U
U是
m
×
m
m \times m
m×m的正交阵,
V
V
V是
n
×
n
n\times n
n×n的正交阵,
Σ
\Sigma
Σ是
m
×
n
m\times n
m×n的对角阵,
Σ
=
[
Σ
1
0
0
0
]
(1,2)
\Sigma=\begin{bmatrix} \Sigma_1 &0\\ 0 &0 \\ \end{bmatrix} \\ \tag{1,2}
Σ=[Σ1000](1,2)
Σ
1
=
d
i
a
g
(
σ
1
,
σ
2
,
⋯
,
σ
r
)
,
r
=
r
a
n
k
(
A
)
\Sigma_1=diag(\sigma_1,\sigma_2,\cdots,\sigma_r),r=rank(A)
Σ1=diag(σ1,σ2,⋯,σr),r=rank(A),其对角元素按照从大到小排列
1.2. svd的证明
在开始证明前,先给出几个引理:
- 引理1: A T A A^TA ATA可对角化,且具有实的非负特征值(这是因为 A T A A^TA ATA是半正定矩阵)
- 引理2: r a n k ( A ) = r a n k ( A T A ) = r a n k ( A A T ) rank(A)=rank(A^TA)=rank(AA^T) rank(A)=rank(ATA)=rank(AAT)
- 引理3: A = 0 ⇔ A T A = 0 A=0\ \Leftrightarrow\ A^TA=0 A=0 ⇔ ATA=0
下面开始证明:
设
r
a
n
k
(
A
)
=
r
rank(A)=r
rank(A)=r,根据引理1和引理2,存在
n
×
n
n\times n
n×n的正交矩阵
V
V
V,使得
V
T
(
A
T
A
)
V
=
d
i
a
g
(
λ
1
,
λ
2
,
⋯
,
λ
n
)
(1,3)
V^T(A^TA)V=diag(\lambda_1,\lambda_2,\cdots,\lambda_n)\\ \tag{1,3}
VT(ATA)V=diag(λ1,λ2,⋯,λn)(1,3)
其中
λ
1
>
λ
2
>
⋯
>
λ
r
>
0
=
λ
r
+
1
=
⋯
=
λ
n
\lambda_1>\lambda_2>\cdots>\lambda_r>0=\lambda_{r+1}=\cdots=\lambda_n
λ1>λ2>⋯>λr>0=λr+1=⋯=λn为
A
T
A
A^TA
ATA的n个非负特征根。
令
Σ
1
=
d
i
a
g
(
σ
1
,
σ
2
,
⋯
,
σ
r
)
=
d
i
a
g
(
σ
1
,
σ
2
,
⋯
,
σ
r
)
\Sigma_1=diag(\sigma_1,\sigma_2,\cdots,\sigma_r)=diag(\sqrt\sigma_1,\sqrt\sigma_2,\cdots,\sqrt\sigma_r)
Σ1=diag(σ1,σ2,⋯,σr)=diag(σ1,σ2,⋯,σr),
V
1
=
[
v
1
,
v
2
,
⋯
,
v
r
]
,
V
2
=
[
v
r
+
1
,
v
r
+
2
,
⋯
,
v
n
]
V_1=[v_1,v_2,\cdots,v_r],V_2=[v_{r+1},v_{r+2},\cdots,v_{n}]
V1=[v1,v2,⋯,vr],V2=[vr+1,vr+2,⋯,vn],并且有
V
=
[
V
1
,
V
2
]
V=[V_1,V_2]
V=[V1,V2]。
从而有
A
T
A
V
1
=
V
1
Σ
1
2
A^TAV_1=V_1\Sigma_1^2
ATAV1=V1Σ12,进一步得到:
Σ
1
−
1
V
1
T
A
T
A
V
1
Σ
1
−
1
=
I
(1,4)
\Sigma_1^{-1}V_1^TA^TAV_1\Sigma_1^{-1}=I\\ \tag{1,4}
Σ1−1V1TATAV1Σ1−1=I(1,4)
令
U
1
=
A
V
1
Σ
1
−
1
U_1=AV_1\Sigma_1^{-1}
U1=AV1Σ1−1,则有
U
1
T
U
1
=
I
U_1^TU_1=I
U1TU1=I。此时,我们可以选择
m
−
r
m-r
m−r组标准正交向量与
U
1
U_1
U1的列向量组成一组标准正交基,也即
U
=
[
U
1
,
U
2
]
U=[U_1,U_2]
U=[U1,U2]是一个m阶正交阵,且
U
1
T
U
2
=
0
U_1^TU_2=0
U1TU2=0。
另一方面,容易得到:
A
T
A
V
2
=
V
2
0
⇒
V
2
T
A
T
A
V
2
=
0
(1,5)
A^TAV_2=V_20\ \Rightarrow\ V_2^TA^TAV_2=0\\ \tag{1,5}
ATAV2=V20 ⇒ V2TATAV2=0(1,5)
根据引理3可得
A
V
2
=
0
AV_2=0
AV2=0
综上可得:
U
T
A
V
=
[
U
1
T
A
V
1
U
1
T
A
V
2
U
2
T
A
V
1
U
2
T
A
V
2
]
=
[
Σ
1
0
U
2
T
U
1
Σ
1
0
]
=
[
Σ
1
0
0
0
]
=
Σ
(1,6)
\begin{aligned} U^TAV&=\begin{bmatrix} U_1^TAV_1 &U_1^TAV_2\\ U_2^TAV_1 &U_2^TAV_2 \\ \end{bmatrix} \\ &=\begin{bmatrix} \Sigma_1 &0\\ U_2^TU_1\Sigma_1 &0 \\ \end{bmatrix} \\ &=\begin{bmatrix} \Sigma_1 &0\\ 0 &0 \\ \end{bmatrix} \\ &=\Sigma\\ \tag{1,6} \end{aligned}
UTAV=[U1TAV1U2TAV1U1TAV2U2TAV2]=[Σ1U2TU1Σ100]=[Σ1000]=Σ(1,6)
也即
A
=
U
Σ
V
T
A=U\Sigma V^T
A=UΣVT,到此奇异值分解定理得证。
2. SVD的应用
2.1. 矩阵压缩
矩阵压缩的具体场景有很多,例如图像就是一个矩阵,神经网络里面的某一层的权重也是一个矩阵。
由
(
1
,
1
)
(1,1)
(1,1)可知
A
=
σ
1
u
1
v
1
T
+
σ
2
u
2
v
2
T
+
⋯
σ
r
u
r
v
r
T
(2,1)
A=\sigma_1 u_1v_1^T+\sigma_2 u_2v_2^T+\cdots \sigma_ru_r v_r^T\tag{2,1}
A=σ1u1v1T+σ2u2v2T+⋯σrurvrT(2,1)
注意上式用到了Kronecker积
将奇异值从大到小排序,选择前k个最大的奇异值对应的乘积项,可以在尽可能保留矩阵信息的情况下压缩存储空间