【学习笔记】奇异值分解

奇异值分解 singular value decomposition(svd)

我们现在有矩阵 \(A=USV^T\),大小为 \(n\times m\)\(U\) 大小为 \(n\times n\)\(V\) 大小为 \(m\times m\),同时 \(U,V\) 满足 \(UU^T,VV^T\) 都是单位矩阵,\(S\) 大小为 \(n\times m\) 且只有主对角线(\(a_{i,i})\)上有值。

我们的目标是给定 \(A\) 求出来 \(U,S,V^T\)

做法很简单,求 \(A^T A\)\(m\) 个特征向量,concat 起来就是 \(V\)\(AA^T\)\(n\) 个特征向量,concat 起来就是 \(U\)。S 中 \(a_{i,i}\)\(A^T A\) 的第 \(i\) 个特征值 \(\lambda_i\) 开根号。

理解起来可能费点时间,其实就是一个从信息和结论双向奔赴的过程。中间的额外发现就是可以调整系数使得矩阵的特征向量模长为 \(1\)

  • SVD 和 PCA 的联系

    在 PCA 的实现流程中,对于一个零均值化之后的矩阵,我们希望计算 \(AA^T\) 再求特征向量。但是有人嫌弃矩阵乘法太慢了,然后发现 SVD 中的 \(V\) 矩阵就是我们要的特征向量的 concat 结果(其实 U 矩阵可以用于行压缩or数据数量的压缩,V 矩阵可以用于列压缩 or 数据维度的压缩)

    这里有一个讲 power iteration method 求 PCA 中正交基的,做法简单得离谱,证明摆了,因为我太颓废了。

    注意找到一个基之后应该把所有向量减去在这个基上的投影。

posted @ 2024-01-20 17:44  没学完四大礼包不改名  阅读(89)  评论(0)    收藏  举报