系列文章目录

人工智能与线性代数:向量与矩阵的运算和性质


前言:博主在跌跌撞撞跟随人工智能发展的脚步过程中,越来越发现数学基础的重要性,然而AI领域的迭代速度实在太快,难以沉下心来深耕纯粹的数理知识。学校里的课程知识要么过于枯燥要么难以理解找不到和自己想做的工作之间的关系。所以计划和大模型进行沟通,梳理出自己认为学习LLM,VLM和Agent相关的数学知识,方便自己随时回顾。

在神经网络中,如果说线性代数搭建了模型的“身体”(前向传播),那么微积分与优化理论则赋予了模型“学习的能力”(反向传播与参数更新)。

一、一阶导数(梯度)

(一)多变量微分

在单变量微积分中,导数 f ′ ( x ) f'(x) f(x) 代表曲线的斜率。但在 AI 的高维世界里,Loss 函数(如交叉熵)是由数千亿个参数共同决定的。

  • 偏导数:
    对于损失函数 L ( w 1 , w 2 , … , w n ) L(w_1, w_2, \dots, w_n) L(w1,w2,,wn),偏导数 ∂ L ∂ w i \frac{\partial L}{\partial w_i} wiL 表示在保持其他所有参数不动时,仅调整参数 w i w_i wi,Loss 会如何变化。
  • 梯度 (Gradient, ∇ L \nabla L L):
    把所有参数的偏导数打包成一个向量,就得到了梯度: ∇ L = [ ∂ L ∂ w 1 , ∂ L ∂ w 2 , … , ∂ L ∂ w n ] T \nabla L = \left[ \frac{\partial L}{\partial w_1}, \frac{\partial L}{\partial w_2}, \dots, \frac{\partial L}{\partial w_n} \right]^T L=[w1L,w2L,,wnL]T
  • AI的几何直觉:
    想象你被蒙上双眼,置于高维的“Loss 山谷”中,你的目标是走到谷底(误差最小)。梯度 ∇ L \nabla L L 指向山谷中坡度最陡的“上山方向”。因此,我们要向梯度的反方向迈步,这就是梯度下降(Gradient Descent): W new = W old − η ∇ L W_{\text{new}} = W_{\text{old}} - \eta \nabla L Wnew=WoldηL

(二)链式法则 (Chain Rule)

神经网络是由多层线性变换与非线性激活函数嵌套而成的巨型复合函数。如何计算输入层或中间层权重的梯度?这全部依赖链式法则。

  • 核心公式:
    假设有一个简单的两层嵌套: y = f ( u ) y = f(u) y=f(u),而 u = g ( x ) u = g(x) u=g(x)。如果我们要看 x x x y y y 的最终影响,就是两段变化率的连乘: ∂ y ∂ x = ∂ y ∂ u ⋅ ∂ u ∂ x \frac{\partial y}{\partial x} = \frac{\partial y}{\partial u} \cdot \frac{\partial u}{\partial x} xy=uyxu

  • AI映射:反向传播
    在 Transformer 模型中,前向传播计算损失的流向是: Token → Embedding → Attention → MLP → Loss \text{Token} \rightarrow \text{Embedding} \rightarrow \text{Attention} \rightarrow \text{MLP} \rightarrow \text{Loss} TokenEmbeddingAttentionMLPLoss
    当计算完 Loss 后,算法通过计算图(Computational Graph)从后往前倒推,将每一层的局部导数像接力棒一样相乘,最终把梯度传回给最初的参数。

由于链式法则本质是连乘。如果模型极深(比如 70B 参数的 Llama 有 80 层),而每一层的导数都略小于 1(例如 0.9 0.9 0.9),连乘 80 次后,传到前几层的梯度就会接近于 0(梯度消失),导致前几层无法学习。这就是为什么 Transformer 必须引入残差连接(Residual Connection)的原因:因为残差的导数里包含一个常数 + 1 +1 +1,在链式法则中形成了一条“梯度高速公路”,阻止了梯度的成倍衰减。

(三)雅可比矩阵

当函数输出不是一个标量(如 Loss),而是一个向量(如隐藏层状态、生成图像的像素流)时,其导数就是雅可比矩阵。如果把一个矩阵看作是一个空间转换的“滤镜”,那么雅可比矩阵就是这个滤镜在局部微观层面的放大镜。

1. 数学定义

在微积分中,如果一个函数将一个 n n n 维向量 z \mathbf{z} z 映射到一个 m m m 维向量 x \mathbf{x} x x = f ( z ) \mathbf{x} = f(\mathbf{z}) x=f(z)那么它的雅可比矩阵 J J J 就是由所有一阶偏导数构成的 m × n m \times n m×n 矩阵: J = ∂ x ∂ z = [ ∂ x 1 ∂ z 1 … ∂ x 1 ∂ z n ⋮ ⋱ ⋮ ∂ x m ∂ z 1 … ∂ x m ∂ z n ] J = \frac{\partial \mathbf{x}}{\partial \mathbf{z}} = \begin{bmatrix} \frac{\partial x_1}{\partial z_1} & \dots & \frac{\partial x_1}{\partial z_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial x_m}{\partial z_1} & \dots & \frac{\partial x_m}{\partial z_n} \end{bmatrix} J=zx= z1x1z1xmznx1znxm

2. 几何意义与行列式 ∣ J ∣ |J| J

雅可比矩阵在几何上最重要的角色是:它是非线性空间映射的“局部线性化转换器”。

  • 最佳线性逼近(泰勒一阶展开)
    在数学上,如果我们要在一特定点 x 0 \mathbf{x}_0 x0 附近去近似一个极其复杂的非线性函数 f ( x ) \mathbf{f}(\mathbf{x}) f(x),可以将其写为: f ( x ) ≈ f ( x 0 ) + J ⋅ ( x − x 0 ) \mathbf{f}(\mathbf{x}) \approx \mathbf{f}(\mathbf{x}_0) + J \cdot (\mathbf{x} - \mathbf{x}_0) f(x)f(x0)+J(xx0)
    在这里,雅可比矩阵 J J J 扮演的就是一元微积分中“导数”的角色,作为线性映射的系数。

  • 雅可比行列式
    m = n m = n m=n (即输入和输出维度相等)时,雅可比矩阵是一个方阵。此时,我们可以计算它的行列式,记作 det ⁡ ( J ) \det(J) det(J) ∣ J ∣ |J| J

雅可比行列式的绝对值 ∣ det ⁡ ( J ) ∣ |\det(J)| det(J) 的几何意义是:输入空间在映射到输出空间时,微元体积(或面积)的缩放倍数。

如果 ∣ det ⁡ ( J ) ∣ = 2 |\det(J)| = 2 det(J)=2,说明该点附近的微小区域在映射后体积膨胀了 2 倍。如果 ∣ det ⁡ ( J ) ∣ = 0 |\det(J)| = 0 det(J)=0,说明空间发生了坍塌,映射后的维度降低了(矩阵不可逆)。

3. 与 AI 的强相关度(多模态与生成模型):

雅可比矩阵的几何意义与行列式性质使其常常用于两个空间相互映射的场景中:

只要涉及到空间的变换、坐标系的旋转扭曲、数据从一个流形(Manifold)映射到另一个流形,雅可比矩阵及其行列式就会雷打不动地出现在数学公式里。 它要么负责在局部把非线性映射“强行拍扁”成线性矩阵(方便求导),要么负责在空间体积改变时充当“校准器”(保持概率或积分守恒)。

  • 在 标准化流(Normalizing Flows) 和 连续时间生成模型(如 Rectified Flow, Diffusion 变体) 中,我们需要在简单隐空间(如标准高斯分布)和复杂数据空间(如真实图像)之间做可逆的坐标变换。为了保证在变换过程中概率密度的积分依然为 1(概率守恒),模型在损失函数中必须精准计算前向变换的对数雅可比行列式。
  • 多模态表征对齐(VLM):在分析图像特征空间向文本特征空间映射的局部几何保真度时,通常需要通过雅可比矩阵来评估映射是否发生严重的局部扭曲。

二、二阶导数(海森矩阵)

如果说一阶导数(梯度)给出了网络的“前进方向”,那么二阶导数则给出了曲线的“弯曲程度”。

在线性代数中,海森矩阵的本质就是梯度向量的雅可比矩阵(即对梯度再次求导的映射)

(一) 海森矩阵(Hessian, H H H

1.数学定义:

海森矩阵是由损失函数对所有参数的二阶偏导数构成的方阵( n × n n \times n n×n)。它描述了高维局部空间的曲率。
H = ∇ 2 f ( x ) = [ ∂ 2 f ∂ x 1 2 ∂ 2 f ∂ x 1 ∂ x 2 … ∂ 2 f ∂ x 1 ∂ x n ∂ 2 f ∂ x 2 ∂ x 1 ∂ 2 f ∂ x 2 2 … ∂ 2 f ∂ x 2 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ 2 f ∂ n ∂ x 1 ∂ 2 f ∂ n ∂ x 2 … ∂ 2 f ∂ x n 2 ] H = \nabla^2 f(\mathbf{x}) = \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & \dots & \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \frac{\partial^2 f}{\partial x_2 \partial x_1} & \frac{\partial^2 f}{\partial x_2^2} & \dots & \frac{\partial^2 f}{\partial x_2 \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial n \partial x_1} & \frac{\partial^2 f}{\partial n \partial x_2} & \dots & \frac{\partial^2 f}{\partial x_n^2} \end{bmatrix} H=2f(x)= x122fx2x12fnx12fx1x22fx222fnx22fx1xn2fx2xn2fxn22f

海森矩阵是一个对称方阵。根据克莱罗定理(Clairaut’s Theorem),在绝大多数连续可导的正常函数下,先对 x i x_i xi 求导再对 x j x_j xj 求导,与顺序调换后的结果是一样的(即 ∂ 2 f ∂ x i ∂ x j = ∂ 2 f ∂ x j ∂ x i \frac{\partial^2 f}{\partial x_i \partial x_j} = \frac{\partial^2 f}{\partial x_j \partial x_i} xixj2f=xjxi2f)。因此,海森矩阵永远满足 H = H T H = H^T H=HT,即它是一个实对称阵。

工程红利:实对称阵在计算机数值线性代数中拥有极大的计算红利。这意味着我们在存储或计算它时,只需要处理对角线加任意一侧的三角形区域,理论上直接省去了一半的显存和计算量。

2. 海森矩阵的性质

由于海森矩阵是对称的,根据谱定理,它拥有一组完整的标准正交特征向量和实数特征值 λ i \lambda_i λi。这些特征值决定了误差曲面的正定性,进而作为“几何裁判”定义了空间的局部形态:

海森矩阵的正定性 特征值状态 空间几何形态 最优化中的物理意义
正定(Positive Definite) 所有 λ i > 0 \lambda_i > 0 λi>0 全方向向上弯曲(碗底) 局部极小值点
负定(Negative Definite) 所有 λ i < 0 \lambda_i < 0 λi<0 全方向向下塌陷(山顶) 局部极大值点
半正定(Positive Semi-definite) 所有 λ i ≥ 0 \lambda_i \ge 0 λi0 包含平坦的谷底(槽状) 可能存在脊线状的非唯一极小值区域
不定(Indefinite) 有正有负 ( λ + > 0 , λ − < 0 \lambda_+ > 0, \lambda_- < 0 λ+>0,λ<0) 一部分方向上凸,一部分方向下凹 鞍点

3. 与AI的强相关度

  • 后量化(PTQ)相关:以 GPTQ、AWQ 等量化技术为例。当把大模型的权重从 FP16 压缩到 INT4 时,必然会引入扰动 Δ W \Delta W ΔW。如何让量化后的 Loss 增加最小?利用泰勒展开:
    Δ Loss ≈ ( ∇ W Loss ) T Δ W + 1 2 Δ W T H Δ W \Delta \text{Loss} \approx (\nabla_W \text{Loss})^T \Delta W + \frac{1}{2} \Delta W^T \mathbf{H} \Delta W ΔLoss(WLoss)TΔW+21ΔWTHΔW在收敛点,梯度 ∇ W Loss ≈ 0 \nabla_W \text{Loss} \approx 0 WLoss0,因此量化误差完全由海森矩阵 H H H(或激活值的协方差矩阵)主导。GPTQ 就是基于求解 H − 1 H^{-1} H1 来精确补偿量化误差的。

在 AI 领域,一阶梯度让我们能够粗放地“跑起来”,而海森矩阵的性质则决定了我们如何能“走得更稳”(泛化)、“压缩得更小”(量化)、“追溯得更准”(可解释性)以及“拐弯更聪明”(高级优化)。 它是所有前沿 AI 算法从“经验工程”走向“精密数学控制”的必经之路。

(二) 海森矩阵与雅可比矩阵的对比

雅可比矩阵是一阶导数的代数合集,海森矩阵是二阶导数的代数合集。

维度 雅可比矩阵 (Jacobian Matrix) 海森矩阵 (Hessian Matrix)
符号表示 J J J ∂ y ∂ x \frac{\partial \mathbf{y}}{\partial \mathbf{x}} xy H H H ∇ 2 f ( x ) \nabla^2 f(\mathbf{x}) 2f(x)
适用函数 多元向量函数: f : R n → R m \mathbf{f}: \mathbb{R}^n \to \mathbb{R}^m f:RnRm
(多输入,多输出)
多元标量函数: f : R n → R 1 f: \mathbb{R}^n \to \mathbb{R}^1 f:RnR1
(多输入,单输出)
求导阶数 一阶偏导数 二阶偏导数
矩阵形状 不一定是方阵: m × n m \times n m×n
(行数 = 输出维度,列数 = 输入维度)
必然是方阵: n × n n \times n n×n
(输入维度的平方)
对称性 通常非对称 在连续可导的前提下,一定是实对称矩阵( H = H T H = H^T H=HT
元素本质 J i j = ∂ y i ∂ x j J_{ij} = \frac{\partial y_i}{\partial x_j} Jij=xjyi H i j = ∂ 2 f ∂ x i ∂ x j H_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j} Hij=xixj2f
  • 几何意义上的理解:
    • 雅可比矩阵描述的是一个多维空间到另一个多维空间的非线性映射关系;
    • 海森矩阵描述的是一个高维标量曲面(如神经网络的 Loss Landscape)的局部弯曲程度。
  • AI应用场景的理解:
    • 雅可比矩阵常用于信号与梯度的“跨空间传导”:在 Flow-based 生成模型和连续时间生成(如 Rectified Flow)中,为了在噪声隐空间和图像流形空间之间做可逆变换且保持概率守恒,损失函数中必须包含雅可比行列式的计算。
    • 海森矩阵常用于精细控制与重要性度量:在 GPTQ、AWQ 或 CholQuant 等不改变参数规模的压缩算法中,删除或量化某个参数会引发 Loss 空间的波动。二阶泰勒展开表明,这种扰动误差的大小完全由海森矩阵控制。利用海森矩阵的逆,可以精确计算出对其他未压缩参数的协同补偿量。

三、优化

(一)凸优化 (Convex Optimization)

在优化理论中,我们梦寐以求的对象是凸函数。

1. 什么是凸优化?

几何上,如果一个函数图像上任意两点连线上的所有点,都位于该函数图像的上方,这个函数就是凸函数(碗状)。

  • 数学特征:其 Hessian 矩阵(二阶导数矩阵)是半正定的。
  • 黄金性质:局部最优解就是全局最优解。这意味着只要你顺着梯度往下走,迟早能找到真正的最低点,绝不会被困在半山腰的伪谷底。

2. AI 现实:大模型是非凸优化

很遗憾,深度神经网络的 Loss 景观(Loss Landscape)是极其复杂的非凸(Non-convex)空间,里面充满了:

  • 鞍点 (Saddle Points):在一个方向是极小值,在另一个方向是极大值(形如马鞍)。在大模型中,阻碍优化的往往不是局部极小值,而是无数的鞍点。
  • 局部陷阱:无数个小水坑。

既然是非凸的,普通的 SGD(随机梯度下降)极易死在鞍点。于是 AI 领域引入了动量(Momentum)和自适应二阶估计:

  • AdamW 优化器:利用了一阶动量(梯度的指数移动平均)来冲过鞍点,并利用二阶动量(梯度平方的指数移动平均,本质是方差)来为不同的参数动态调整学习率。

(二)随机梯度下降的动力学与随机微分方程(SDE)

大模型的训练从来都不是平滑的微积分,而是充满噪声的。

把随机梯度下降SGD的训练过程看作是一个连续的动力学系统,并用随机微分方程来建模,是近年来深度学习理论界(解释大模型为什么能泛化、如何逃离局部最小值)的重要突破之一。

1. 全量梯度下降GD与随机梯度下降SGD

全量梯度下降(GD):纯粹的确定性动力学
在经典的牛顿力学中,一个微粒在势能面 L ( θ ) L(\theta) L(θ) 上运动,受到势能产生的力(梯度 − ∇ L ( θ ) -\nabla L(\theta) L(θ))和阻尼力。在微观世界或高阻尼环境下(过阻尼近似),微粒的惯性可以忽略,其速度直接正比于受力: d θ d t = − ∇ L ( θ ) \frac{d\theta}{dt} = -\nabla L(\theta) dtdθ=L(θ)

随机梯度下降(SGD):
随机梯度下降每次只用一个小批量(Mini-batch)的数据来估计全局梯度。这就相当于:微粒一方面受到宏观的重力牵引(全局梯度),另一方面不停地受到周围液体分子的随机碰撞。

因此,SGD 的本质就是物理学中的朗之万动力学(Langevin Dynamics): SGD 轨迹 = 确定性漂移 (Drift) + 随机涨落 (Diffusion) \text{SGD 轨迹} = \text{确定性漂移 (Drift)} + \text{随机涨落 (Diffusion)} SGD 轨迹=确定性漂移 (Drift)+随机涨落 (Diffusion)

2. 从离散差分到连续的随机微分方程SDE

把每次小批量(Mini-batch)训练引入的梯度随机误差,建模为连续时间上的布朗运动(Brownian Motion),从而将梯度下降方程升级为随机微分方程(SDE)。

标准的 SGD 离散更新公式为: θ k + 1 = θ k − η ∇ L B ( θ k ) \theta_{k+1} = \theta_k - \eta \nabla L_B(\theta_k) θk+1=θkηLB(θk)其中 η \eta η 是学习率, L B L_B LB 是在 Batch B B B 上计算的局部损失。

我们将局部梯度拆分为“全局真实梯度 ∇ L ( θ ) \nabla L(\theta) L(θ)”与“采样噪声 ξ k \xi_k ξk”的和: ∇ L B ( θ k ) = ∇ L ( θ k ) + ξ k ( θ k ) \nabla L_B(\theta_k) = \nabla L(\theta_k) + \xi_k(\theta_k) LB(θk)=L(θk)+ξk(θk)这里,梯度噪声 ξ k \xi_k ξk 的数学期望为 0( E [ ξ k ] = 0 \mathbb{E}[\xi_k] = 0 E[ξk]=0),其协方差矩阵为 C ( θ ) = Cov ( ∇ L B ( θ ) ) C(\theta) = \text{Cov}(\nabla L_B(\theta)) C(θ)=Cov(LB(θ))

代回更新公式,并令时间微元 Δ t = η \Delta t = \eta Δt=η(把学习率看作时间步长): θ ( t + Δ t ) − θ ( t ) = − ∇ L ( θ ( t ) ) Δ t − η ⋅ C ( θ ( t ) ) Δ t Z k ⏟ Δ W \theta(t + \Delta t) - \theta(t) = - \nabla L(\theta(t)) \Delta t - \sqrt{\eta} \cdot \sqrt{C(\theta(t))} \underbrace{\sqrt{\Delta t} Z_k}_{\Delta W} θ(t+Δt)θ(t)=L(θ(t))Δtη C(θ(t)) ΔW Δt Zk其中 Z k ∼ N ( 0 , I ) Z_k \sim \mathcal{N}(0, I) ZkN(0,I) 是标准正态分布。当 Δ t → 0 \Delta t \to 0 Δt0 时,离散的步长走向连续,上面的差分方程就收敛成了标准的伊藤随机微分方程(Itō SDE): d θ t = − ∇ L ( θ t ) d t + η C ( θ t ) d W t d\theta_t = -\nabla L(\theta_t) dt + \sqrt{\eta C(\theta_t)} dW_t dθt=L(θt)dt+ηC(θt) dWt

  • − ∇ L ( θ t ) d t -\nabla L(\theta_t) dt L(θt)dt(漂移项 Drift):由全局梯度驱动,引导网络走向损失更低的地方。
  • η C ( θ t ) d W t \sqrt{\eta C(\theta_t)} dW_t ηC(θt) dWt(扩散项 Diffusion):由布朗运动(维纳过程 W t W_t Wt)驱动的随机噪声。

3. 与 AI 的强相关度

  • 为什么大模型能泛化?
    深度学习理论研究表明,小批量随机梯度下降(SGD/AdamW)中的“随机噪声”本质上是一种隐式正则化。由 SDE 描述的这种动力学行为,能够让模型的参数“跳出”狭窄的局部极小值死胡同,最终滑入更宽、更平坦的谷底(Flat Minima)。平坦谷底意味着模型对参数微调和测试集扰动不敏感,从而具备极强的泛化能力。

  • 扩散模型的反向时间 SDE:Diffusion 模型的加噪过程是一个前向 SDE,而生成图片的过程则是通过求解一个反向时间 SDE(Reverse-time SDE)来逐步将纯噪声还原为逼真图像。

(三)拉格朗日乘子法 (Lagrange Multipliers)

实际研究中的优化往往不是随心所欲的,而是带有限制条件(约束)的。拉格朗日乘子法的作用就是将一个“带约束条件”的难题,转换成一个“无约束条件”的简单问题。

1.核心思想

拉格朗日注意到,当目标函数的等高线与约束条件的边界线相切时,取得了受约束的极值。此时它们的梯度方向平行: ∇ f ( x ) = λ ∇ g ( x ) \nabla f(x) = \lambda \nabla g(x) f(x)=λg(x)。于是他构造了一个无约束的新函数(拉格朗日函数): L ( x , λ ) = f ( x ) − λ g ( x ) \mathcal{L}(x, \lambda) = f(x) - \lambda g(x) L(x,λ)=f(x)λg(x)通过对 x x x λ \lambda λ 分别求偏导并令其为 0,就能解出约束条件下的极值。

2. AI 顶层映射:RLHF 与 智能体决策

拉格朗日乘子法是理解对齐算法(如 PPO、DPO)的关键。

RLHF / PPO 中的 KL 散度约束:
在强化学习微调 LLM 时,我们希望模型获得的奖励 R ( x ) R(x) R(x) 最大。但如果任由模型野蛮生长,它会为了迎合奖励器而产生“奖励作弊(Reward Hacking)”,吐出充满乱码但高分的文本。因此,我们必须加一个约束:新更新的模型 P θ P_\theta Pθ 与原始 SFT 模型 P ref P_{\text{ref}} Pref 之间的 KL 散度(差异度)不能超过一个阈值 ϵ \epsilon ϵ。这构成了一个典型的带约束优化问题: max ⁡ θ E [ R ( x ) ] s.t. E [ KL ( P θ ∥ P ref ) ] ≤ ϵ \max_\theta \mathbb{E}[R(x)] \quad \text{s.t.} \quad \mathbb{E}[\text{KL}(P_\theta \| P_{\text{ref}})] \le \epsilon θmaxE[R(x)]s.t.E[KL(PθPref)]ϵ利用拉格朗日乘子法,将其转化为无约束的损失函数: L ( θ ) = E [ R ( x ) ] − β ⋅ KL ( P θ ∥ P ref ) \mathcal{L}(\theta) = \mathbb{E}[R(x)] - \beta \cdot \text{KL}(P_\theta \| P_{\text{ref}}) L(θ)=E[R(x)]βKL(PθPref)论文里常常见到的这个系数 β \beta β,本质上就是拉格朗日乘子。它动态地在“获取高分”与“保持模型不崩溃”之间建立平衡。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐