本文已参与「新人创作礼」活动,一起开启掘金创作之路。
0. 线性代数与矩阵基础知识回顾
本文讨论的范围实数空间,不涉及复数空间,因此各种术语和定理都以实空间下的名称为准,当然也可以推广到复数空间,只需进行一些名词的变换(对称矩阵-Hermitian举矩阵,正交矩阵-酉矩阵)。
0.1. 正交向量组
对于向量x1,x2,⋯,xk∈Rn,若xiTxj=0,∀(i,j)∈{(i,j)∣1≤i<j≤k},则称x1,x2,⋯,xk是一组正交向量组,简称正交组。如果正交组里面的向量还是归一化的,即xiTxi=1,i=1,2,⋯,k,则称该正交组为标准正交组。
0.2. 正交矩阵
一个实的正方矩阵Q∈Rn×n称为正交矩阵,若:
QQT=QTQ=I(0,2)
由上述定义可以推出如下几个等价的叙述:
- Q是正交矩阵
- QT是正交矩阵
- Q是非奇异的,并且QT=Q−1
- QQT=QTQ=I
- Q=[q1,q2,⋯,qn]的列组成标准正交组
- Q的行组成标准正交组
- ∀x∈Rn,y=Qx的Euclidean长度与x的Euclidean长度相等,也即有yTy=xTx。
0.3. 正定矩阵
一个对称矩阵A称为
- 正定矩阵(A>0):若二次型xTAx>0,∀x=0;
- 半正定矩阵(A≥0):若二次型xTAx≥0,∀x=0;
- 负定矩阵:如果−A是正定的
- 半负定矩阵:如果−A是半正定的
正定矩阵的等价条件:
- 存在可逆矩阵C使CTC等于该矩阵
- 正定矩阵<=>所有特征值取正实数,半正定矩阵<=>所有特征值取非负实数
0.4. 特征值
- 对于n阶对称矩阵A的特征值都是实数。
- 对于n阶对称矩阵A,总存在正交阵Q,使得Q−1AQ是对角阵,且对角线元素就是A的特征值按从大到小排列。即Q−1AQ=diag(λ1,λ2,⋯,λn),λ1>λ2>⋯>λn。
1. 奇异值分解(Singular Value Decomposition)
1.1. svd的数学描述
svd告诉我们,对任意m×n的矩阵A,都可以表示为下面这种形式:
A=UΣVT(1,1)
其中U是m×m的正交阵,V是n×n的正交阵,Σ是m×n的对角阵,
Σ=[Σ1000](1,2)
Σ1=diag(σ1,σ2,⋯,σr),r=rank(A),其对角元素按照从大到小排列
1.2. svd的证明
在开始证明前,先给出几个引理:
- 引理1:ATA可对角化,且具有实的非负特征值(这是因为ATA是半正定矩阵)
- 引理2:rank(A)=rank(ATA)=rank(AAT)
- 引理3:A=0 ⇔ ATA=0
下面开始证明:
设rank(A)=r,根据引理1和引理2,存在n×n的正交矩阵V,使得
VT(ATA)V=diag(λ1,λ2,⋯,λn)(1,3)
其中λ1>λ2>⋯>λr>0=λr+1=⋯=λn为ATA的n个非负特征根。
令Σ1=diag(σ1,σ2,⋯,σr)=diag(σ1,σ2,⋯,σr),V1=[v1,v2,⋯,vr],V2=[vr+1,vr+2,⋯,vn],并且有V=[V1,V2]。
从而有ATAV1=V1Σ12,进一步得到:
Σ1−1V1TATAV1Σ1−1=I(1,4)
令U1=AV1Σ1−1,则有U1TU1=I。此时,我们可以选择m−r组标准正交向量与U1的列向量组成一组标准正交基,也即U=[U1,U2]是一个m阶正交阵,且U1TU2=0。
另一方面,容易得到:
ATAV2=V20 ⇒ V2TATAV2=0(1,5)
根据引理3可得AV2=0
综上可得:
UTAV=[U1TAV1U2TAV1U1TAV2U2TAV2]=[Σ1U2TU1Σ100]=[Σ1000]=Σ(1,6)
也即A=UΣVT,到此奇异值分解定理得证。
2. SVD的应用
2.1. 矩阵压缩
矩阵压缩的具体场景有很多,例如图像就是一个矩阵,神经网络里面的某一层的权重也是一个矩阵。
由(1,1)可知
A=σ1u1v1T+σ2u2v2T+⋯σrurvrT(2,1)
注意上式用到了Kronecker积
将奇异值从大到小排序,选择前k个最大的奇异值对应的乘积项,可以在尽可能保留矩阵信息的情况下压缩存储空间