特征值分解是什么?把矩阵拆成“方向”和“伸缩倍数”
特征值分解(Eigendecomposition),也叫谱分解,是线性代数中把一个方阵分解成由它的特征值和特征向量所表示的形式的方法。它揭示了一个矩阵所代表的线性变换的本质结构,在数学、物理、工程和机器学习中都有非常广泛的应用。
先理解特征值和特征向量
一个矩阵可以看作是对空间中向量的一种变换:把一个向量乘以这个矩阵,就得到一个新的向量,原来的向量可能被旋转、拉伸、压缩或翻转。对于大多数向量来说,经过变换之后,它的方向会发生改变。但有一些特殊的向量,经过这个矩阵变换之后,方向保持不变,只是长度被拉伸或缩短了某个倍数,也可能反向。这些特殊的向量就叫作矩阵的特征向量,被拉伸或缩短的倍数就叫作对应的特征值。用公式表示就是:矩阵乘以特征向量,等于特征值乘以这个特征向量。
可以用一个直观的例子来理解:想象把一张印着图案的橡皮膜沿着水平方向拉长到两倍。膜上大多数方向的线条都会被拉歪,但水平方向的线条仍然是水平的,只是变长了两倍;竖直方向的线条仍然是竖直的,长度不变。那么,水平方向就是一个特征向量,特征值是 2;竖直方向是另一个特征向量,特征值是 1。
特征值分解是什么
如果一个 n 阶方阵有 n 个线性无关的特征向量,就可以把这个矩阵分解为三个矩阵的乘积:第一个矩阵由所有的特征向量作为列组成;中间是一个对角矩阵,对角线上的元素就是各个特征值;最后是第一个矩阵的逆矩阵。这种分解的意义在于:任何一个复杂的线性变换,都可以理解为先换到由特征向量组成的“坐标系”中,在这个坐标系里只做简单的沿各个坐标轴的伸缩,伸缩的倍数就是特征值,然后再换回原来的坐标系。
并不是所有的方阵都能进行特征值分解,只有那些具有足够多个线性无关特征向量的矩阵才可以,这类矩阵被称为可对角化矩阵。一类特别重要的情况是实对称矩阵:它一定可以进行特征值分解,所有的特征值都是实数,而且特征向量可以选得两两垂直。这使得它的分解形式特别简洁,在统计和机器学习中经常遇到的协方差矩阵就是实对称矩阵。对于不是方阵或者无法对角化的矩阵,可以使用更一般的奇异值分解(SVD)。
它有什么用
计算矩阵的乘方:要计算一个矩阵自乘很多次的结果,如果直接计算会非常费时,而利用特征值分解,只需要对对角矩阵中的特征值分别求乘方就可以了,大大简化了计算。主成分分析(PCA):这是最经典的数据降维方法。它计算数据的协方差矩阵,对其进行特征值分解。特征向量指出了数据变化的主要方向,特征值则表示数据在这个方向上变化的大小。保留特征值最大的几个方向,就能用较少的维度保留数据中的大部分信息。谷歌的 PageRank 算法:网页的重要性排名,本质上是求一个描述网页链接关系的大矩阵的主特征向量。谱聚类:利用图拉普拉斯矩阵的特征向量来对数据进行聚类。物理和工程:在量子力学中,物理量的可能取值就是对应算符的特征值;在结构工程中,建筑和桥梁的固有振动频率与振动形态也通过求解特征值问题得到,这对于防止共振、设计抗震结构非常重要。此外,分析一个动态系统是否稳定,也常常要看相关矩阵的特征值。