本文的目的是如何用 SVD 分解来简化求解协方差矩阵的特征值和特征向量。
给任何一个 m * n 的矩阵 X,数据按行排列,协方差矩阵 covMatrix 是 n * n 维的。如果 m << n,求一个巨大的 n * n 维矩阵的特征值和特征向量是很费时费力的。比如在将PCA 用于图片降维时,一个分辨率为 640 * 480 的图片 reshape 成一行时有30万维(640 * 480 = 307200)。协方差矩阵就是 30万 * 30万 维,这是很巨大的。求它的特征值和特征向量代价是很高的。
1. SVD 分解
对于任意一个 m * n 的矩阵的矩阵 X,总能分解成下面这种形式:
其中:
- U、V 是单位正定矩阵,即: