奇异值分解
将一个矩阵 A A A进行奇异值分解可以得到三个矩阵, U U U, Σ \Sigma Σ, V T V^{T} VT,表示如下:
A = U Σ V T A = U\Sigma V^{T} A=UΣVT
用MATLAB对矩阵A做奇异值分解只需要一行命令:[U,S,V] = svd(A)
U U U、 Σ \Sigma Σ、 V V V矩阵的理解
-
U U U矩阵
U U U是一个正交矩阵, U U U矩阵的直觉理解是:将 A A A矩阵的基向量转换成span相同空间的两两正交的单位基向量(正交基)
所以 U U U矩阵满足: r a n g e ( c o l ( U ) ) = r a n g e ( c o l ( A ) ) range(col(U)) = range(col(A)) range(col(U))=range(col(A)),即 U U U的列向量和 A A A的列向量有相同的range
关键词:转换
-
Σ \Sigma Σ矩阵
Σ \Sigma Σ是一个“对角阵”(不一定是方阵), Σ \Sigma Σ矩阵的直觉理解是: U U U矩阵的每个基向量方向的权重是多大,权重大小按 Σ \Sigma Σ矩阵的左上角至右下角递减
关键词:加权
-
V V V矩阵
V V V是一个正交矩阵, V V V矩阵的直觉理解是:用什么样的组合方式,将经过 Σ \Sigma Σ加权后的正交基(即 U U U矩阵的列向量)重新组合成 A A A矩阵的列向量
由 A = U Σ V T A = U\Sigma V^{T} A=UΣVT可得 A T = V Σ U T A^{T} = V\Sigma U^{T} AT=VΣUT,所以 V V V矩阵满足: r a n g e ( c o l ( V ) ) = r a n g e ( r o w ( A ) ) range(col(V)) = range(row(A)) range(col(V))=range(row(A)),即 V V V的列向量和 A A A的行向量有相同的range
关键词:组合