【线性代数】奇异值分解

上次说到矩阵的特征分解,形式优美,含义明确,但是只有方阵才有特征分解,这就限制了特征分解的一般性。

假设我们有一个一般化的矩阵 A m × n , 我们依然希望对它进行分解来发现一些隐含的性质,但它又不是方阵,不能特征分解,那怎么办呢?一个可行的方案就是,去构造一个方阵,不就可以进行特征分解了嘛!

  • A A T 或者 A T A 一定是方阵,而且一定是对称方阵。那么,就可以用来特征分解了
  • 我们定义 A A T 的特征向量为 A 的左奇异向量(left singular vector), 所有左奇异向量按列排列构成 m × m 的方阵 U
  • 我们定义 A T A 的特征向量为 A 的右奇异向量(right singular vector), 所有右奇异向量按列排列构成 n × n 的方阵 V
  • 我们定义 A T A 特征值的平方根(同时也是 A A T 特征值的平方根), 构成一个 m × n 的对角阵 D , 数目不够的话塞 0 D 中对角线上的元素称为 A 的奇异值。

从而,我们可以把矩阵 A 分解成三个矩阵的乘积,

A = U D V T
, 其维数对应关系为 m × n = ( m × m ) × ( m × n ) × ( n × n ) . 我们称此为,奇异值分解(singular value decomposition, SVD).

SVD 最有用的一个场景是 对非方阵求伪逆矩阵。下面说。

猜你喜欢

转载自blog.csdn.net/baishuo8/article/details/81369286