本站内容由 AI 生成,可能存在错误。如发现问题,欢迎到 GitHub Issues 反馈。

特征分解与对角化:万物之基

特征分解与对角化:万物之基

更新于 2026-04-23

在前两篇中,我们建立了向量级(Art. 1A 向量空间几何:内积、投影、秩、零空间)和矩阵级(Art. 1B 矩阵结构几何:二次型、正定性、协方差、迹、行列式)的几何语言。我们看到协方差矩阵、Gram 矩阵、图 Laplacian 都是对称半正定矩阵,它们的二次型画出椭球,迹凝缩了总方差。这些结构的背后有一个统一的分析工具——特征分解(Eigendecomposition)。它回答一个根本问题:有没有一组坐标轴,让矩阵在新坐标下变成最简单的逐方向缩放?

为什么特征分解是”万物之基”?因为它揭示了线性变换的本质结构——一个矩阵到底在做什么。SVD 是特征分解对非方阵的推广;PCA 是对协方差矩阵的特征分解;PageRank 求的是转移矩阵的特征向量;甚至 SSM/Mamba 的高效计算也依赖于状态矩阵的对角化。理解了特征分解,后续所有矩阵方法的数学基础就建立起来了。

直觉:矩阵乘法就是线性变换

从变换的视角看矩阵

Art. 1a 向量空间几何 中,我们介绍了 Ax=yA\mathbf{x} = \mathbf{y} 的三个视角:行视角(每个输出是行与 x\mathbf{x} 的内积)、列视角(y\mathbf{y} 是列向量的线性组合)、映射视角(AA 是一个线性函数)。本文从映射视角出发,深入探索 AA 作为变换到底做了什么几何操作

一个方阵 ARn×nA \in \mathbb{R}^{n \times n} 把同一空间 Rn\mathbb{R}^n 中的向量 x\mathbf{x} 映射为新向量 y=Ax\mathbf{y} = A\mathbf{x}。不同的矩阵对应不同的几何效果:旋转、拉伸、反射、剪切、投影——或者它们的组合。一般来说,AxA\mathbf{x} 同时改变了 x\mathbf{x}方向长度

但是,在所有可能的输入方向中,有没有一些特殊方向——变换 AA 只改变向量的长度,而完全不改变其方向?

特征向量:不变方向

答案是:对于大多数矩阵,这样的特殊方向确实存在。沿着这些方向的向量,经过变换后仍然指向同一方向(或反向)——唯一的变化是被拉伸或压缩了一个倍数。

这就是特征向量和特征值的几何含义:

  • 特征向量(eigenvector)q\mathbf{q}:变换 AA 的”不变方向”——AA 作用在 q\mathbf{q} 上,结果仍然在 q\mathbf{q} 的方向上
  • 特征值(eigenvalue)λ\lambda:沿该方向的拉伸倍数

用下面的交互可视化来建立直觉。蓝色虚线圆是变换前的单位圆,紫色实线是变换后的形状。粗线标出的就是特征向量方向——注意它们是变换前后保持方向不变的方向。

A = [2.00, 1.00; 1.00, 2.00]
对称矩阵:实特征值、正交特征向量
xyλ1=3.00λ2=1.00变换前(单位圆)变换后 Ax特征向量方向(不变方向)

试试不同的矩阵:

  • 对称矩阵 [2112]\begin{bmatrix}2&1\\1&2\end{bmatrix}:两个正交的特征向量,单位圆变成轴对齐的椭圆
  • 反射矩阵 [0110]\begin{bmatrix}0&1\\1&0\end{bmatrix}:特征值 +1+1(沿 y=xy=x 不动)和 1-1(沿 y=xy=-x 反向)
  • 旋转矩阵:没有实特征向量!每个方向都被旋转了,没有”不变方向”(特征值是复数)
  • 投影矩阵:特征值是 1(投影方向,保持不变)和 0(被压到零)

这些例子建立了一个核心直觉:特征分解就是找到一个矩阵的”天然坐标系”——在这个坐标系下,变换变成了最简单的形式:逐方向独立缩放。

特征值方程:严格定义

定义

特征值方程:逐项理解Aq=λq矩阵 A 作用在向量 q 上 → 新向量原向量 q 乘标量 λ → 同方向,缩放 |λ| 倍等号含义:A 在方向 q 上的作用 = 简单缩放要求 q ≠ 0(零向量对任何 A 和 λ 都满足等式,不携带 A 的信息)

ARn×nA \in \mathbb{R}^{n \times n} 是一个 n×nn \times n 的方阵。如果存在非零向量 qRn\mathbf{q} \in \mathbb{R}^nq0\mathbf{q} \neq \mathbf{0})和标量 λR\lambda \in \mathbb{R}(或 λC\lambda \in \mathbb{C}),满足:

Aq=λqA\mathbf{q} = \lambda \mathbf{q}

则称 λ\lambdaAA 的一个特征值(eigenvalue),q\mathbf{q} 为对应的特征向量(eigenvector)。

逐项理解这个等式:

  • 左边 AqA\mathbf{q}:矩阵 AA 作为线性变换作用在向量 q\mathbf{q} 上,产生一个新向量
  • 右边 λq\lambda \mathbf{q}:原向量 q\mathbf{q} 乘以标量 λ\lambda——方向不变(或反向,如果 λ<0\lambda < 0),长度缩放 λ|\lambda|
  • 等号的含义:变换 AAq\mathbf{q} 映射到它自身的标量倍——AA 在这个方向上的作用等价于简单的缩放

为什么要求 q0\mathbf{q} \neq \mathbf{0} 因为零向量 0\mathbf{0} 对任何 AA 和任何 λ\lambda 都满足 A0=λ0=0A\mathbf{0} = \lambda \mathbf{0} = \mathbf{0}——它不携带任何关于 AA 的信息。我们关心的是那些非平凡的不变方向。

特征值的含义

特征值 λ 的几何效果λ > 1拉伸qλq0 < λ < 1压缩qλqλ = 1不变qλqλ = 0压到零qλ < 0反转+缩放qλq灰色虚线 = 原始特征向量 q,彩色实线 = 变换后 λq

特征值 λ\lambda 的大小和符号都有明确的几何意义:

λ\lambda 的值几何效果
λ>1\lambda > 1沿该方向拉伸
0<λ<10 < \lambda < 1沿该方向压缩
λ=1\lambda = 1该方向完全不变
λ=0\lambda = 0该方向被压到零(降维)
λ<0\lambda < 0方向反转,并按 $
λC\lambda \in \mathbb{C}涉及旋转(如纯旋转矩阵)

如何求特征值:特征多项式

从特征值方程到特征多项式Aq = λq特征值方程改写(A − λI)q = 0齐次方程q≠0det(A − λI) = 0特征方程p(λ) = λⁿ − tr(A)λⁿ⁻¹ + ···n 次特征多项式 → n 个根2×2 快捷公式:λ² − tr(A)·λ + det(A) = 0Σλᵢ = tr(A),Πλᵢ = det(A)Δ = tr²−4det:Δ>0 两个实根 | Δ=0 重根 | Δ<0 共轭复根

将特征值方程改写:

Aq=λq    Aqλq=0    (AλI)q=0A\mathbf{q} = \lambda \mathbf{q} \implies A\mathbf{q} - \lambda \mathbf{q} = \mathbf{0} \implies (A - \lambda I)\mathbf{q} = \mathbf{0}

其中 IIn×nn \times n 单位矩阵。这是一个关于 q\mathbf{q} 的齐次线性方程组。它有非零解 q0\mathbf{q} \neq \mathbf{0} 的条件是系数矩阵 (AλI)(A - \lambda I) 不可逆,即行列式为零:

det(AλI)=0\det(A - \lambda I) = 0

这个等式称为 AA特征方程(characteristic equation)。展开 det(AλI)\det(A - \lambda I),得到一个关于 λ\lambdann 次多项式——称为特征多项式(characteristic polynomial):

p(λ)=det(AλI)=(1)nλn+p(\lambda) = \det(A - \lambda I) = (-1)^n \lambda^n + \cdots

由代数基本定理(Fundamental Theorem of Algebra),nn 次多项式在复数域上恰好有 nn 个根(计入重数),所以 n×nn \times n 矩阵恰好有 nn 个特征值(计入重数,可能是复数)。

2×2 情形

A=[abcd]A = \begin{bmatrix}a & b \\ c & d\end{bmatrix},特征方程为:

det[aλbcdλ]=(aλ)(dλ)bc=0\det\begin{bmatrix}a - \lambda & b \\ c & d - \lambda\end{bmatrix} = (a-\lambda)(d-\lambda) - bc = 0

展开得到:

λ2(a+d)λ+(adbc)=0\lambda^2 - (a+d)\lambda + (ad - bc) = 0

即:

λ2tr(A)λ+det(A)=0\lambda^2 - \text{tr}(A)\,\lambda + \det(A) = 0

其中 tr(A)=a+d\text{tr}(A) = a + d 是矩阵的(trace,对角元素之和),det(A)=adbc\det(A) = ad - bc 是行列式。这是一个一元二次方程,用求根公式:

λ=tr(A)±tr(A)24det(A)2\lambda = \frac{\text{tr}(A) \pm \sqrt{\text{tr}(A)^2 - 4\det(A)}}{2}

判别式 Δ=tr(A)24det(A)\Delta = \text{tr}(A)^2 - 4\det(A) 决定了特征值的性质:

  • Δ>0\Delta > 0:两个不同的实特征值
  • Δ=0\Delta = 0:一个重复的实特征值(重数为 2)
  • Δ<0\Delta < 0:两个共轭复特征值

一个有用的事实:对任意 n×nn \times n 矩阵 AA,所有特征值之和等于迹,所有特征值之积等于行列式: i=1nλi=tr(A),i=1nλi=det(A)\sum_{i=1}^{n} \lambda_i = \text{tr}(A), \qquad \prod_{i=1}^{n} \lambda_i = \det(A) 这是因为特征多项式的系数可以用 Vieta 公式与根联系起来。(见 Strang, Introduction to Linear Algebra, Chapter 6)

求特征向量

找到特征值 λi\lambda_i 后,对应的特征向量通过求解齐次方程组得到:

(AλiI)q=0(A - \lambda_i I)\mathbf{q} = \mathbf{0}

这个方程的解空间——(AλiI)(A - \lambda_i I) 的零空间——称为 λi\lambda_i 对应的特征空间(eigenspace)。特征空间的维度(即零空间的维度)称为 λi\lambda_i几何重数(geometric multiplicity),它不超过 λi\lambda_i 在特征多项式中的重数(代数重数,algebraic multiplicity)。

数值例子:手算 2×2 特征分解

数值例子:A = [4,1; 2,3] 的完整分解原矩阵[4,1; 2,3]特征方程λ²−7λ+10 = 0特征值λ₁=5, λ₂=2特征向量q₁=[1,1] q₂=[1,−2]A = QΛQ⁻¹[4,1;2,3] = [1,1;1,−2] · [5,0;0,2] · [2/3,1/3;1/3,−1/3]✓ λ₁+λ₂ = 7 = tr(A)✓ λ₁·λ₂ = 10 = det(A)迹 = 特征值之和,行列式 = 特征值之积(Vieta 公式)

让我们对一个具体的矩阵做完整的特征分解。取:

A=[4123]A = \begin{bmatrix}4 & 1 \\ 2 & 3\end{bmatrix}

第一步:求特征值

计算特征方程:

det(AλI)=det[4λ123λ]=(4λ)(3λ)12=0\det(A - \lambda I) = \det\begin{bmatrix}4-\lambda & 1 \\ 2 & 3-\lambda\end{bmatrix} = (4-\lambda)(3-\lambda) - 1 \cdot 2 = 0

展开:

λ27λ+122=0    λ27λ+10=0\lambda^2 - 7\lambda + 12 - 2 = 0 \implies \lambda^2 - 7\lambda + 10 = 0

验证:tr(A)=4+3=7\text{tr}(A) = 4 + 3 = 7det(A)=122=10\det(A) = 12 - 2 = 10,与方程 λ27λ+10=0\lambda^2 - 7\lambda + 10 = 0 一致。

求解:(λ5)(λ2)=0(\lambda - 5)(\lambda - 2) = 0,得到:

λ1=5,λ2=2\lambda_1 = 5, \quad \lambda_2 = 2

验证:λ1+λ2=7=tr(A)\lambda_1 + \lambda_2 = 7 = \text{tr}(A) ✓,λ1λ2=10=det(A)\lambda_1 \cdot \lambda_2 = 10 = \det(A)

第二步:求特征向量

λ1=5\lambda_1 = 5

(A5I)q1=[1122]q1=0(A - 5I)\mathbf{q}_1 = \begin{bmatrix}-1 & 1 \\ 2 & -2\end{bmatrix}\mathbf{q}_1 = \mathbf{0}

第一行给出 q11+q12=0-q_{11} + q_{12} = 0,即 q12=q11q_{12} = q_{11}。取 q11=1q_{11} = 1

q1=[11]\mathbf{q}_1 = \begin{bmatrix}1 \\ 1\end{bmatrix}

验证:Aq1=[4123][11]=[55]=5[11]=λ1q1A\mathbf{q}_1 = \begin{bmatrix}4 & 1 \\ 2 & 3\end{bmatrix}\begin{bmatrix}1 \\ 1\end{bmatrix} = \begin{bmatrix}5 \\ 5\end{bmatrix} = 5\begin{bmatrix}1 \\ 1\end{bmatrix} = \lambda_1 \mathbf{q}_1

λ2=2\lambda_2 = 2

(A2I)q2=[2121]q2=0(A - 2I)\mathbf{q}_2 = \begin{bmatrix}2 & 1 \\ 2 & 1\end{bmatrix}\mathbf{q}_2 = \mathbf{0}

第一行给出 2q21+q22=02q_{21} + q_{22} = 0,即 q22=2q21q_{22} = -2q_{21}。取 q21=1q_{21} = 1

q2=[12]\mathbf{q}_2 = \begin{bmatrix}1 \\ -2\end{bmatrix}

验证:Aq2=[4123][12]=[24]=2[12]=λ2q2A\mathbf{q}_2 = \begin{bmatrix}4 & 1 \\ 2 & 3\end{bmatrix}\begin{bmatrix}1 \\ -2\end{bmatrix} = \begin{bmatrix}2 \\ -4\end{bmatrix} = 2\begin{bmatrix}1 \\ -2\end{bmatrix} = \lambda_2 \mathbf{q}_2

第三步:组装分解

将两个特征向量作为列组成矩阵 QQ,特征值排列成对角矩阵 Λ\Lambda

Q=[1112],Λ=[5002]Q = \begin{bmatrix}1 & 1 \\ 1 & -2\end{bmatrix}, \quad \Lambda = \begin{bmatrix}5 & 0 \\ 0 & 2\end{bmatrix}

验证 AQ=QΛAQ = Q\Lambda

AQ=[4123][1112]=[5254]AQ = \begin{bmatrix}4 & 1 \\ 2 & 3\end{bmatrix}\begin{bmatrix}1 & 1 \\ 1 & -2\end{bmatrix} = \begin{bmatrix}5 & 2 \\ 5 & -4\end{bmatrix}

QΛ=[1112][5002]=[5254]Q\Lambda = \begin{bmatrix}1 & 1 \\ 1 & -2\end{bmatrix}\begin{bmatrix}5 & 0 \\ 0 & 2\end{bmatrix} = \begin{bmatrix}5 & 2 \\ 5 & -4\end{bmatrix}

AQ=QΛAQ = Q\Lambda ✓,因此 A=QΛQ1A = Q\Lambda Q^{-1}

计算 Q1Q^{-1}(对 2×22 \times 2 矩阵,[abcd]1=1adbc[dbca]\begin{bmatrix}a&b\\c&d\end{bmatrix}^{-1} = \frac{1}{ad-bc}\begin{bmatrix}d&-b\\-c&a\end{bmatrix}):

Q1=11(2)11[2111]=13[2111]=[2/31/31/31/3]Q^{-1} = \frac{1}{1 \cdot(-2) - 1 \cdot 1}\begin{bmatrix}-2 & -1 \\ -1 & 1\end{bmatrix} = \frac{1}{-3}\begin{bmatrix}-2 & -1 \\ -1 & 1\end{bmatrix} = \begin{bmatrix}2/3 & 1/3 \\ 1/3 & -1/3\end{bmatrix}

最终的特征分解:

A=[1112][5002][2/31/31/31/3]A = \begin{bmatrix}1 & 1 \\ 1 & -2\end{bmatrix}\begin{bmatrix}5 & 0 \\ 0 & 2\end{bmatrix}\begin{bmatrix}2/3 & 1/3 \\ 1/3 & -1/3\end{bmatrix}

读者练习:试试对对称矩阵 B=[3113]B = \begin{bmatrix}3 & 1 \\ 1 & 3\end{bmatrix} 做同样的分解。你会发现特征向量自然正交——这正是下一节谱定理的核心内容。(提示:λ1=4,λ2=2\lambda_1 = 4, \lambda_2 = 2q1=[11],q2=[11]\mathbf{q}_1 = \begin{bmatrix}1\\1\end{bmatrix}, \mathbf{q}_2 = \begin{bmatrix}1\\-1\end{bmatrix},注意 q1Tq2=0\mathbf{q}_1^T \mathbf{q}_2 = 0。)

对角化:A=QΛQ1A = Q\Lambda Q^{-1}

形式陈述

ARn×nA \in \mathbb{R}^{n \times n}nn 个线性无关的特征向量 q1,q2,,qn\mathbf{q}_1, \mathbf{q}_2, \ldots, \mathbf{q}_n,对应特征值 λ1,λ2,,λn\lambda_1, \lambda_2, \ldots, \lambda_n。定义:

Q=[q1q2qn]Rn×n,Λ=diag(λ1,λ2,,λn)Rn×nQ = \begin{bmatrix}\mathbf{q}_1 & \mathbf{q}_2 & \cdots & \mathbf{q}_n\end{bmatrix} \in \mathbb{R}^{n \times n}, \quad \Lambda = \text{diag}(\lambda_1, \lambda_2, \ldots, \lambda_n) \in \mathbb{R}^{n \times n}

其中 QQ 的列是特征向量,Λ\Lambda 是特征值构成的对角矩阵。因为 q1,,qn\mathbf{q}_1, \ldots, \mathbf{q}_n 线性无关,QQ 可逆,我们有:

特征分解 = 对角化

A=QΛQ1Λ=Q1AQA = Q\Lambda Q^{-1} \quad \Longleftrightarrow \quad \Lambda = Q^{-1}AQ

QQ 的列 = 特征向量,Λ\Lambda = 特征值对角矩阵。幂运算:An=QΛnQ1A^n = Q\Lambda^n Q^{-1}

这就是 AA特征分解(eigendecomposition),也称为对角化(diagonalization)。

推导过程:逐列写出 Aqi=λiqiA\mathbf{q}_i = \lambda_i \mathbf{q}_i,合并为矩阵形式:

A[q1qn]=[λ1q1λnqn]=[q1qn][λ1λn]A \begin{bmatrix}\mathbf{q}_1 & \cdots & \mathbf{q}_n\end{bmatrix} = \begin{bmatrix}\lambda_1\mathbf{q}_1 & \cdots & \lambda_n\mathbf{q}_n\end{bmatrix} = \begin{bmatrix}\mathbf{q}_1 & \cdots & \mathbf{q}_n\end{bmatrix}\begin{bmatrix}\lambda_1 & & \\ & \ddots & \\ & & \lambda_n\end{bmatrix}

AQ=QΛAQ = Q\Lambda。因为 QQ 可逆,右乘 Q1Q^{-1} 得到 A=QΛQ1A = Q\Lambda Q^{-1},或等价地左乘 Q1Q^{-1} 得到 Λ=Q1AQ\Lambda = Q^{-1}AQ

什么时候可以对角化?

什么时候可以对角化?A ∈ ℝⁿˣⁿ 方阵n 个不同的特征值?一定可对角化否(有重复特征值)每个 λ: 几何重数 = 代数重数?可对角化不可对角化特别地:A = Aᵀ(对称)→ 总是可正交对角化

不是所有方阵都能对角化。AA 可对角化的充要条件是:AA 拥有 nn 个线性无关的特征向量。

充分条件(更容易验证):如果 AAnn不同的特征值,则 AA 一定可以对角化。

这是因为对应不同特征值的特征向量一定线性无关(见 Strang, Introduction to Linear Algebra, Chapter 6, Theorem 6.1)。

不可对角化的例子

A=[1101]A = \begin{bmatrix}1 & 1 \\ 0 & 1\end{bmatrix}

特征多项式为 (1λ)2=0(1-\lambda)^2 = 0,唯一特征值 λ=1\lambda = 1(代数重数 2)。但 (AI)q=[0100]q=0(A - I)\mathbf{q} = \begin{bmatrix}0&1\\0&0\end{bmatrix}\mathbf{q} = \mathbf{0} 的解空间只有一维——只有 q=[10]\mathbf{q} = \begin{bmatrix}1\\0\end{bmatrix} 方向的向量。几何重数(1)小于代数重数(2),找不到 2 个线性无关的特征向量,因此不可对角化。这类矩阵需要用 Jordan 标准形来处理,但这超出了本路径的范围。

Jordan 标准形速览:任何方阵都能分解为 A=PJP1A = PJP^{-1},其中 JJJordan 块 Jk(λ)=[λ1λ1λ]J_k(\lambda) = \begin{bmatrix}\lambda & 1 & & \\ & \lambda & \ddots & \\ & & \ddots & 1 \\ & & & \lambda\end{bmatrix} 拼成。可对角化矩阵是所有 Jordan 块都为 1×11 \times 1 的特殊情况。Jordan 块中超对角线上的 1 使得 eJk(λ)te^{J_k(\lambda)t} 出现 tmeλtt^m e^{\lambda t} 混合项——即使系统最终衰减(Re(λ)<0\text{Re}(\lambda) < 0),初期也会因多项式因子 tmt^m 产生瞬态增长,这在控制理论中很重要。ML 实践中很少遇到不可对角化的矩阵:对称/半正定矩阵必定可对角化,而一般矩阵恰好不可对角化是概率为零的事件。此外 Jordan 形在数值上极不稳定(微小扰动就会改变 Jordan 结构),所以实际算法几乎不使用它。

对角化的意义:基变换视角

特征分解 A=QΛQ1A = Q\Lambda Q^{-1} 有一个深刻的几何解读。将 AxA\mathbf{x} 的计算分解为三步:

Ax=Q(Λ(Q1x))A\mathbf{x} = Q(\Lambda(Q^{-1}\mathbf{x}))

  1. Q1xQ^{-1}\mathbf{x}:将向量 x\mathbf{x} 从标准基转换到特征基(eigenbasis)。在特征基下,x\mathbf{x} 的坐标变成了它在各特征向量方向上的分量。
  2. Λ()\Lambda(\cdot):在特征基下,矩阵变成了对角的——每个分量独立乘以对应的特征值。这就是”逐方向独立缩放”。
  3. Q()Q(\cdot):将结果从特征基转换回标准基。

核心洞察:对角化的本质是找到正确的坐标系。在标准基下,AA 可能是一个复杂的变换(既拉伸又旋转)。但在特征基下,AA 退化为最简单的操作——每个方向独立缩放。QQQ1Q^{-1} 只是在两个坐标系之间来回翻译。

对角化 A = QΛQ⁻¹ 的几何含义在特征基下,变换退化为逐方向独立缩放Q⁻¹x① 换到特征基标准基 → 特征基Λ(·)② 逐方向缩放各分量 ×λᵢQ(·)③ 换回标准基特征基 → 标准基xAxAⁿ = QΛⁿQ⁻¹ → 矩阵幂变成标量幂

这个视角直接解释了为什么对角化对计算如此有用。

对角化的威力:An=QΛnQ1A^n = Q\Lambda^n Q^{-1}

对角化的威力:Aⁿ = QΛⁿQ⁻¹朴素方法A × A × ··· × A (n 次 O(n³))vs对角化方法Q · diag(λ₁ⁿ,...,λₙⁿ) · Q⁻¹应用:马尔可夫链稳态|λᵢ|<1 → 0Fibonacci 闭合公式φⁿ/√5系统稳定性|λ_max| < 1?矩阵函数也简化:f(A) = Q·diag(f(λ₁),...,f(λₙ))·Q⁻¹ (如 eᴬ, SSM/Mamba 的核心)

如果 A=QΛQ1A = Q\Lambda Q^{-1},那么:

A2=(QΛQ1)(QΛQ1)=QΛ(Q1Q)IΛQ1=QΛ2Q1A^2 = (Q\Lambda Q^{-1})(Q\Lambda Q^{-1}) = Q\Lambda \underbrace{(Q^{-1}Q)}_{I}\Lambda Q^{-1} = Q\Lambda^2 Q^{-1}

归纳可得:

An=QΛnQ1A^n = Q\Lambda^n Q^{-1}

Λn=diag(λ1n,λ2n,,λnn)\Lambda^n = \text{diag}(\lambda_1^n, \lambda_2^n, \ldots, \lambda_n^n)——对角矩阵的幂就是逐元素取幂。

这把 O(n3)O(n^3)(每次矩阵乘法)× nn 次的 AnA^n 计算,简化为一次分解加 nn 次标量幂运算。实际应用:

  • 马尔可夫链的长期行为:转移矩阵 PP 的稳态分布是 limnPn\lim_{n\to\infty} P^n 的列向量,对角化让你直接看到哪些分量衰减(λi<1|\lambda_i| < 1)、哪些保持(λi=1|\lambda_i| = 1
  • 递推关系:Fibonacci 数列可以写成矩阵幂的形式 [Fn+1Fn]=[1110]n[10]\begin{bmatrix}F_{n+1}\\F_n\end{bmatrix} = \begin{bmatrix}1&1\\1&0\end{bmatrix}^n \begin{bmatrix}1\\0\end{bmatrix},对角化直接给出闭合公式
  • 动态系统的稳定性分析xt+1=Axt\mathbf{x}_{t+1} = A\mathbf{x}_t 是否收敛,完全取决于 AA 的特征值是否小于 1

同样地,矩阵函数也可以通过对角化来简化。如果 ff 是一个可以用幂级数定义的函数(如 eA,sin(A),log(A)e^A, \sin(A), \log(A)),那么:

f(A)=Qf(Λ)Q1=Qdiag(f(λ1),,f(λn))Q1f(A) = Q \cdot f(\Lambda) \cdot Q^{-1} = Q \cdot \text{diag}(f(\lambda_1), \ldots, f(\lambda_n)) \cdot Q^{-1}

矩阵指数 eA=Qdiag(eλ1,,eλn)Q1e^A = Q\,\text{diag}(e^{\lambda_1}, \ldots, e^{\lambda_n})\,Q^{-1} 在连续时间线性系统(Part 2, Art. 17)和 SSM/Mamba(Part 3, Art. 26)中至关重要。

谱定理:对称矩阵的特殊地位

为什么要单独讨论对称矩阵?

在一般情况下,特征分解有几个不太令人满意的地方:

  1. 特征值可能是复数(如旋转矩阵)
  2. 特征向量不一定正交(如上面数值例子中的 q1=[11]\mathbf{q}_1 = \begin{bmatrix}1\\1\end{bmatrix}q2=[12]\mathbf{q}_2 = \begin{bmatrix}1\\-2\end{bmatrix},它们不正交)
  3. Q1Q^{-1} 的计算可能数值不稳定(当特征向量接近线性相关时)

但如果 AA对称矩阵(symmetric matrix,即 A=ATA = A^T),这些问题都消失了。对称矩阵是 ML 中最常见的矩阵类型之一——协方差矩阵 XTXX^TX、Gram 矩阵 Kij=k(xi,xj)K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)、图 Laplacian L=DAGL = D - A_G,都是对称的。

谱定理(Spectral Theorem)

谱定理:A = Aᵀ(对称)⟹ 三个保证条件:A = Aᵀ(实对称)1实特征值λᵢ ∈ ℝ不会出现复数特征值2正交特征向量qᵢᵀqⱼ = 0 (i≠j)不同特征值的特征向量互相正交3正交对角化A = QΛQᵀQ⁻¹ = Qᵀ(转置即逆)对比一般矩阵:A = QΛQ⁻¹(需算逆) vs 对称:A = QΛQᵀ(转置即可)ML 中常见对称矩阵:协方差矩阵 XᵀX、Gram 矩阵 K、图 Laplacian L = D−A"谱"(spectrum) = 矩阵的所有特征值的集合

谱定理:实对称矩阵 A=ATA = A^T 满足:

  1. 所有特征值都是实数
  2. 不同特征值对应的特征向量彼此正交
  3. 可用正交矩阵对角化:A=QΛQTA = Q\Lambda Q^T

A=QΛQT=i=1nλiqiqiTA = Q\Lambda Q^T = \sum_{i=1}^{n} \lambda_i \mathbf{q}_i \mathbf{q}_i^T

其中 QQ 的列是 AA 的单位正交特征向量,Λ=diag(λ1,,λn)\Lambda = \text{diag}(\lambda_1, \ldots, \lambda_n) 是实特征值组成的对角矩阵。

(谱定理的名称来自”谱”(spectrum)——矩阵的所有特征值的集合。关于谱定理的详细证明可参考 Strang 的 MIT 18.06 课程或 Axler 的 Linear Algebra Done Right。)

关键差异:一般矩阵的特征分解是 A=QΛQ1A = Q\Lambda Q^{-1},需要计算 Q1Q^{-1}。对称矩阵的特征分解是 A=QΛQTA = Q\Lambda Q^T——Q1Q^{-1} 就是 QTQ^T,一个转置即可,既简洁又数值稳定。

为什么实特征值?(证明思路)

Aq=λqA\mathbf{q} = \lambda \mathbf{q}q0\mathbf{q} \neq \mathbf{0}。两边取共轭转置(对实矩阵,共轭转置 = 转置):

qTAT=λqT\overline{\mathbf{q}}^T A^T = \overline{\lambda} \, \overline{\mathbf{q}}^T

因为 A=ATA = A^T(对称),所以 qTA=λqT\overline{\mathbf{q}}^T A = \overline{\lambda} \, \overline{\mathbf{q}}^T。右乘 q\mathbf{q}

qTAq=λqTq\overline{\mathbf{q}}^T A \mathbf{q} = \overline{\lambda} \, \overline{\mathbf{q}}^T \mathbf{q}

而从原始方程左乘 qT\overline{\mathbf{q}}^T

qTAq=λqTq\overline{\mathbf{q}}^T A \mathbf{q} = \lambda \, \overline{\mathbf{q}}^T \mathbf{q}

比较两式:λqTq=λqTq\lambda \, \overline{\mathbf{q}}^T \mathbf{q} = \overline{\lambda} \, \overline{\mathbf{q}}^T \mathbf{q}。由于 qTq=q2>0\overline{\mathbf{q}}^T \mathbf{q} = \|\mathbf{q}\|^2 > 0q0\mathbf{q} \neq \mathbf{0}),所以 λ=λ\lambda = \overline{\lambda},即 λ\lambda 是实数。\blacksquare

为什么正交特征向量?

Aq1=λ1q1A\mathbf{q}_1 = \lambda_1 \mathbf{q}_1Aq2=λ2q2A\mathbf{q}_2 = \lambda_2 \mathbf{q}_2,其中 λ1λ2\lambda_1 \neq \lambda_2。计算 q1T(Aq2)\mathbf{q}_1^T (A\mathbf{q}_2)

q1T(Aq2)=q1T(λ2q2)=λ2(q1Tq2)\mathbf{q}_1^T (A\mathbf{q}_2) = \mathbf{q}_1^T (\lambda_2 \mathbf{q}_2) = \lambda_2 (\mathbf{q}_1^T \mathbf{q}_2)

另一方面,利用 AT=AA^T = A

q1T(Aq2)=(ATq1)Tq2=(Aq1)Tq2=(λ1q1)Tq2=λ1(q1Tq2)\mathbf{q}_1^T (A\mathbf{q}_2) = (A^T\mathbf{q}_1)^T \mathbf{q}_2 = (A\mathbf{q}_1)^T \mathbf{q}_2 = (\lambda_1\mathbf{q}_1)^T \mathbf{q}_2 = \lambda_1 (\mathbf{q}_1^T \mathbf{q}_2)

比较两个结果:λ1(q1Tq2)=λ2(q1Tq2)\lambda_1 (\mathbf{q}_1^T \mathbf{q}_2) = \lambda_2 (\mathbf{q}_1^T \mathbf{q}_2)。因为 λ1λ2\lambda_1 \neq \lambda_2,必须有 q1Tq2=0\mathbf{q}_1^T \mathbf{q}_2 = 0——两个特征向量正交。\blacksquare

谱分解形式

谱定理给出了一个特别优美的表达——将矩阵写成秩一矩阵的加权和:

A=QΛQT=i=1nλiqiqiTA = Q\Lambda Q^T = \sum_{i=1}^{n} \lambda_i \mathbf{q}_i \mathbf{q}_i^T

其中每个 qiqiT\mathbf{q}_i \mathbf{q}_i^T 是一个秩一投影矩阵(将任意向量投影到 qi\mathbf{q}_i 方向上)。

逐项理解:

  • qiqiTRn×n\mathbf{q}_i \mathbf{q}_i^T \in \mathbb{R}^{n \times n}:一个秩一矩阵,作用在任意向量 x\mathbf{x} 上时,提取 x\mathbf{x}qi\mathbf{q}_i 方向上的分量:(qiqiT)x=qi(qiTx)(\mathbf{q}_i \mathbf{q}_i^T)\mathbf{x} = \mathbf{q}_i(\mathbf{q}_i^T \mathbf{x})
  • λi\lambda_i:该方向的权重/重要性
  • 求和:AAnn 个方向上独立缩放的叠加
谱分解:秩一投影的加权和A = Σᵢ λᵢ qᵢqᵢᵀA=λ₁·q₁q₁ᵀ秩 1+λ₂·q₂q₂ᵀ秩 1+···λₙ·qₙqₙᵀ秩 1qᵢqᵢᵀ 是投影矩阵,λᵢ 是该方向的权重(重要性)

这种”展开为秩一项之和”的思想,正是 SVD(A=iσiuiviTA = \sum_i \sigma_i \mathbf{u}_i \mathbf{v}_i^T)的前身。

正定矩阵:特征值全部为正

正定矩阵:xᵀAx = Σλᵢyᵢ²正定 (λ₁=4, λ₂=1.5)q₁q₂xᵀAx > 0 对所有 x≠0在特征基下xᵀAx = Σλᵢyᵢ²y = Qᵀx不定 (λ₁=2, λ₂=−1)xᵀAx 可正可负(鞍点)ML 常见正定矩阵:协方差矩阵、Kernel 矩阵、损失函数的 Hessian(局部最小值处)

在谱定理的基础上,如果进一步要求所有特征值为正(λi>0\lambda_i > 0),就得到了正定矩阵(positive definite matrix)。

定义:实对称矩阵 AA 是正定的,当且仅当对所有非零向量 x0\mathbf{x} \neq \mathbf{0}

xTAx>0\mathbf{x}^T A \mathbf{x} > 0

为什么限定”实对称”? 二次型 xTAx\mathbf{x}^TA\mathbf{x} 对任意方阵都可以写出来,但它只”看得到”AA 的对称部分——反对称部分的贡献恒为零(Art. 1B 矩阵结构几何 中有详细证明)。所以讨论正定性时,不失一般性只考虑对称矩阵。更关键的是,下面的等价条件”正定     \iff 所有特征值为正”依赖于谱定理:只有对称矩阵的特征值才保证是实数——“特征值为正”对复数特征值没有意义。

正定性的特征值等价条件

A 正定    所有特征值>0A 半正定    所有特征值0A \text{ 正定} \iff \text{所有特征值} > 0 \qquad A \text{ 半正定} \iff \text{所有特征值} \geq 0

正定 → 可逆(无零特征值 → 满秩)。

为什么等价?因为 xTAx=xT(QΛQT)x=(QTx)TΛ(QTx)\mathbf{x}^T A \mathbf{x} = \mathbf{x}^T (Q\Lambda Q^T) \mathbf{x} = (Q^T\mathbf{x})^T \Lambda (Q^T\mathbf{x})。令 y=QTx\mathbf{y} = Q^T\mathbf{x}QQ 正交,所以 x0    y0\mathbf{x} \neq \mathbf{0} \iff \mathbf{y} \neq \mathbf{0}),得到:

xTAx=i=1nλiyi2\mathbf{x}^T A \mathbf{x} = \sum_{i=1}^{n} \lambda_i y_i^2

如果所有 λi>0\lambda_i > 0,则这个和对任何非零 y\mathbf{y} 都是正的。反之,如果某个 λj0\lambda_j \leq 0,取 y\mathbf{y} 只在第 jj 个分量非零,就可以让这个和非正。

正定矩阵在 ML 中无处不在:

  • 协方差矩阵 C=1n1XTXC = \frac{1}{n-1}X^TX:半正定(λi0\lambda_i \geq 0),如果数据满秩则正定。为什么?vTCv=1n1Xv20\mathbf{v}^TC\mathbf{v} = \frac{1}{n-1}\|X\mathbf{v}\|^2 \geq 0——方差不能为负。这是 BTBB^TB 形式保证半正定的直接应用(Art. 1B 矩阵结构几何 §4 详细推导)。
  • Hessian 矩阵:正定 = 严格局部最小值。为什么?在驻点处 Taylor 展开的一阶项消失,函数行为由二次型 12ΔxTHΔx\frac{1}{2}\Delta\mathbf{x}^T H \Delta\mathbf{x} 决定——HH 正定意味着所有方向曲率为正,驻点是碗底(Art. 5 矩阵微积分 §3 详细推导)。
  • Kernel 矩阵 Kij=k(xi,xj)K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j):正半定性保证它可以被解释为内积。为什么?Mercer 定理证明:KK 半正定     \iff 存在特征映射 ϕ\phi 使得 Kij=ϕ(xi),ϕ(xj)K_{ij} = \langle\phi(\mathbf{x}_i), \phi(\mathbf{x}_j)\rangle,即 K=ΦΦTK = \Phi\Phi^TArt. 20 Kernel 详细推导)。

为什么特征分解是后续一切的基础

特征分解:后续一切的基础特征分解A = QΛQ⁻¹SVD (Art. 3)AᵀA 的特征分解 → 奇异值PCA (Art. 6)协方差矩阵的特征向量 = 主成分PageRank (Art. 18)转移矩阵的 λ=1 特征向量SSM/Mamba (Art. 26)状态矩阵对角化 → 并行卷积"在特征基下,变换变成逐方向独立缩放"——这个洞察贯穿全部 26 篇

特征分解不仅是一种计算技巧,更是理解线性代数和 ML 的概念基础。让我们梳理它与后续话题的具体联系。

→ SVD(Art. 3)

特征分解要求 AA 是方阵。但数据矩阵通常是长方形的(mnm \neq n)。一个巧妙的绕道:即使 ARm×nA \in \mathbb{R}^{m \times n} 不是方阵,ATARn×nA^T A \in \mathbb{R}^{n \times n}AATRm×mAA^T \in \mathbb{R}^{m \times m} 都是对称半正定方阵。对它们做特征分解:

ATA=VΣ2VT,AAT=UΣ2UTA^T A = V \Sigma^2 V^T, \quad AA^T = U \Sigma^2 U^T

这就自然导出了 A=UΣVTA = U\Sigma V^T——奇异值分解(SVD)。SVD 的奇异值 σi\sigma_iATAA^TA 特征值的平方根,右奇异向量是 ATAA^TA 的特征向量,左奇异向量是 AATAA^T 的特征向量。SVD 本质上是两次特征分解。

→ PCA(Art. 6)

PCA 的目标是找到数据方差最大的方向。对中心化数据矩阵 XX,协方差矩阵 C=1n1XTXC = \frac{1}{n-1}X^TX 是对称半正定的。CC 的特征分解 C=QΛQTC = Q\Lambda Q^T 直接给出主成分:特征向量就是主成分方向,特征值就是各方向的方差大小。(见 Shlens, A Tutorial on Principal Component Analysis, 2014)

→ PageRank(Art. 18)

网页转移矩阵 PP 的稳态分布是满足 Pπ=πP\boldsymbol{\pi} = \boldsymbol{\pi} 的特征向量——对应特征值 λ=1\lambda = 1 的特征向量。PageRank 算法的本质就是幂迭代法(power iteration):反复乘以 PP,收敛到主特征向量。

→ SSM/Mamba(Art. 26)

状态空间模型(SSM)的核心是状态转移方程 ht+1=Aˉht+Bˉxt\mathbf{h}_{t+1} = \bar{A}\mathbf{h}_t + \bar{B}\mathbf{x}_t。Mamba 的关键加速来自将 Aˉ\bar{A} 约束为对角矩阵——这是对角化的极端形式,Q=IQ = I。在对角基下,各状态分量独立演化,使得卷积形式的并行计算成为可能。

总结与展望

本文建立了整条路径的第一件核心工具——特征分解:

  • 特征向量是线性变换的不变方向,特征值是对应的缩放倍数
  • 特征分解 A=QΛQ1A = Q\Lambda Q^{-1} 在特征基下将矩阵简化为对角形式
  • 谱定理保证对称矩阵有实特征值和正交特征向量,分解形式简化为 A=QΛQTA = Q\Lambda Q^T
  • 对角化让矩阵幂和矩阵函数变得平凡:An=QΛnQ1A^n = Q\Lambda^n Q^{-1}
  • 谱分解 A=iλiqiqiTA = \sum_i \lambda_i \mathbf{q}_i \mathbf{q}_i^T 将矩阵表示为秩一成分的加权和

但特征分解有一个根本限制:它只适用于方阵。现实中的数据矩阵——用户-物品评分表(10万 × 5万)、词-文档矩阵(3万 × 100万)、图像批次(1000 × 784)——几乎都是长方形的。我们需要一个能处理任意形状矩阵的分解工具。

下一篇,我们将学习奇异值分解(SVD)——它把特征分解的核心思想推广到 m×nm \times n 的任意矩阵,成为 ML 中使用最广泛的矩阵工具。