特征值与特征向量(eigenvalues and eigenvectors)
/ EYE-gun-VAL-yooz and EYE-gun-VEK-turz /
当一个矩阵重塑空间时,它会把大多数向量推往某个全新的方向。但有少数几个特别的向量很「倔」:这个变换只会把它们拉长或缩短,却绝不会把它们撞离自己原来那条直线。那些倔强的方向就是特征向量,而每个向量被拉长或缩短的倍数,就是它对应的特征值。德文前缀「eigen」意为「自己的」或「特有的」——它们正是这个变换专属的私人坐标轴。
特征值为2,意味着那个向量长度变成两倍,方向却不变;特征值为0.5,意味着它缩短一半;特征值为负,则意味着它沿同一条线翻转、指向相反。特征向量与特征值合在一起,揭示出一个变换的「骨架」:那些它作用起来最简单的天然方向——就像看清一块木头的纹理,你就知道顺着哪个方向能把它劈得利落。
这个概念悄悄支撑着许多数据科学。主成分分析——把高维数据压缩到其中最重要的几个方向上的经典工具——整个就建立在特征向量之上。谷歌最初的 PageRank,正是把最权威的网页找成了网页链接结构的一个特征向量。它们还能告诉你:一个反复进行的过程,最终是会爆掉还是会安顿下来。一句实话:并非每个矩阵都有一套整齐的实特征向量,而且为巨型矩阵计算它们是重活——有用,但天下没有免费的午餐。
拿矩阵 [ [2, 0], [0, 3]] 来说。一个平躺在水平轴上的向量会被拉长到两倍,方向却从不偏转——所以它是一个特征值为2的特征向量。一个竖直朝上的向量会被拉成三倍——特征值为3。相比之下,一支斜着的箭头会被甩到一个新角度,所以它不是这个矩阵的特征向量。
特征向量是变换推不偏的那些方向;特征值不过是它把这些方向拉伸了多少。
特征向量标记的是一个方向,所以它的任意非零倍都算「同一个」特征向量——重要的并不是它的长度。这个概念只适用于方阵;对于非方阵,与之密切相关的工具是奇异值分解。