最直观形象的SVD分解 SVD分解(奇异值分解),本应是本科生就掌握的方法,然而却经常被忽视
实际上,SVD分解不但很直观,而且极其有用
SVD分解提供了一种方法将一个矩阵拆分成简单的,并且有意义的几块
它的几何解释可以看做将一个空间进行旋转,尺度拉伸,再旋转三步过程
首先来看一个对角矩阵, 几何上, 我们将一个矩阵理解为对于点 (x, y) 从一个平面到另一个平面的映射: 下图显示了这个映射的效果: 平面被横向拉伸了 3倍,纵向没有变化
对于另一个矩阵 它的效果是 这样一个变化并不是很好描述,然而当我们将坐标系旋转45度后,我们可以看出 这时,我们发现这个新的网格上发生的变化和网格在对角阵下发生变化的效果相似
这是一个对称矩阵的例子,可以看出,对称矩阵经过旋转后,其作用就和对角阵类似了
数学上,对于一个对称矩阵 M, 我们可以找到一组正交向量 vi 从而 Mvi 相当于 vi上的标量乘积; 也就是 Mvi = λivi λi 是标量,也就是对应对角阵中对角线上的元素
由于这个性质,我们称 vi 是 M 的特征向量; λi 为特征值
一个对称矩阵不同特征值对应的特征向量是正交的
对于更广泛的情况,我们看看是否能从一个正交网格转换到另一个正交网格
考虑一个非对称矩阵: 这个矩阵的效果形象的称为剃刀(shear)
这个矩阵将网格在水平方向拉伸了,而垂直方向没有变化
如果我们将网格旋转大约 58度,这两个网格就又会都变为正交的了
奇异值分解: 考虑一个 2 *2 矩阵, 我们可以找到两组网格的对应关系
用向量表示,那就是当我们选择合适的单位正交向量 v1 和 v2, Mv1 和 Mv2 也是正交的
我们使用 u1 和 u2 代表 Mv1 和 Mv2的方向
Mv1 和 Mv2 的长度表示为 σ1 和 σ2,也就是网格在每个方向的拉伸
这两个拉伸值叫做M的 奇