SVD 奇异值分解理论推导
这里对 SVD 奇异值分解的数学公式给出一个简单的笔记,融合了自己对于公式推导过程的理解。
和 PCA 主成分分析一样,SVD 其实也是使用待定系数法对任意形状矩阵分解以后的矩阵乘法因子做的推断。
- PCA 主成分分析是对协方差矩阵进行特征值分解,待分解的矩阵是方阵,SVD 也用到了类似的过程,在结论上,SVD 给出了一个更好的结果,即对任意形状的矩阵都可以进行矩阵分解,但在分解的过程中,仍然构造出了方阵,PCA 主成分和 SVD 分解本质上,都用到了《线性代数》中最最基本的知识:对称矩阵的分解、特征值、特征向量等基本知识。
假设矩阵
A 可以写成如下表示:
A=UΣVT,
其中
A∈Rm×n,
U∈Rm×m 是一个正交矩阵(酉矩阵),
Σ∈Rm×n 是一个“对角矩阵”,
V∈Rn×n 是一个正交矩阵(酉矩阵)。
下面构造对称矩阵(方阵):
ATA=(VΣTUT)(UΣVT)=VΣT(UTU)ΣVT=VΣTΣVT
AAT=(UΣVT)(VΣTUT)=UΣ(VTV)ΣTUT=UΣΣTUT
其中
ΣTΣ∈Rn×n,
ΣΣT∈Rm×m,都是对角矩阵,它们除了形状不一样以外,非零的部分(都在主对角线上)是相等的。
而
ATA∈Rn×n、
AAT∈Rm×m 都是对称矩阵,因此,求解
U 和
V 就变成了实对称矩阵的对角化问题。
-
U 是
AAT 的特征向量按照列排成的矩阵(按照奇异值从大到小对应排列);
-
V 是
ATA 的特征向量按照列排成的矩阵(按照奇异值从大到小对应排列);
-
Σ 是
ΣTΣ 或者
ΣΣT 中非零元素的平方根(这两个矩阵虽然形状不一样,但是非零元素的位置是一样的)。
在具体计算的时候,可以先得到矩阵
A 的右奇异向量和奇异值,然后得到矩阵
A 的左奇异向量,具体计算如下:
AV=UΣ,此时认为
A 已知,
V 和
Σ 已经算出,故
U=AVΣ−1,即
ui=σi1Avi。
SVD 的应用
1、在 PCA 降维中,实际上用到的是 SVD;
参考资料:
1、周志华《机器学习》附录A.3 P402