特征值分解(Eigen Value Decomposition,EVD)、奇异值分解(Singular Value Decomposition,SVD)原理、公式推导及应用

1 正交矩阵&正交变换

  • 正交变换是保持图形形状和大小不变的几何变换,包含旋转、平移、轴对称及这些变换的复合形式,正交变换可以保持向量的长度和向量之间的角度不变。特别的,标准正交基经正交变换后仍为标准正交基。
  • 在有限维的空间中,正交变换在标准正交基下的矩阵表示为正交矩阵,其所有行和所有列也都各自构成一组标准正交基。
  • 同时,正交变换的逆变换也是正交变换,后者的矩阵表示是前者矩阵表示的逆。

2 特征值分解(Eigen Value Decomposition,EVD)

2.1 定义

【百度百科】特征分解(Eigendecomposition),又称谱分解(Spectral decomposition)是将矩阵分解为由其特征值和特征向量表示的矩阵之积的方法。需要注意只有对可对角化矩阵才可以施以特征分解。

如果矩阵AA是一个m×mm \times m的实对称矩阵(即A=ATA=A^T),那么它可以被分解为如下形式:

A=QΛQT=Q[λ1000λ2000λm]QT(2-1) A=Q \Lambda Q^T=Q \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_m \end{bmatrix} Q^T \tag{2-1}

其中QQ为标准正交阵,即有QQT=IQQ^T=IΛ\Lambdam×mm \times m的对角矩阵,λi\lambda_i称为特征值,QQ为特征矩阵,QQ中的列向量qiq_i称为特征向量。

2.2 推导

假设存在m×mm \times m的满秩对称矩阵AA,它有mm个不同的特征值λi(i=1,2,...,m)\lambda_i(i=1,2,...,m),对应的特征向量为xi(i=1,2,...,m)x_i(i=1,2,...,m)xix_imm维列向量),则有:

Ax1=λ1x1Ax2=λ2x2Axm=λmxm(2-2) \begin{array}{cc} Ax_1=\lambda_1 x_1 \\ Ax_2=\lambda_2 x_2 \\ \cdots \\ Ax_m=\lambda_m x_m \end{array} \tag{2-2}

U=[x1x2xm]U=\begin{bmatrix} x_1 & x_2 & \cdots & x_m \end{bmatrix},则上式可以表示为矩阵形式:

AU=UΛ(2-3) AU=U\Lambda \tag{2-3}

Λ=[λ1000λ2000λm](2-4) \Lambda= \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_m \end{bmatrix} \tag{2-4}

进一步就可以得到A的特征值分解:

A=UΛU1=UΛUT(2-5) A=U\Lambda U^{-1}=U\Lambda U^T \tag{2-5}


3 奇异值分解(Singular Value Decomposition,SVD)

3.1 定义

【百度百科】奇异值分解(Singular Value Decomposition)是线性代数中一种重要的矩阵分解,奇异值分解则是特征分解在任意矩阵上的推广。在信号处理、统计学等领域有重要应用。

如果AA是一个m×nm \times n阶矩阵,则存在一个分解使得:

A=UΣVT A=U \Sigma V^T

其中UUVV分别为m×mm \times mn×nn \times n的酉矩阵/单位正交矩阵(即UUT=UTU=IVVT=VTV=IUU^T=U^TU=I,VV^T=V^TV=I)。UU称为左奇异矩阵,VV称为右奇异矩阵,Σ\Sigma对角线上的元素σi\sigma_i即为MM的奇异值。一般地Σ\Sigma有如下形式:

Σ=[σ1000σ20000]m×n(3-1) \Sigma= \begin{bmatrix} \sigma_1 & 0 & \cdots & 0 \\ 0 & \sigma_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 0 \end{bmatrix}_{m \times n} \tag{3-1}

3.2 推导

在矩阵的特征值分解中,矩阵AA的行列维度是相同的,但在实际应用中,矩阵往往是非方阵、非对称的(如点云配准问题等)。为了对这类矩阵进行分解,我们引入奇异值分解(SVD)。

假设矩阵AA的维度为m×n(mn)m \times n (m \not= n),虽AA不是方阵,但AATAA^TATAA^TA均为方阵,其维度分别为m×mm \times mn×nn \times n。因此可以对这两个方阵分别进行特征值分解:

AAT=PΛ1PTATA=QΛ2QT(3-2) AA^T= P \Lambda_1 P^T \\ A^TA= Q \Lambda_2 Q^T \tag{3-2}

其中Λ1\Lambda_1Λ2\Lambda_2均为对角矩阵,且两个方阵具有相同的非零特征值σ1,σ2,...,σk{\sigma_1,\sigma_2,...,\sigma_k},其中kmin(m,n)k \leq min(m,n)。这样就可以进一步得到奇异值分解的公式:

A=PΛQT(3-3) A=P \Lambda Q^T \tag{3-3}

接下来通过更直观的方式对SVD的原理和推导过程进行说明(参考:You Don’t Know SVD (Singular Value Decomposition))。

首先从最简单的二维座标说起,任何力矢量都可以沿xxyy轴分解:
在这里插入图片描述
这其实就是最简单的SVD,SVD就是将向量分解到正交轴上(正交变换前的正交轴和正交变换后的正交轴)。

如下图,我们将向量aa进行分解:
在这里插入图片描述
可以得到3个信息:

  • 投影方向(单位向量v1v_1v2v_2):表示沿着xxyy轴的投影方向,这也可以为其它的正交轴;
  • 投影长度(线段sa1s_{a1}sa2s_{a2}
  • 投影向量(pa1p_{a1}pa2p_{a2}):通过投影向量可以反向计算出原始向量aa,同时我们可以发现pa1=sa1v1p_{a1}=s_{a1}*v_1pa2=sa2v2p_{a2}=s_{a2}*v_2

那么我们就可以得到一个关键结论:

任何向量都可以表示为:

  • 投影方向的单位矢量(v1v_1v2v_2,…)
  • 在投影方向上的长度(sa1s_{a1}sa2s_{a2},…)

将这一结论扩展到多个向量(或点)以及所有维度上,就是SVD所作的事情:

在这里插入图片描述

图. 数据集的一个示例(一个点可以视为通过原点的向量)

我们先从单个向量入手,利用矩阵来处理这看似复杂的问题。因此我们必须找到一种方法来表示使用矩阵进行向量分解的操作。
在这里插入图片描述

图. 向量在倾斜的座标轴上投影

我们知道,一个向量在另一个向量上的投影长度可以用向量的点积来计算:
在这里插入图片描述

图. 将$a$投影到$v_1$和$v_2$上

上式可以利用矩阵表示为:
在这里插入图片描述

图. 通过为每个单位向量增加一个额外的列,一次写出两个方程

也可以将其扩展为多个点/向量:
在这里插入图片描述

图. 通过为每个点添加额外的行。$S$是包含投影长度的矩阵

添加点bb后:
在这里插入图片描述
进一步,将上式扩展为任意多点和维度,有:
在这里插入图片描述

图. n = 点的个数,d = 维数,A = 包含点的矩阵,V = 包含分解轴的矩阵,S = 包含投影长度的矩阵
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020042312361059.gif#pic_center)

在这里插入图片描述

图 这里的点积就是普通的矩阵乘法

这等价于:
在这里插入图片描述

图. 因为V包含标准正交列,它的逆等于它的转置(正交矩阵的性质)

这就是SVD所说的(记住关键结论):

任何向量集(A)都可以用它们在正交轴(V)上的投影长度(S)来表示。

然而,传统的奇异值公式为:
在这里插入图片描述
实际上这也就等价于求解下式的来源:在这里插入图片描述
如果你仔细观察矩阵S,你会发现它包括:

在这里插入图片描述
如果我们能将这些列向量归一化是最好的,也就是说使它们具有单位长度。这是通过将每个列向量除以它的大小来实现的,但是是以矩阵的形式。

但首先,我们来看一个简单的例子,看看这个“除法”是怎么做的:

在这里插入图片描述
假设我们要把M的第一列除以2。我们肯定要乘以另一个矩阵来保持等式:
在这里插入图片描述
很容易证明未知矩阵就是单位矩阵,第一个元素被除数2代替
在这里插入图片描述
第二列除以3现在变成了一个直接的问题把单位矩阵的第二元素换成3
在这里插入图片描述
很明显,这个操作可以推广到任何大小的矩阵。

我们现在想把上面的除法概念应用到矩阵SS上。为了归一化SS的列向量,我们用它们的大小来除它们
在这里插入图片描述
在上面的例子中,我们对M所做的就是:
在这里插入图片描述
最终我们可以得到奇异值分解的公式:
在这里插入图片描述
当然,为了不分散对核心概念的注意力,省略了一些细节和严格的数学运算。

再来看UUΣ\Sigma

在这里插入图片描述
σ\sigma呢?为什么我们要用正常化的方式去寻找它们来增加自己的负担呢?

我们已经看到σi\sigma_i是所有的点,在第ii个单位向量viv_i上投影长度的平方和的平方根。那么这又说明了什么呢?

在这里插入图片描述

图. 红色线段 = v1上的投影。蓝色线段 = v2上的投影。越近的点到一个特定的轴的投影,相应的σ值越大

因为在它们的定义中,σ\sigma包含特定轴上投影长度的和,它们表示所有点到那个轴的距离。例如如果σ1>σ2\sigma_1 > \sigma_2,那么大多数点更接近v1v_1,反之亦然。这在SVD的无数应用中有着巨大的实用价值。


4 SVD的应用

SVD在数据压缩等领域都有应用,具体参考[1][2][3][4]。

参考

[1] https://blog.csdn.net/sjyttkl/article/details/97563819
[2] https://www.zhihu.com/question/34143886/answer/196294308
[3] https://www.cnblogs.com/endlesscoding/p/10033527.html#335555762
[4] https://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html
[5] You Don’t Know SVD (Singular Value Decomposition)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章