矩阵的特征分解和奇异值(SVD)分解——求法和意义

目录

一、特征分解(特征值、特征向量)

二、正定、半正定、负定

三、奇异值(SVD)分解


一、特征分解(特征值、特征向量)

许多数学对象可以通过将它们分解成多个组成部分或者找到它们的一些属性以便更好地理解,这些属性是通用的,而不是由我们选择表示它们的方式产生的。

例如,整数可以分解为质因数。我们可以用十进制或二进制等不同方式表示整 数 12,但是 12 = 2 × 2 × 3 永远是对的。从这个表示中我们可以获得一些有用的信 息,比如 12 不能被 5 整除,或者 12 的倍数可以被 3 整除。正如我们可以通过分解质因数来发现整数的一些内在性质,我们也可以通过分解矩阵来发现矩阵不明显的函数性质

特征分解(eigende composition)是使用最广的矩阵分解之一,即我们将矩阵分解成一组特征向量和特征值。这就是我们中学最早接触的特征分解方法,也是大学矩阵论或线性代数的基本功,大家回顾一下:

方阵 A 的特征向量(eigenvector)是指与 A 相乘后相当于对该向量进行缩放的非零向量 v:

标量 λ 被称为这个特征向量对应的特征值(eigenvalue)。类似地,我们也可以定义特征向量(left eigenvector).

如果 v 是 A 的特征向量,那么任何缩放后的向量 sv (s ∈ R,s ̸= 0) 也是A的特征向量。此外,sv 和 v 有相同的特征值。基于这个原因,通常我们只考虑单位特征向量。

假设矩阵 A 有 n 个线性无关的特征向量 {v(1),...,v(n)},对应着特征值 {λ1,...,λn}。我们将特征向量连接成一个矩阵,使得每一列是一个特征向量:

类似地,我们也可以将特征值连接成一个向量:

因此 A 的特征分解(eigendecomposition)可以记作:

diag表示对角矩阵。

不是每一个矩阵都可以分解成特征值和特征向量。在某些情况下,特征分解存在,但是会涉及复数而非实数。

具体来讲,每个实对称矩阵都可以分解成实特征向量和实特征值:

其中 Q 是 A 的特征向量组成的正交矩阵,Λ 是对角矩阵。特征值 Λi,i 对应的特征向量是矩阵 Q 的第 i 列,记作 Q:,i。因为 Q 是正交矩阵,我们可以将 A 看作沿方向v(i) 延展λi 倍的空间

上图展示的是特征向量和特征值的作用效果的一个实例。在这里,矩阵 A 有两个标准正交的特征向量,对应特征值为 λ1 的 v(1) 以及对应特征值为 λ2 的 v(2)。(左) 我们画出了所有的单位向量 u ∈ \mathbb{R}^{2} 的集合,构成一个单位圆。(右) 我们画出了所有的 Au 点的集合。通过观察 A 拉伸单位圆的方式,我们可以看到它将 v(i) 方向的空间拉伸了 λi 倍

虽然任意一个实对称矩阵 A 都有特征分解,但是特征分解可能并不唯一。如果两个或多个特征向量拥有相同的特征值,那么在由这些特征向量产生的生成子空间中,任意一组正交向量都是该特征值对应的特征向量。因此,我们可以等价地从这些特征向量中构成 Q 作为替代。按照惯例,我们通常按降序排列 Λ 的元素。在该约定下,特征分解唯一当且仅当所有的特征值都是唯一的。

二、正定、半正定、负定

矩阵的特征分解给了我们很多关于矩阵的有用信息。矩阵是奇异的当且仅当含 有零特征值。实对称矩阵的特征分解也可以用于优化二次方程f(x) = x^{T}Ax,其中 限制||x||2 = 1。当 x 等于 A 的某个特征向量时,f 将返回对应的特征值。在限制条件下,函数 f 的最大值是最大特征值,最小值是最小特征值。

所有特征值都是正数的矩阵被称为正定(positive definite);所有特征值都是非 负数的矩阵被称为半正定(positive semidefinite)。同样地,所有特征值都是负数的矩阵被称为负定(negative definite);所有特征值都是非正数的矩阵被称为半负定(negative semidefinite)。半正定矩阵受到关注是因为它们保证 ∀x,x^{T}Ax ≥ 0。此外,正定矩阵还保证x^{T}Ax= 0 ⇒ x = 0.

三、奇异值(SVD)分解

还有另一种分解矩阵的方法,被称为 奇异值分解(singular value decomposition, SVD),将矩阵分解为奇异向量(singular vector)奇异值(singular value)。特征值分解是一个提取矩阵特征很不错的方法,但是它只是对方阵而言的,在现实的世界中,我们看到的大部分矩阵都不是方阵,比如说有N个学生,每个学生有M科成绩,这样形成的一个N * M的矩阵就不可能是方阵,我们怎样才能描述这样普通的矩阵呢的重要特征呢?奇异值分解可以用来干这个事情,奇异值分解是一个能适用于任意的矩阵的一种分解的方法。

通过奇异值分解,我们会得到一些与特征分解相同类型的信息。然而,奇异值分解有更广泛的应用。每个实数矩阵都有一个奇异值分解,但不一定都有特征分解。例如,非方阵的矩阵没有特征分解,这时我们只能使用奇异值分解。

回想一下,我们使用特征分解去分析矩阵 A 时,得到特征向量构成的矩阵 V 和特征值构成的向量 λ,我们可以重新将 A 写作:

奇异值分解是类似的,只不过这回我们将矩阵 A 分解成三个矩阵的乘积:

这些矩阵中的每一个经定义后都拥有特殊的结构。矩阵 U 和 V 都定义为正交矩阵,而矩阵 D 定义为对角矩阵。注意,矩阵 D 不一定是方阵。

对角矩阵 D 对角线上的元素被称为矩阵 A 的奇异值(singular value)。矩阵 U 的列向量被称为 左奇异向量(left singular vector),矩阵 V 的列向量被称 右奇异向量(right singular vector)

事实上,我们可以用与 A 相关的特征分解去解释 A 的奇异值分解。即:U是AA^{T} 的特征向量。V是A^{T}A 的特征向量。A 的非零奇异值即D中非零值是A^{T}A特征值的平方根,同时也是AA^{T}特征值的平方根。这告诉了我们怎么求U、D、V。

奇异值分解可以用于降噪、图像压缩、推荐算法等中。大家可以google搜索SVD应用的具体的例子。此处就不多赘述了!

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/lyxleft/article/details/84864791