矩阵微积分:梯度、Jacobian 与 Hessian

04-分解与数据应用 进阶 约 25 分钟 #矩阵微积分#梯度#Jacobian#Hessian#链式法则 更新 2026-10-02
当前状态:未学
本文基于模型知识整理(生成时未联网核对),关键结论建议对照 The Matrix Calculus You Need For Deep Learning(Parr & Howard)或 Magnus & Neudecker 复核。

一句话定义

矩阵微积分把"多变量求导"整体化为向量/矩阵对象:梯度 $\nabla f$ 是标量函数的方向导数载体($\mathbb{R}^n\to\mathbb{R}$)、Jacobian 是向量函数的一阶导矩阵($\mathbb{R}^n\to\mathbb{R}^m$,线性化本体,kp-006)、Hessian 是二阶导的对称矩阵(曲率=特征系统,kp-016)——深度学习的反向传播就是链式法则在这些对象上的流水线。

为什么重要

机器学习的每一步训练都在做矩阵微积分:损失对百万参数的梯度、BP 的逐层链式、牛顿法的 Hessian、多变量极值判据。没有这套记号,"梯度下降"只是口号;掌握它,任何网络的手推梯度都变成排列组合题。

前置知识

kp-007(矩阵乘法)、单变量求导(导数=线性近似的斜率)。

核心概念

  • 梯度:$\nabla f(x)\in\mathbb{R}^n$,第 i 元 $=\partial f/\partial x_i$;方向意义:最速上升方向,反方向即梯度下降;关键公式:$\nabla_x x^\top a = a$、$\nabla_x x^\top A x = (A+A^\top)x = 2Ax$(A 对称时)。
  • Jacobian:$J\in\mathbb{R}^{m\times n}$,$J_{ij}=\partial f_i/\partial x_j$——局部线性化 $f(x+\delta)\approx f(x)+J\delta$("局部是一个矩阵",kp-006 的微积分版);雅可比行列式 $\det J$ = 局部体积缩放(kp-011 的推广)。
  • Hessian:$H_{ij}=\partial^2 f/\partial x_i\partial x_j$(二阶偏导对称,Schwarz 定理)——曲率矩阵;正定=碗(kp-016)⇒ 局部极小,不定=鞍点。
  • 链式法则的矩阵形态:复合 $f(g(x))$ 的 Jacobian $= J_f J_g$(顺序如矩阵乘,kp-007!)——反向传播=梯度沿计算图反序乘各层 Jacobian。
  • 最小二乘的梯度:$\nabla_x\|Ax-b\|^2 = 2A^\top(Ax-b)$——正规方程(kp-019)的微积分重 derivation。

原理与机制

为什么"导数=线性化"统一一切:单变量导数是最佳线性近似系数;多变量时"最佳线性近似"就是一个矩阵(Jacobian)——微积分与线代在"局部线性"处会师。牛顿法用 Hessian 做二次近似(局部是个二次型碗,kp-016),梯度下降只用一阶(局部是个仿射面)。

两个常用梯度公式的推导模板:$\nabla_x(x^\top Ax)$:按定义写全 $\sum_{ij}A_{ij}x_jx_i$,对 $x_k$ 求偏导收集项得 $(A+A^\top)x$——所有矩阵梯度都可这样"展开-求导-收拢",不必背表。

反向传播的线代本质:层变换 $h_{l+1}=\sigma(W_lh_l)$,$\partial L/\partial h_l = W_l^\top(\partial L/\partial h_{l+1}\odot\sigma')$——梯度回传就是"用转置权重乘上游梯度":BP 是 Jacobian 转置的连乘($J^\top$ 而非 $J^{-1}$,因为优化只要方向不要逆)。这解释了 kp-031 中"转置无处不在"的原因。

公式或模型

  • 线性层梯度:$\nabla_{W}\|Wx - y\|^2 = 2(Wx-y)x^\top$(梯度与输入的外积)
  • 链式:$\nabla_x f(g(x)) = J_g(x)^\top \nabla_u f(u)\big|_{u=g(x)}$(标量输出情形)
  • 二阶条件:Hessian 正定 → 局部极小(kp-016 的微积分化)。

图示

f: Rⁿ→R   梯度 ∇f (向量, 最速上升方向)
f: Rⁿ→Rᵐ  Jacobian J (m×n, 局部线性化 f(x+δ)≈f(x)+Jδ)
f: Rⁿ→R   Hessian H (n×n, 曲率; 对称; 正定=碗)
链式: J_{f∘g} = J_f · J_g     ← 矩阵乘法顺序
BP:  ∂L/∂h_l = W_lᵀ (δ_{l+1} ⊙ σ′)   ← 转置乘回传

直观类比

Jacobian 是"机器的调速面板":轻轻推每个输入手柄(δ),各输出仪表怎么动(Jδ)全记录在一块矩阵里。Hessian 是"踩下油门后加速计的变化"——二阶的曲率;牛顿法看曲率直接跳到碗底,梯度下降只摸坡度小步挪。

实例或案例

  • 线性回归解析解:对 $\|Xw-y\|^2$ 求梯度置零 → 正规方程(kp-019/030 的微积分 derivation)。
  • 交叉熵+softmax 的梯度优雅化:$\partial L/\partial z = p - y$(预测减标签)——矩阵微积分化简的经典战果。
  • 神经网络的形状检查:每层梯度形状必须与该层参数一致——实现 bug 的第一道自检(kp-031)。

常见误区

  • 误区一:"梯度与 Jacobian 混为一谈"。梯度是标量函数特例(列向量);Jacobian 是向量函数(矩阵);分子/分母布局之争让转置翻车——固定一种布局并全篇一致。
  • 误区二:"Hessian 总是对称所以随便用"。仅当二阶偏导连续(f∈C²);且大网络 Hessian 从不显式构造(n² 规模),只做 Hessian-向量积。
  • 误区三:"链式法则的顺序可以随意"。矩阵乘不可交换(kp-007)——BP 实现的维度报错几乎全是顺序/转置错误。

与其他知识点的关系

  • kp-016:Hessian 的正定判据=极值判据。
  • kp-019/030:最小二乘与回归的梯度推导。
  • kp-031:反向传播与注意力梯度的基础设施。

自测题

  1. 求 $f(x)=x^\top A x + b^\top x$ 的梯度(A 对称)。

答:$\nabla f = 2Ax + b$——二次项用 $(A+A^\top)x$、线性项用 $b$。

  1. 为什么 BP 用 $J^\top$ 而不是 $J^{-1}$?

答:反传传播的是"梯度的线性变换"(对偶/伴随映射),需要的是转置;求逆无必要且多数层不可逆(如 ReLU、softmax)。

  1. 某点梯度为零但 Hessian 不定,这是什么点?

答:驻点但非极值——鞍点(某些方向上升某些下降,kp-016 不定二次型)。

延伸阅读

  • Parr & Howard, *The Matrix Calculus You Need For Deep Learning*(arXiv 1802.01528,入门最佳)。
  • Magnus & Neudecker《Matrix Differential Calculus》(严谨参考)。
  • Goodfellow 等《Deep Learning》§6.5(BP 的链式视角)。