引言
在高等数学、概率论与数理统计、线性代数这三门大学数学核心课程之间,存在一条隐秘而深刻的内在联系。表面上看,它们各自独立——微积分研究连续变化,概率统计处理随机现象,线性代数则探讨向量空间中的线性变换。然而,当我们把目光从理论推导转向实际计算时,一个令人震撼的事实浮现出来:线性代数正在成为所有科学计算的终极“物理层”语言。
本文试图打通这三座数学山峰之间的隧道,从微积分离散化到概率统计推断,从量子力学的概率幅到深度学习的张量运算,展示线性代数如何以统一的方式“计算”几乎一切。
第一部分:微积分——被离散化的连续世界
1.1 计算机无法理解“无穷小”
微积分的核心工具——导数和积分——建立在极限概念之上。无穷小量 d x dx dx 是数学家的优雅创造,但计算机只能处理有限精度的浮点数。当我们将连续问题交给计算机时,必须经历一个关键步骤:离散化。
以导数为例,微积分给出精确表达式:
f
′
(
x
)
=
lim
h
→
0
f
(
x
+
h
)
−
f
(
x
)
h
f'(x) = \lim_{h \to 0} \frac{f(x+h) - f(x)}{h}
f′(x)=h→0limhf(x+h)−f(x)
计算机无法取极限,只能用足够小的
h
h
h 近似:
f
′
(
x
)
≈
f
(
x
+
h
)
−
f
(
x
−
h
)
2
h
f'(x) \approx \frac{f(x+h) - f(x-h)}{2h}
f′(x)≈2hf(x+h)−f(x−h)
关键洞察在于:当我们在 N N N 个离散点上计算所有导数值时,这个操作等价于一个矩阵乘法。定义函数值向量 f = [ f 0 , f 1 , . . . , f N − 1 ] T \mathbf{f} = [f_0, f_1, ..., f_{N-1}]^T f=[f0,f1,...,fN−1]T,一阶导数向量 f ′ \mathbf{f'} f′ 可以写成:
f ′ = D 1 f \mathbf{f'} = D_1 \mathbf{f} f′=D1f
其中 D 1 D_1 D1 是一个三对角矩阵(或更复杂的差分矩阵),其非零元素由步长 h h h 决定。
1.2 二阶导数与拉普拉斯矩阵
二阶导数的离散化更为优美。微积分中的二阶导数:
f
′
′
(
x
)
≈
f
(
x
+
h
)
−
2
f
(
x
)
+
f
(
x
−
h
)
h
2
f''(x) \approx \frac{f(x+h) - 2f(x) + f(x-h)}{h^2}
f′′(x)≈h2f(x+h)−2f(x)+f(x−h)
对应的离散矩阵 D 2 D_2 D2 在主对角线为 − 2 / h 2 -2/h^2 −2/h2,上下次对角线为 1 / h 2 1/h^2 1/h2。这个矩阵在物理学中有一个响亮的名字:拉普拉斯矩阵(离散版)。
偏微分方程,如热传导方程
∂
u
/
∂
t
=
α
∂
2
u
/
∂
x
2
\partial u/\partial t = \alpha \partial^2 u/\partial x^2
∂u/∂t=α∂2u/∂x2,在空间离散化后变为:
d
u
d
t
=
α
D
2
u
\frac{d\mathbf{u}}{dt} = \alpha D_2 \mathbf{u}
dtdu=αD2u
进一步时间离散化,得到计算机实际执行的迭代公式:
u
n
+
1
=
(
I
+
α
Δ
t
D
2
)
u
n
\mathbf{u}^{n+1} = (I + \alpha \Delta t D_2) \mathbf{u}^n
un+1=(I+αΔtD2)un
这就是计算的本质:复杂的偏微分方程,变成了一个稀疏矩阵与向量的反复乘法。
1.3 从多元微积分到矩阵微积分
在多元微积分中,函数的局部行为由雅可比矩阵(一阶偏导)和海森矩阵(二阶偏导)描述。这些本身就是线性代数的对象。雅可比矩阵将非线性映射在局部线性化,使复杂的多元函数优化问题转化为迭代求解线性方程组。
结论:微积分提供连续世界的数学模型,线性代数提供计算机实现这些模型的“执行引擎”。
第二部分:概率统计——被矩阵化的数据海洋
2.1 数据本身就是矩阵
概率论处理随机变量,数理统计处理大量观测数据。当数据规模达到百万、亿级时,唯一的组织方式就是矩阵。
假设我们有 m m m 个样本、 n n n 个特征,数据矩阵 X ∈ R m × n X \in \mathbb{R}^{m \times n} X∈Rm×n。几乎所有的统计计算都可以用矩阵运算表达:
- 均值向量:各列求平均,得到 x ˉ ∈ R n \bar{x} \in \mathbb{R}^n xˉ∈Rn
- 协方差矩阵:中心化后 Σ = 1 m X T X \Sigma = \frac{1}{m} X^T X Σ=m1XTX,包含了所有特征间的相关性
- 多元正态分布密度:
f ( x ) = 1 ( 2 π ) n / 2 ∣ Σ ∣ exp ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) f(x) = \frac{1}{(2\pi)^{n/2}\sqrt{|\Sigma|}} \exp\left(-\frac{1}{2}(x-\mu)^T \Sigma^{-1} (x-\mu)\right) f(x)=(2π)n/2∣Σ∣1exp(−21(x−μ)TΣ−1(x−μ))
这个公式中,矩阵求逆、矩阵乘法、行列式计算构成了全部运算。
2.2 主成分分析:特征分解的统计诠释
统计学中最重要的降维方法——主成分分析(PCA)——本质上是协方差矩阵的特征分解。
协方差矩阵
Σ
\Sigma
Σ 的特征向量指向数据方差最大的方向,特征值大小衡量该方向上的方差。PCA的核心计算就是求解特征值问题:
Σ
v
=
λ
v
\Sigma v = \lambda v
Σv=λv
一个纯粹的线性代数操作,赋予了深刻的统计含义:数据的主要变化模式。
2.3 马尔可夫链:转移矩阵的幂
在随机过程理论中,状态转移概率组成转移矩阵
P
P
P,其中
P
i
j
P_{ij}
Pij 表示从状态
i
i
i 转移到状态
j
j
j 的概率。未来
k
k
k 步后的状态分布为:
π
k
=
π
0
P
k
\pi_k = \pi_0 P^k
πk=π0Pk
平稳分布是满足 π = π P \pi = \pi P π=πP 的概率向量,也就是矩阵 P P P 的特征值 1 1 1 对应的左特征向量。
结论:概率分布的计算,本质上就是大规模矩阵的乘法和特征分解。
第三部分:三大学科的终极汇合——梯度下降法
3.1 线性回归的三种视角
考虑最简单的机器学习模型——线性回归。给定数据矩阵 X X X 和目标向量 y y y,寻找参数 β \beta β 使预测误差最小。
微积分视角:定义损失函数
L
(
β
)
=
1
2
∥
y
−
X
β
∥
2
L(\beta) = \frac{1}{2}\|y - X\beta\|^2
L(β)=21∥y−Xβ∥2,求导并令其为零:
∇
L
(
β
)
=
X
T
X
β
−
X
T
y
=
0
\nabla L(\beta) = X^T X \beta - X^T y = 0
∇L(β)=XTXβ−XTy=0
线性代数视角:得到正规方程 X T X β = X T y X^T X \beta = X^T y XTXβ=XTy,求解这个线性方程组即可。
概率统计视角:假设误差服从正态分布,则上述最小二乘解正是最大似然估计。
三种视角指向同一个数学对象,但计算机实际执行的是线性代数——解方程组或矩阵迭代。
3.2 梯度下降:当微积分遇到线性代数
当数据量极大时(如百万级样本、亿级参数),直接求解正规方程不可行。梯度下降法登场:
β
n
e
w
=
β
o
l
d
−
α
∇
L
(
β
o
l
d
)
\beta_{new} = \beta_{old} - \alpha \nabla L(\beta_{old})
βnew=βold−α∇L(βold)
展开梯度公式:
β
n
e
w
=
β
o
l
d
−
α
(
X
T
X
β
o
l
d
−
X
T
y
)
\beta_{new} = \beta_{old} - \alpha (X^T X \beta_{old} - X^T y)
βnew=βold−α(XTXβold−XTy)
看这个式子:求导(微积分)已经完成了,剩下的全部是矩阵乘法、向量加法、数乘——纯粹的线性代数运算。
3.3 随机梯度下降:统计采样 + 线代计算
当
X
X
X 大到无法一次性加载时,采用随机梯度下降(SGD):随机抽取一个小批量(mini-batch)
X
b
a
t
c
h
X_{batch}
Xbatch:
β
n
e
w
=
β
o
l
d
−
α
(
X
b
a
t
c
h
T
X
b
a
t
c
h
β
o
l
d
−
X
b
a
t
c
h
T
y
b
a
t
c
h
)
\beta_{new} = \beta_{old} - \alpha (X_{batch}^T X_{batch} \beta_{old} - X_{batch}^T y_{batch})
βnew=βold−α(XbatchTXbatchβold−XbatchTybatch)
这里发生了精妙的协同:
- 概率统计提供随机采样的策略和收敛性分析
- 线性代数在每个小批量上执行快速矩阵运算
- 微积分提供梯度方向和步长指导
统计引入的“噪声”反而帮助模型跳过局部极小值,这是现代深度学习的基石。
第四部分:不可逆矩阵的“作弊”——伪逆与岭回归
4.1 伪逆:选择性忽略
矩阵 A A A 不可逆,意味着求解 A x = b Ax = b Ax=b 时解不存在或无穷多。Moore-Penrose 伪逆 A + A^+ A+ 通过**奇异值分解(SVD)**强行构造“逆”:
A
=
U
Σ
V
T
A = U \Sigma V^T
A=UΣVT
A
+
=
V
Σ
+
U
T
A^+ = V \Sigma^+ U^T
A+=VΣ+UT
其中 Σ + \Sigma^+ Σ+ 将零奇异值的倒数设为 0,非零奇异值正常取倒数。这相当于说:“在矩阵有意义的那些方向上精确求解,在丢失信息的方向上假装无事发生。”
4.2 岭回归:软衰减
伪逆是硬截断(零奇异值直接抛弃),而岭回归采用软衰减:
系数
=
σ
σ
2
+
λ
\text{系数} = \frac{\sigma}{\sigma^2 + \lambda}
系数=σ2+λσ
当奇异值 σ \sigma σ 很小时,系数被平滑压缩而非直接置零。这相当于在损失函数中添加惩罚项 λ ∥ β ∥ 2 \lambda \|\beta\|^2 λ∥β∥2,使解更稳定。
对比:
- 伪逆: 1 / σ 1/\sigma 1/σ → 对微小噪声极度敏感,易过拟合
- 岭回归: σ / ( σ 2 + λ ) \sigma/(\sigma^2 + \lambda) σ/(σ2+λ) → 稳定但略有偏差(有偏估计)
工业应用中,稳定性优先于无偏性,这就是为什么岭回归比纯伪逆更常用。
第五部分:量子力学——概率的复数版本
5.1 概率幅:内积的模方
量子力学颠覆了经典概率的计算方式。系统的状态是复向量空间(希尔伯特空间)中的态矢量
∣
ψ
⟩
|\psi\rangle
∣ψ⟩。测量得到某个本征态
∣
ϕ
⟩
|\phi\rangle
∣ϕ⟩ 的概率为:
P
(
ϕ
)
=
∣
⟨
ϕ
∣
ψ
⟩
∣
2
P(\phi) = |\langle \phi | \psi \rangle|^2
P(ϕ)=∣⟨ϕ∣ψ⟩∣2
这里的 ⟨ ϕ ∣ ψ ⟩ \langle \phi | \psi \rangle ⟨ϕ∣ψ⟩ 是内积,称为概率幅——一个复数。概率是复数内积的模方,而非复数本身。
5.2 叠加与干涉
量子态可以叠加: ∣ ψ ⟩ = α ∣ ↑ ⟩ + β ∣ ↓ ⟩ |\psi\rangle = \alpha|\uparrow\rangle + \beta|\downarrow\rangle ∣ψ⟩=α∣↑⟩+β∣↓⟩。测量得到“向上”的概率是 ∣ α ∣ 2 |\alpha|^2 ∣α∣2,“向下”是 ∣ β ∣ 2 |\beta|^2 ∣β∣2。
反直觉之处在于:当系统处于多个路径的叠加态时,最终概率不是概率相加,而是概率幅先相加再取模方:
P
=
∣
⟨
t
∣
ψ
1
⟩
+
⟨
t
∣
ψ
2
⟩
∣
2
=
∣
⟨
t
∣
ψ
1
⟩
∣
2
+
∣
⟨
t
∣
ψ
2
⟩
∣
2
+
2
Re
(
⟨
t
∣
ψ
1
⟩
∗
⟨
t
∣
ψ
2
⟩
)
P = |\langle t|\psi_1\rangle + \langle t|\psi_2\rangle|^2 = |\langle t|\psi_1\rangle|^2 + |\langle t|\psi_2\rangle|^2 + 2\text{Re}(\langle t|\psi_1\rangle^*\langle t|\psi_2\rangle)
P=∣⟨t∣ψ1⟩+⟨t∣ψ2⟩∣2=∣⟨t∣ψ1⟩∣2+∣⟨t∣ψ2⟩∣2+2Re(⟨t∣ψ1⟩∗⟨t∣ψ2⟩)
交叉项 2 Re ( ⋯ ) 2\text{Re}(\cdots) 2Re(⋯) 就是量子干涉的数学来源,被线性代数优美地捕获。
5.3 测量:投影算符
测量过程用投影算符
P
ϕ
=
∣
ϕ
⟩
⟨
ϕ
∣
P_\phi = |\phi\rangle\langle\phi|
Pϕ=∣ϕ⟩⟨ϕ∣ 描述,测量后的状态为:
∣
ψ
′
⟩
=
P
ϕ
∣
ψ
⟩
⟨
ψ
∣
P
ϕ
∣
ψ
⟩
|\psi'\rangle = \frac{P_\phi |\psi\rangle}{\sqrt{\langle\psi|P_\phi|\psi\rangle}}
∣ψ′⟩=⟨ψ∣Pϕ∣ψ⟩Pϕ∣ψ⟩
分母是归一化因子,确保概率和为 1。整个量子力学的数学结构,就是复向量空间上的线性代数——这一事实在物理学家口中常被称为“量子力学的狄拉克记号”。
第六部分:从矩阵到张量——高维数据的挑战
6.1 张量:矩阵的自然推广
矩阵是二维表格,张量是更高维度的数据组织方式:
- 彩色图像:高 × 宽 × 3(RGB通道)→ 3维张量
- 视频:帧数 × 高 × 宽 × 3 → 4维张量
- 批量训练:批次 × 帧数 × 高 × 宽 × 3 → 5维张量
高维带来的核心问题:矩阵乘法不再适用。
6.2 爱因斯坦求和约定
深度学习框架(PyTorch、TensorFlow)使用**Einstein求和(Einsum)**处理高维运算。例如,将 3维张量
X
X
X(批次 × 高度 × 宽度)与权重矩阵
W
W
W 相乘:
Output
b
,
h
,
w
,
o
=
∑
i
X
b
,
h
,
w
,
i
⋅
W
i
,
o
\text{Output}_{b,h,w,o} = \sum_{i} X_{b,h,w,i} \cdot W_{i,o}
Outputb,h,w,o=i∑Xb,h,w,i⋅Wi,o
代码中写作 torch.einsum('bhwi,io->bhwo', X, W)。这条指令在GPU内部被拆解为成百上千个独立的矩阵乘法,并行执行。
6.3 自动微分:计算图上的链式法则
深度学习的反向传播是现代工程的最大成就。框架构建计算图——记录所有张量操作的有向无环图。调用 .backward() 时,从损失函数逆向遍历:
- 每个节点预存局部梯度公式(如 Y = X W Y = XW Y=XW 对 W W W 的梯度为 X T X^T XT)
- 沿途梯度相乘(链式法则)
- 全部转化为矩阵乘法序列
整个复杂的微积分链式法则,在电脑内存里变成了一长串预先排好序的矩阵乘调用。这就是为什么GPU如此重要——它在矩阵乘法上比CPU快几十倍。
6.4 控制流的处理:动态图
代码中的 if/else 或循环并不直接出现在计算图中。框架根据当前输入数据的实际流向动态构建图:
- 输入正值走
if分支,该分支被记录,else分支完全不产生梯度 - 循环按实际迭代次数展开,每次迭代创建一个独立节点
- 对于不可微操作(如
argmax),框架使用“直通估计器”——前向走离散逻辑,反向直接跳过该节点透传梯度
这完全违背了微积分的严谨性,但在实践中效果极好。工程有效优先于数学正确。
第七部分:工业级极限——大模型训练的并行魔法
7.1 显存瓶颈
千亿参数的大模型,单块80GB显存的A100 GPU连模型本身都放不下。模型参数、梯度、优化器状态(如Adam中的动量和方差)三项合计可能超过1TB。
解决思路:拆分。不是把模型拆开(那是软件层面),而是把计算和存储切碎了分配给数千张GPU。
7.2 张量并行:切分矩阵
将单个矩阵乘法按行或列切分,分配给不同GPU。每张卡只存计算自己那部分,通过通信(All-Reduce)合并结果。
优点:有效降低单卡显存
缺点:通信开销巨大
7.3 流水线并行:切分层数
将模型的不同层分配到不同GPU。GPU 0负责前几层,GPU 1负责接下来的层,数据像流水线一样依次流过。
优化:将数据切分为“微批次”以填充流水线气泡,提升设备利用率。
优点:通信量相对较小
缺点:调度复杂,设备利用率可能不高
7.4 ZeRO:零冗余优化器
微软DeepSpeed框架的核心技术。既然每张卡存一份完整模型太浪费,不如把模型状态切成碎片分散存储。
三阶段:
- ZeRO-1:切分优化器状态
- ZeRO-2:切分优化器状态 + 梯度
- ZeRO-3:切分优化器状态 + 梯度 + 模型参数(终极形态,显存降为原来的 1/N)
甚至可以将暂时不用的数据卸载到CPU内存或NVMe固态硬盘,需要时再加载——显存不够,内存来凑。
7.5 通信优化
- 环形全归约:GPU围成环传递累加梯度,避免中心节点瓶颈
- 计算与通信重叠:计算当前批次时发送上一批次的梯度
- 梯度压缩:只传输绝对值最大的前1%梯度,通信量减少90%
结语:一颗数学树的三个分支
回顾全文,我们可以用一个统一的框架理解这三门课程:
| 学科 | 理论角色 | 计算角色 | 与线代的关系 |
|---|---|---|---|
| 高等数学(微积分) | 提供连续模型、变化率的数学描述 | 离散步长→差分矩阵 | 离散化后全转化为矩阵乘法 |
| 概率与数理统计 | 处理随机性、推断数据规律 | 协方差矩阵、特征分解、转移矩阵 | 数据天然是矩阵,统计量全用线代表达 |
| 线性代数 | 向量空间、线性变换的理论 | 所有数值计算的最终执行器 | 自身就是计算语言 |
微积分告诉计算机“往哪个方向走”,概率统计告诉计算机“数据里的噪声长什么样”,线性代数负责“具体迈出每一步”——在GPU的内部,这一切都被翻译成连续的浮点数矩阵乘加运算。
从求解偏微分方程的有限元方法,到训练千亿参数的大语言模型,从量子力学中概率幅的干涉,到推荐系统中的协同过滤,线性代数以其简洁而强大的数学结构,成为连接连续与离散、理论与工程、经典与量子世界的通用语言。
这三门课程在大学里分开讲授,是因为人类需要分步理解;但在计算的终极层面,它们早已融为一体。

从微积分到量子力学:线性代数如何“统治”了整个科学计算?
前言
翻开任何一本理工科教材,高等数学、线性代数、概率论与数理统计永远是前三座大山。在大多数人的印象里,这三门课各司其职——微积分研究连续变化,线性代数处理向量与矩阵,概率统计应对随机现象。
但当你真正走进科学计算和工程应用的深处,一个令人震撼的事实会浮现出来:无论你是求解偏微分方程、训练神经网络,还是理解量子世界,最终落到计算机芯片上执行的,几乎全是线性代数运算。
这篇文章,我想带你系统性地打通这三门课程之间的“隧道”,看看线性代数到底是如何成为现代科学计算“通用语言”的。
一、微积分 × 线性代数:当连续世界被“离散化”
1.1 计算机不认识“无穷小”
微积分的核心——导数和积分——建立在极限概念之上。数学家喜欢写:
f ′ ( x ) = lim h → 0 f ( x + h ) − f ( x ) h f'(x) = \lim_{h \to 0} \frac{f(x+h) - f(x)}{h} f′(x)=h→0limhf(x+h)−f(x)
但计算机是离散的,它不认识“无穷小”,只认识有限精度的浮点数。所以,所有连续问题交给计算机的第一步,必然是离散化。
1.2 求导 = 矩阵乘法
假设我们在区间 [ 0 , 1 ] [0, 1] [0,1] 上取 N N N 个等距点,步长 h = 1 / ( N − 1 ) h = 1/(N-1) h=1/(N−1)。把所有点的函数值排成一个列向量:
f = [ f 0 , f 1 , f 2 , . . . , f N − 1 ] T \mathbf{f} = [f_0, f_1, f_2, ..., f_{N-1}]^T f=[f0,f1,f2,...,fN−1]T
用中心差分近似一阶导数:
f ′ ( x i ) ≈ f ( x i + h ) − f ( x i − h ) 2 h f'(x_i) \approx \frac{f(x_i + h) - f(x_i - h)}{2h} f′(xi)≈2hf(xi+h)−f(xi−h)
你会发现,所有点的导数值可以一次性算完,只需要用一个差分矩阵去乘 f \mathbf{f} f:
f ′ = D 1 f \mathbf{f'} = D_1 \mathbf{f} f′=D1f
其中 D 1 D_1 D1 是一个三对角矩阵,非零元素由步长 h h h 决定。
二阶导数更经典:
f ′ ′ ( x i ) ≈ f ( x i + h ) − 2 f ( x i ) + f ( x i − h ) h 2 f''(x_i) \approx \frac{f(x_i + h) - 2f(x_i) + f(x_i - h)}{h^2} f′′(xi)≈h2f(xi+h)−2f(xi)+f(xi−h)
对应的矩阵 D 2 D_2 D2 主对角线为 − 2 / h 2 -2/h^2 −2/h2,上下次对角线为 1 / h 2 1/h^2 1/h2。这个矩阵在物理学里有一个赫赫有名的名字——拉普拉斯矩阵(离散版)。
1.3 偏微分方程 = 矩阵迭代
拿热传导方程举例:
∂ u ∂ t = α ∂ 2 u ∂ x 2 \frac{\partial u}{\partial t} = \alpha \frac{\partial^2 u}{\partial x^2} ∂t∂u=α∂x2∂2u
空间离散化后变成:
d u d t = α D 2 u \frac{d\mathbf{u}}{dt} = \alpha D_2 \mathbf{u} dtdu=αD2u
再用前向欧拉法离散时间:
u n + 1 = u n + α Δ t ⋅ D 2 u n \mathbf{u}^{n+1} = \mathbf{u}^n + \alpha \Delta t \cdot D_2 \mathbf{u}^n un+1=un+αΔt⋅D2un
提取公因式:
u n + 1 = ( I + α Δ t D 2 ) u n \mathbf{u}^{n+1} = (I + \alpha \Delta t D_2) \mathbf{u}^n un+1=(I+αΔtD2)un
看明白了吗? 一个复杂的偏微分方程,最终变成了一个稀疏矩阵反复乘以一个向量。电脑不认识偏微分,电脑只认识矩阵乘法。
1.4 矩阵微积分
在多元微积分中,函数的局部行为由雅可比矩阵(一阶偏导)和海森矩阵(二阶偏导)描述。雅可比矩阵将一个非线性映射在局部线性化,把复杂的多元函数优化问题转化为迭代求解线性方程组。
一句话总结:微积分提供连续世界的数学模型,线性代数提供计算机实现这些模型的“执行引擎”。
二、概率统计 × 线性代数:数据本身就是矩阵
2.1 数据 = 矩阵
概率论处理随机变量,数理统计处理大量观测数据。当数据规模达到百万、亿级时,唯一的组织方式就是矩阵。
假设我们有 m m m 个样本、 n n n 个特征,数据矩阵 X ∈ R m × n X \in \mathbb{R}^{m \times n} X∈Rm×n。几乎所有统计计算都可以用矩阵运算表达:
- 均值向量:各列求平均
- 协方差矩阵:中心化后 Σ = 1 m X T X \Sigma = \frac{1}{m} X^T X Σ=m1XTX
- 多元正态分布密度:
f ( x ) = 1 ( 2 π ) n / 2 ∣ Σ ∣ exp ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) f(x) = \frac{1}{(2\pi)^{n/2}\sqrt{|\Sigma|}} \exp\left(-\frac{1}{2}(x-\mu)^T \Sigma^{-1} (x-\mu)\right) f(x)=(2π)n/2∣Σ∣1exp(−21(x−μ)TΣ−1(x−μ))
这个公式里,矩阵求逆、矩阵乘法、行列式计算构成了全部运算。
2.2 PCA = 特征分解
主成分分析(PCA)是统计学中最重要的降维方法。它的核心计算就是求解协方差矩阵的特征值问题:
Σ v = λ v \Sigma v = \lambda v Σv=λv
协方差矩阵的特征向量指向数据方差最大的方向,特征值衡量该方向上的方差大小。一个纯粹的线性代数操作,被赋予了深刻的统计含义。
2.3 马尔可夫链 = 矩阵幂
在随机过程理论中,状态转移概率组成转移矩阵 P P P。未来 k k k 步后的状态分布为:
π k = π 0 P k \pi_k = \pi_0 P^k πk=π0Pk
平稳分布就是矩阵 P P P 特征值为 1 对应的特征向量。
一句话总结:概率分布的计算,本质上就是大规模矩阵的乘法和特征分解。
三、三大学科的终极汇合:梯度下降法
3.1 线性回归的“三体问题”
线性回归是最简单的机器学习模型。给定数据矩阵 X X X 和目标向量 y y y,寻找参数 β \beta β 使预测误差最小。
微积分视角:定义损失函数 L ( β ) = 1 2 ∥ y − X β ∥ 2 L(\beta) = \frac{1}{2}\|y - X\beta\|^2 L(β)=21∥y−Xβ∥2,求导:
∇ L ( β ) = X T X β − X T y = 0 \nabla L(\beta) = X^T X \beta - X^T y = 0 ∇L(β)=XTXβ−XTy=0
线性代数视角:得到正规方程 X T X β = X T y X^T X \beta = X^T y XTXβ=XTy,解线性方程组。
概率统计视角:假设误差服从正态分布,最小二乘解正是最大似然估计。
三种视角指向同一个数学对象,但计算机实际执行的,是线性代数——解方程组或矩阵迭代。
3.2 梯度下降:微积分算完,线代上场
当数据量极大时,直接求解正规方程不可行。梯度下降法登场:
β n e w = β o l d − α ∇ L ( β o l d ) \beta_{new} = \beta_{old} - \alpha \nabla L(\beta_{old}) βnew=βold−α∇L(βold)
展开:
β n e w = β o l d − α ( X T X β o l d − X T y ) \beta_{new} = \beta_{old} - \alpha (X^T X \beta_{old} - X^T y) βnew=βold−α(XTXβold−XTy)
看这个式子:求导(微积分)已经完成了,剩下的全部是矩阵乘法、向量加法、数乘——纯粹的线性代数运算。
3.3 随机梯度下降:统计采样 + 线代计算
当数据量大到无法一次性加载时,采用随机梯度下降(SGD):随机抽取一个小批量 X b a t c h X_{batch} Xbatch:
β n e w = β o l d − α ( X b a t c h T X b a t c h β o l d − X b a t c h T y b a t c h ) \beta_{new} = \beta_{old} - \alpha (X_{batch}^T X_{batch} \beta_{old} - X_{batch}^T y_{batch}) βnew=βold−α(XbatchTXbatchβold−XbatchTybatch)
这里发生了精妙的协同:
- 概率统计提供随机采样策略
- 线性代数在每个小批量上执行快速矩阵运算
- 微积分提供梯度方向
统计引入的“噪声”反而帮助模型跳过局部极小值——这是现代深度学习的基石。
四、矩阵不可逆怎么办?伪逆与岭回归的“作弊”艺术
4.1 伪逆:选择性忽略
矩阵 A A A 不可逆,意味着求解 A x = b Ax = b Ax=b 时要么无解,要么有无穷多解。Moore-Penrose 伪逆 A + A^+ A+ 通过**奇异值分解(SVD)**强行构造“逆”:
A
=
U
Σ
V
T
A = U \Sigma V^T
A=UΣVT
A
+
=
V
Σ
+
U
T
A^+ = V \Sigma^+ U^T
A+=VΣ+UT
其中 Σ + \Sigma^+ Σ+ 将零奇异值的倒数设为 0,非零奇异值正常取倒数。
这相当于说:“在矩阵有意义的那些方向上精确求解,在丢失信息的方向上假装无事发生。”
4.2 岭回归:软衰减
伪逆是硬截断(零奇异值直接抛弃),而岭回归采用软衰减:
系数 = σ σ 2 + λ \text{系数} = \frac{\sigma}{\sigma^2 + \lambda} 系数=σ2+λσ
当奇异值 σ \sigma σ 很小时,系数被平滑压缩而非直接置零。
| 方法 | 处理方式 | 特点 |
|---|---|---|
| 伪逆 | 1 / σ 1/\sigma 1/σ, σ = 0 \sigma=0 σ=0 时置 0 | 对微小噪声极度敏感,易过拟合 |
| 岭回归 | σ / ( σ 2 + λ ) \sigma/(\sigma^2+\lambda) σ/(σ2+λ) | 稳定但有偏差(有偏估计) |
工业应用中,稳定性优先于无偏性——这就是为什么岭回归比纯伪逆更常用。
五、量子力学:概率的“复数版本”
5.1 概率幅 = 内积的模方
量子力学颠覆了经典概率的计算方式。系统的状态是复向量空间(希尔伯特空间)中的态矢量 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩。测量得到某个本征态 ∣ ϕ ⟩ |\phi\rangle ∣ϕ⟩ 的概率为:
P ( ϕ ) = ∣ ⟨ ϕ ∣ ψ ⟩ ∣ 2 P(\phi) = |\langle \phi | \psi \rangle|^2 P(ϕ)=∣⟨ϕ∣ψ⟩∣2
这里的 ⟨ ϕ ∣ ψ ⟩ \langle \phi | \psi \rangle ⟨ϕ∣ψ⟩ 是内积,称为概率幅——一个复数。概率是复数内积的模方,而非复数本身。
5.2 叠加与干涉:线性代数的“神之一手”
量子态可以叠加:
∣ ψ ⟩ = α ∣ ↑ ⟩ + β ∣ ↓ ⟩ |\psi\rangle = \alpha|\uparrow\rangle + \beta|\downarrow\rangle ∣ψ⟩=α∣↑⟩+β∣↓⟩
测量得到“向上”的概率是 ∣ α ∣ 2 |\alpha|^2 ∣α∣2,“向下”是 ∣ β ∣ 2 |\beta|^2 ∣β∣2。
反直觉之处在于:当系统处于多个路径的叠加态时,最终概率不是概率相加,而是概率幅先相加再取模方:
P = ∣ ⟨ t ∣ ψ 1 ⟩ + ⟨ t ∣ ψ 2 ⟩ ∣ 2 P = |\langle t|\psi_1\rangle + \langle t|\psi_2\rangle|^2 P=∣⟨t∣ψ1⟩+⟨t∣ψ2⟩∣2
展开后会出现一个干涉项——这正是量子世界波粒二象性的数学来源,被线性代数优美地捕获。
整个量子力学的数学结构,就是复向量空间上的线性代数。
六、从矩阵到张量:深度学习的“升维打击”
6.1 张量:矩阵的自然推广
矩阵是二维的,张量是更高维度的数据容器:
- 彩色图像:高 × 宽 × 3(RGB)→ 3维张量
- 视频:帧 × 高 × 宽 × 3 → 4维张量
- 批量训练:批次 × 帧 × 高 × 宽 × 3 → 5维张量
高维带来的核心问题是:传统矩阵乘法不再适用。
6.2 Einsum:爱因斯坦求和约定
深度学习框架使用**Einstein求和(Einsum)**处理高维运算。例如:
torch.einsum('bhwi,io->bhwo', X, W)
这条指令在GPU内部被拆解为成百上千个独立的矩阵乘法,并行执行。
6.3 自动微分:计算图上的链式法则
深度学习的反向传播是现代工程的最大成就。框架构建计算图——记录所有张量操作的有向无环图。调用 .backward() 时:
- 每个节点预存局部梯度公式
- 沿途梯度相乘(链式法则)
- 全部转化为矩阵乘法序列
整个复杂的微积分链式法则,在电脑内存里变成了一长串矩阵乘调用。
6.4 控制流:动态图的“潜规则”
代码中的 if/else 不直接出现在计算图中。框架根据当前输入数据的实际流向动态构建图:
- 输入正值走
if分支 → 该分支被记录,else完全不产生梯度 - 循环按实际迭代次数展开
- 不可微操作(如
argmax)用“直通估计器”跳过
工程有效,优先于数学正确。
七、工业级极限:大模型训练的并行魔法
7.1 显存瓶颈
千亿参数的大模型,单块80GB显存的A100连模型本身都放不下。模型参数、梯度、优化器状态三项合计可能超过 1TB。
解决方案:拆分。
7.2 三种并行策略
| 策略 | 核心思想 | 优点 | 缺点 |
|---|---|---|---|
| 张量并行 | 将单个矩阵乘法按行/列切分 | 降低单卡显存 | 通信开销巨大 |
| 流水线并行 | 将不同层分配到不同GPU | 通信量小 | 设备利用率不高 |
| ZeRO | 将模型状态切片分散存储 | 显存降为 1/N | 实现复杂 |
ZeRO(零冗余优化器)是微软DeepSpeed的核心技术。三阶段递进:
- ZeRO-1:切分优化器状态
- ZeRO-2:切分优化器状态 + 梯度
- ZeRO-3:切分三者,甚至可卸载到CPU内存或NVMe
7.3 通信优化
- 环形全归约:GPU围成环传递累加梯度,避免中心节点瓶颈
- 计算与通信重叠:计算当前批次时发送上一批次的梯度
- 梯度压缩:只传输最重要的梯度,通信量减少90%
结语:一颗数学树的三个分支
回顾全文,我们可以用一个统一的框架理解这三门课程:
| 学科 | 理论角色 | 计算角色 | 与线代的关系 |
|---|---|---|---|
| 高等数学 | 提供连续模型、变化率描述 | 离散步长→差分矩阵 | 离散化后全转化为矩阵乘法 |
| 概率统计 | 处理随机性、推断数据规律 | 协方差矩阵、特征分解 | 数据天然是矩阵 |
| 线性代数 | 向量空间、线性变换的理论 | 所有数值计算的最终执行器 | 自身就是计算语言 |
微积分告诉计算机“往哪个方向走”,概率统计告诉计算机“数据里的噪声长什么样”,线性代数负责“具体迈出每一步”。
在GPU的内部,这一切都被翻译成连续的浮点数矩阵乘加运算。
从求解偏微分方程的有限元方法,到训练千亿参数的大语言模型;从量子力学中概率幅的干涉,到推荐系统中的协同过滤——线性代数以其简洁而强大的数学结构,成为连接连续与离散、理论与工程、经典与量子世界的通用语言。
这三门课程在大学里分开讲授,是因为人类需要分步理解;但在计算的终极层面,它们早已融为一体。

923

被折叠的 条评论
为什么被折叠?



