· 线性代数 · 第 5 / 10 讲

5 · 特征值与特征向量

线性代数中最有魔力的概念。探索一个变换中哪些方向只被拉伸而不被旋转,以及它如何决定马尔可夫链和复杂系统的演化。

这是线性代数最有「魔力」的一节,也是 AI 里出镜率最高的概念之一。核心问题:一个变换里,有没有某些方向,只被拉伸、不被旋转?


一、定义

对方阵 A\mathbf{A},如果存在非零向量 v\mathbf{v} 和标量 λ\lambda 使得:

Av=λv\mathbf{A}\mathbf{v} = \lambda\mathbf{v}

v\mathbf{v}特征向量(eigenvector)λ\lambda 是对应的特征值(eigenvalue)

几何含义:一般向量被 A\mathbf{A} 作用后会「又转又拉」,但特征向量很特别——它只被拉伸(或压缩、翻转),方向不变。λ\lambda 就是拉伸的倍数:λ>1\lambda>1 拉长,0<λ<10<\lambda<1 压短,λ<0\lambda<0 反向。

直觉比喻:把变换想象成水流。大多数树叶被冲得又转又偏,但沿特征向量方向放的叶子只会笔直加速或减速。这些方向是系统的「骨架」。

二、怎么求

把定义改写成 (AλI)v=0(\mathbf{A} - \lambda\mathbf{I})\mathbf{v} = \mathbf{0}。要有非零解,系数阵必须不可逆,即行列式为零:

det(AλI)=0\det(\mathbf{A} - \lambda\mathbf{I}) = 0

这叫特征方程,解出 λ\lambda 后回代求 v\mathbf{v}。(实际中高维用迭代算法,不手算行列式。)

三、对角化(Diagonalization)

若 n 阶矩阵有 n 个线性无关的特征向量,则可写成:

A=PΛP1\mathbf{A} = \mathbf{P}\mathbf{\Lambda}\mathbf{P}^{-1}

其中 Λ\mathbf{\Lambda} 是特征值摆在对角线上的对角阵。意义:换到特征向量为基的坐标系里,这个复杂变换就变成「沿各轴独立缩放」这么简单。这让反复作用变得容易:Ak=PΛkP1\mathbf{A}^k = \mathbf{P}\mathbf{\Lambda}^k\mathbf{P}^{-1},只需对对角元素取 k 次方。

对称矩阵更好:一定可用正交矩阵对角化(谱定理),特征值全为实数,特征向量互相正交。协方差矩阵正是这种,这是 PCA 成立的基础。

四、跨领域应用

AI —— PCA 主成分分析:对数据的协方差矩阵求特征值/向量。特征向量指出数据「方差最大」(信息最多)的方向,特征值就是该方向上的方差。取前几个最大特征值对应的方向,就把高维数据压到低维而尽量不丢信息。这是最经典的降维方法。 区块链 / 搜索 —— PageRank 与马尔可夫链:网页(或节点)重要度是转移矩阵的主特征向量(对应特征值 1)。反复乘转移矩阵会收敛到这个特征向量——这就是网络的「稳态分布」。区块链里分析代币流转、质押状态演化用的是同一套马尔可夫链数学。详细数值案例见第五节·示例一。 工程 —— 稳定性与振动:动力系统是否稳定,看特征值的符号/模长;深度学习里梯度爆炸/消失,本质是反复连乘矩阵后特征值的幂走向了无穷或零。

五、应用案例:矩阵迭代与系统状态演化

特征值最深刻的应用之一是分析迭代系统的长期行为。用向量 vt\mathbf{v}_t 表示系统在 tt 时刻的状态,矩阵 MM 编码演化规则:

vt+1=Mvt,k 步后 vk=Mkv0\mathbf{v}_{t+1} = M\mathbf{v}_t, \qquad k\text{ 步后 } \mathbf{v}_k = M^k \mathbf{v}_0

系统的长期行为——是收敛、增长还是衰减——完全由 MM 的特征值决定。下面用两个例子展示这套骨架如何套到不同领域。

示例一:马尔可夫链(用户行为)

某电商用户,每一步处于「浏览(B)」或「购买(P)」之一,跳转规律:

建模:状态向量与转移矩阵

状态向量vt=(vB,vP)\mathbf{v}_t = (v_B,\, v_P)^\toptt 时刻的概率分布,两分量分别是「处于 B 的概率」和「处于 P 的概率」,和为 1。

转移矩阵:约定 MijM_{ij} = 从状态 jj 跳到状态 ii 的概率,即列 = 当前状态,行 = 下一步目标状态。逐列填入:

M=(0.70.40.30.6)M = \begin{pmatrix} 0.7 & 0.4 \\ 0.3 & 0.6 \end{pmatrix}

验证:每列和为 1(从任一当前状态出发,下一步总概率 = 1)。一步演化:vt+1=Mvt\mathbf{v}_{t+1} = M\mathbf{v}_tkk 步后 vk=Mkv0\mathbf{v}_k = M^k \mathbf{v}_0

数值演化

v0=(1,0)\mathbf{v}_0 = (1,\, 0)^\top(100% 浏览)出发,每步左乘 MM

v1=Mv0=(0.70.40.30.6)(10)=(0.7000.300)\mathbf{v}_1 = M\mathbf{v}_0 = \begin{pmatrix}0.7 & 0.4 \\ 0.3 & 0.6\end{pmatrix}\begin{pmatrix}1 \\ 0\end{pmatrix} = \begin{pmatrix}0.700 \\ 0.300\end{pmatrix} v2=Mv1=(0.70.40.30.6)(0.70.3)=(0.6100.390)\mathbf{v}_2 = M\mathbf{v}_1 = \begin{pmatrix}0.7 & 0.4 \\ 0.3 & 0.6\end{pmatrix}\begin{pmatrix}0.7 \\ 0.3\end{pmatrix} = \begin{pmatrix}0.610 \\ 0.390\end{pmatrix} v3=Mv2=(0.7×0.61+0.4×0.390.3×0.61+0.6×0.39)=(0.5830.417)\mathbf{v}_3 = M\mathbf{v}_2 = \begin{pmatrix}0.7\times0.61 + 0.4\times0.39 \\ 0.3\times0.61 + 0.6\times0.39\end{pmatrix} = \begin{pmatrix}0.583 \\ 0.417\end{pmatrix}

v4(0.5750.425)\mathbf{v}_4 \approx \begin{pmatrix}0.575\\0.425\end{pmatrix}v5(0.5720.428)\mathbf{v}_5 \approx \begin{pmatrix}0.572\\0.428\end{pmatrix}v10(0.57140.4286)\mathbf{v}_{10} \approx \begin{pmatrix}0.5714\\0.4286\end{pmatrix}v20(0.57140.4286)\mathbf{v}_{20} \approx \begin{pmatrix}0.5714\\0.4286\end{pmatrix}——相邻两次迭代的差已小于 10310^{-3},继续迭代只是无限逼近稳态 π\boldsymbol{\pi}

稳态分布

迭代足够多次后,状态分布会稳定在一个固定值附近,不再变化。这个极限分布就叫稳态分布(Stationary Distribution)。

它是一个列向量 π=(π1,π2,,πn)\boldsymbol{\pi} = (\pi_1, \pi_2, \ldots, \pi_n)^\top,每个分量表示系统长期处于对应状态的概率,满足 πi=1\sum \pi_i = 1。在本例中,π=(a,b)\boldsymbol{\pi} = (a, b)^\topaabb 分别是长期处于浏览和购买状态的概率。

稳态分布满足一个很自然的条件:再转移一步也不变,即

Mπ=πM\boldsymbol{\pi} = \boldsymbol{\pi}

求解:流入 = 流出

π=(a,b)\boldsymbol{\pi} = (a, b)^\topa+b=1a + b = 1。系统稳定时,每个状态的「流入人数」必须等于「流出人数」:

两者相等:0.3a=0.4b0.3a = 0.4b,结合 a+b=1a + b = 1,解得

a=47,b=37    π=(4/73/7)(0.5710.429)a = \frac{4}{7},\quad b = \frac{3}{7}\quad\implies\quad \boldsymbol{\pi} = \begin{pmatrix} 4/7 \\ 3/7 \end{pmatrix} \approx \begin{pmatrix} 0.571 \\ 0.429 \end{pmatrix}

长期来看,约 57.1% 的用户处于浏览状态,42.9% 处于购买状态。

与特征值的关系

Mπ=πM\boldsymbol{\pi} = \boldsymbol{\pi} 改写成 Mπ=1πM\boldsymbol{\pi} = 1 \cdot \boldsymbol{\pi},立刻看出:稳态分布就是矩阵 MM 对应特征值 λ=1\lambda = 1 的特征向量。这正是对角化发挥作用的场景:若 M=PΛP1M = P\Lambda P^{-1},则 Mk=PΛkP1M^k = P\Lambda^k P^{-1},计算 Mkv0M^k \mathbf{v}_0 只需对对角元各自取 kk 次方。

推广到一般马尔可夫链

上面是两状态的例子。一般地,任何满足以下条件的系统都可以用马尔可夫链描述:

  1. 状态有限;
  2. 下一步只取决于当前状态(无记忆);
  3. 转移概率不随时间变化。

核心公式不变:vt+1=Mvt\mathbf{v}_{t+1} = M\mathbf{v}_tvk=Mkv0\mathbf{v}_k = M^k \mathbf{v}_0。稳态分布的定义和求解方式也完全一样:解 Mπ=πM\boldsymbol{\pi} = \boldsymbol{\pi},加上 πi=1\sum \pi_i = 1

什么时候会收敛? 如果任意状态之间最终都能互相到达、且不会陷入固定周期(称为遍历的 / ergodic),那么不管初始状态如何,长期都会收敛到唯一的稳态分布。

小结:稳态分布满足 Mπ=πM\boldsymbol{\pi} = \boldsymbol{\pi},即 MM 在特征值 1 下的特征向量。概率论关心它代表什么,线性代数关心怎么算出来。

延伸阅读


示例二:Leslie 矩阵(总量可变)

如果矩阵不再要求「列和为 1」,系统会怎样?答案是总量不再守恒——既可能增长,也可能衰减。生态学里的 Leslie 矩阵就是典型代表,它的骨架同样是 Nk=LkN0\mathbf{N}_{k} = L^k \mathbf{N}_0,但允许种群指数增长。

把种群按年龄分组,状态向量各分量是各组数量;矩阵编码「繁殖 + 存活率」,各列不要求和为 1,所以总量可增可减。约定同样是列 = 当前年龄组、行 = 下一期年龄组

某鸟类分幼年与成年。规律:每只成年每期产 3 只幼崽;幼年 50% 存活升为成年;成年 80% 存活;幼年不繁殖。按约定填入(第 1 行/列 = 幼年,第 2 行/列 = 成年):

L=(030.50.8)L = \begin{pmatrix} 0 & 3 \\ 0.5 & 0.8 \end{pmatrix}

数值演化

N0=(10,20)\mathbf{N}_0 = (10,\, 20)^\top 出发,每步左乘 LL

N1=LN0=(010+3200.510+0.820)=(6021)\mathbf{N}_1 = L\mathbf{N}_0 = \begin{pmatrix} 0 \cdot 10 + 3 \cdot 20 \\ 0.5 \cdot 10 + 0.8 \cdot 20 \end{pmatrix} = \begin{pmatrix} 60 \\ 21 \end{pmatrix} N2=LN1=(060+3210.560+0.821)=(6346.8)\mathbf{N}_2 = L\mathbf{N}_1 = \begin{pmatrix} 0 \cdot 60 + 3 \cdot 21 \\ 0.5 \cdot 60 + 0.8 \cdot 21 \end{pmatrix} = \begin{pmatrix} 63 \\ 46.8 \end{pmatrix} N3=LN2=(063+346.80.563+0.846.8)=(140.468.9)\mathbf{N}_3 = L\mathbf{N}_2 = \begin{pmatrix} 0 \cdot 63 + 3 \cdot 46.8 \\ 0.5 \cdot 63 + 0.8 \cdot 46.8 \end{pmatrix} = \begin{pmatrix} 140.4 \\ 68.9 \end{pmatrix}

继续迭代,观察总量、幼占比和增长率的变化:

kkNk\mathbf{N}_k(幼, 成)总量幼占比增长率
0(10, 20)3033.3%
1(60, 21)8174.1%2.70
2(63, 46.8)109.857.4%1.36
3(140.4, 68.9)209.367.1%1.91
4(206.8, 125.4)332.262.3%1.59
5(376.1, 203.7)579.864.9%1.75
6(611.1, 351.0)962.163.5%1.66
7(1053.1, 582.6)1635.764.4%1.70
8(1747.7, 993.6)2741.363.8%1.68
9(2980.7, 1666.9)4647.664.1%1.70
10(5000.8, 2983.5)7984.364.1%1.69

两个量都在收敛:增长率在 1.69 附近振荡(振幅递减),幼占比趋近 64.1%。但与马尔可夫链不同,这里总量不守恒,种群在持续增长。

稳定增长状态

从上面的数值实验可以看到,增长率在 1.69 附近振荡收敛,幼占比趋近 64.1%。这说明系统进入了一种稳定增长状态:年龄结构比例固定,总量每代乘以同一个倍数。

这个状态满足:

Lv=λvL\mathbf{v} = \lambda \mathbf{v}

其中 λ\lambda 是每代的增长倍数,v\mathbf{v} 是稳定的年龄结构比例。

与马尔可夫链的对比:稳态分布满足 Mπ=1πM\boldsymbol{\pi} = 1 \cdot \boldsymbol{\pi}(转一步后分布不变);这里满足 Lv=λvL\mathbf{v} = \lambda \cdot \mathbf{v}(转一步后比例不变,总量乘以 λ\lambda)。

求解:特征值与特征向量

求最大特征值:解特征方程 det(LλI)=0\det(L - \lambda I) = 0

det(λ30.50.8λ)=(λ)(0.8λ)30.5=λ20.8λ1.5=0\det\begin{pmatrix} -\lambda & 3 \\ 0.5 & 0.8-\lambda \end{pmatrix} = (-\lambda)(0.8-\lambda) - 3 \cdot 0.5 = \lambda^2 - 0.8\lambda - 1.5 = 0

求根公式:

λ=0.8±0.64+62=0.8±6.642{1.69(λmax)0.89(λ2)\lambda = \frac{0.8 \pm \sqrt{0.64 + 6}}{2} = \frac{0.8 \pm \sqrt{6.64}}{2} \approx \begin{cases} 1.69 & (\lambda_{\max}) \\ -0.89 & (\lambda_2) \end{cases}

λmax1.69\lambda_{\max} \approx 1.69,意味着每代总量乘以约 1.69(增长约 69%)。

求对应的特征向量(稳定年龄结构):解 (LλmaxI)v=0(L - \lambda_{\max} I)\mathbf{v} = 0,第一行给出:

λmaxvj+3va=0    vjva=3λmax31.691.78-\lambda_{\max} v_j + 3 v_a = 0 \implies \frac{v_j}{v_a} = \frac{3}{\lambda_{\max}} \approx \frac{3}{1.69} \approx 1.78

归一化后:幼年占比 vjvj+va=3λmax+364%\frac{v_j}{v_j + v_a} = \frac{3}{\lambda_{\max} + 3} \approx 64\%,成年占比 36%\approx 36\%——与迭代数据的收敛方向一致。

与特征值的关系

Lv=λmaxvL\mathbf{v} = \lambda_{\max} \mathbf{v} 正是特征值定义。与马尔可夫链的对比:

所以 λmax\lambda_{\max} 同时回答了两个问题:总量是否增长(看 λmax\lambda_{\max} 与 1 的关系)和结构是否稳定(对应特征向量给出比例)。

为什么增长率是振荡收敛的? 注意 λ20.89\lambda_2 \approx -0.89 是负数。分解 Nk\mathbf{N}_k 时,λ2\lambda_2 对应的项逐代正负交替((0.89)k(-0.89)^k),这就是增长率忽高忽低的原因。同时 λ2<λmax|\lambda_2| < \lambda_{\max},所以 λ2\lambda_2 项的贡献相对 λmax\lambda_{\max} 逐代衰减——振荡幅度越来越小,最终稳定在 λmax1.69\lambda_{\max} \approx 1.69

推广到一般 Leslie 矩阵

上面是两年龄组的例子。一般地,任何按年龄分组、用「繁殖率 + 存活率」描述种群演化的系统都可以用 Leslie 矩阵描述。核心公式不变:

Nk+1=LNk,Nk=LkN0\mathbf{N}_{k+1} = L\mathbf{N}_k,\qquad \mathbf{N}_k = L^k \mathbf{N}_0

稳定增长状态的定义和求解方式也完全一样:解 Lv=λmaxvL\mathbf{v} = \lambda_{\max} \mathbf{v},其中 λmax\lambda_{\max} 是最大特征值,v\mathbf{v} 是对应的特征向量。

小结:马尔可夫链与 Leslie 矩阵共享 vk=Mkv0\mathbf{v}_k = M^k \mathbf{v}_0 的骨架。区别在于:马尔可夫链列和为 1(总量守恒),收敛到稳态分布(λ=1\lambda=1 的特征向量);Leslie 矩阵列和无约束(总量可变),趋于固定增长率 λmax\lambda_{\max} 和稳定年龄结构。两者长期行为都由主特征值及其特征向量决定——这正是 Perron–Frobenius 定理的核心结论。

延伸阅读


六、小结

概念一句话理解典型应用
特征向量变换里不转只拉的方向PCA 主方向、稳态
特征值该方向上的拉伸倍数方差大小、稳定性
对角化换基后变成纯缩放高效幂运算
谱定理对称阵可正交对角化PCA 的基础

下一节:特征值只适用于方阵。对任意形状的矩阵(比如用户×商品评分表),有一个更通用的神器——奇异值分解 SVD


七、进阶:幂迭代(计算机怎么求主特征向量)

高维矩阵无法手解特征方程,实际用 幂迭代(Power Iteration):随便取一个向量,反复乘矩阵并归一化,它会收敛到最大特征值对应的特征向量。

xk+1=AxkAxk\mathbf{x}_{k+1}=\dfrac{\mathbf{A}\mathbf{x}_k}{\|\mathbf{A}\mathbf{x}_k\|}

道理:把初始向量按特征向量展开,每乘一次 A\mathbf{A},各分量被各自特征值放大,最大的那个越来越占主导,最终「碾压」其余方向。PageRank 就是对网页转移矩阵做幂迭代

八、谱与迹、行列式的关系

全体特征值的集合叫谱(Spectrum)。两个好用的速查恒等式:

tr(A)=iλi(迹=特征值之和),det(A)=iλi  (行列式=特征值之积)\text{tr}(\mathbf{A})=\sum_i\lambda_i\quad(\text{迹=特征值之和}),\qquad \det(\mathbf{A})=\prod_i\lambda_i\;(\text{行列式=特征值之积})

所以只要有一个特征值为 0,行列式就为 0,矩阵不可逆——和第 3 节完全自洽。

九、数字例题(步步算)

A=[2112]\mathbf{A}=\begin{bmatrix}2&1\\1&2\end{bmatrix} 的特征值与特征向量。

特征方程:det(AλI)=(2λ)21=0λ24λ+3=0λ1=3,λ2=1\det(\mathbf{A}-\lambda\mathbf{I})=(2-\lambda)^2-1=0\Rightarrow\lambda^2-4\lambda+3=0\Rightarrow\lambda_1=3,\lambda_2=1

验证:迹 =2+2=4=3+1=2+2=4=3+1✓,行列式 =41=3=3×1=4-1=3=3\times1✓。两特征向量正交(对称矩阵的必然结果)。

十、NumPy 代码

import numpy as np

A = np.array([[2.0, 1.0], [1.0, 2.0]])
vals, vecs = np.linalg.eig(A)
print("特征值 =", vals)            # [3. 1.]
print("特征向量(列)=\n", vecs)

# 幂迭代求主特征向量
x = np.random.randn(2)
for _ in range(50):
    x = A @ x
    x = x / np.linalg.norm(x)
print("幂迭代结果 =", x, " 主特征值 ≈", x @ A @ x)

# PCA:对协方差矩阵做特征分解
X = np.random.randn(200, 5)
X -= X.mean(0)
cov = np.cov(X, rowvar=False)
ev, _ = np.linalg.eigh(cov)
print("各主成分方差(降序) =", np.sort(ev)[::-1])

十一、动手算一算

  1. [3002]\begin{bmatrix}3&0\\0&-2\end{bmatrix} 的特征值(不用算,直接看)。
  2. 一个马尔可夫转移矩阵的最大特征值是多少?对应特征向量是什么含义?
  3. 若某层权重反复相乘后特征值模长都 <1,前向/反向传播会发生什么?

答案:(1) 对角矩阵特征值就是对角元 3 和 -2。(2) 最大特征值为 1,对应特征向量(归一化后)是稳态分布,即长期访问概率。(3) 信号/梯度逐层衰减→梯度消失,深层难以训练;这也是要用残差连接、归一化的原因。