奇异值分解(Singular Value Decomposition)

来源:互联网 发布:小米2s支持4g网络吗 编辑:程序博客网 时间:2024/04/29 17:40

1. 正交(Orthogonality)

如果两个向量的内积为0,我们说向量正交。在二维平面中,两个向量正交就是它们的夹角为
如果矩阵满足,其中是单位矩阵,则是正交矩阵。
是正交矩阵,则有:
  1. 是正交矩阵;
  2. 的各行是单位向量且两两正交;
  3. 的各列是单位向量且两两正交;

  4. 是正交矩阵,则也是正交矩阵;

2. 线性变换(Linear Transformation)

我们有一个对角矩阵

考虑平面上任意一点(x, y)经线性变换后得到新的点

变换后的效果如下图所示,平面在水平方向上被拉伸了3倍,在垂直方向没有改变:
时,变换效果如下
如果我们将第1个网络旋转,再做相同的线性变换,会有下面的效果

我们发现,旋转后的网格与原来的网格发生了相同的变化,都是在一个方向上拉伸了3倍。
上面的例子比较特殊,因为是一个2x2的对称矩阵。事实上,对于任意的2x2的对称矩阵,我们都可以通过把原始的网格旋转一定的角度,然后通过做一个线性变换后,使其表现为一个方向或两个正交的方向上产生拉伸。

3.  特征值分解

更一般的,对于方阵,如果存在标量和非零列向量,使得

则称向量是方阵的特征向量(eigenvector),而把叫做方阵的特征值(eigenvalue)。从几何学的角度讲,上式表示向量在使用矩阵进行变换后,只是发生了拉伸或收缩,而方向并没有改变。我们对上式做一个变换,可以得到
我们如果把看作变量,则上式有非零解的充要条件是
通过解上述方程,可以得到方阵M的特征向量和特征值。

4.  奇异值分解


特征值分解有一定的局限性,它要求矩阵是一个方阵。那么对于任意一个普通的矩阵,该如何对它分解得到它的特征向量呢?
先看一个简单的例子,假设向量是两个正交的单位向量,则也正交
我们用向量分别表示沿向量方向的单位向量;分别表示向量的长度,则分别分别描述了网格沿某个特定方向拉伸或收缩的数量,我们把叫做矩阵的奇异值(singular value)。因此我们有

对于任意向量,由于正交,可以得到







通常把表示为

其中的列向量是是对角矩阵,对角线上的每一项分别是对应的的列向量是。可以看到,奇异值分解把矩阵M分解为三个部分,表示目标域中的一组正交基,表示原始域中的一组正交基,描述了中的一组向量变换为中的向量时拉伸或收缩的数量。


参考:
  1. We Recommend a Singular Value Decomposition

0 0
原创粉丝点击