大家的AI
机器学习Playground 试玩
加载中…

学习

Ch.09

雅可比矩阵:多变量向量函数的一阶微分

按章节的数学图示

选择章节后,下方图示会切换为该章节内容。可一览中级数学的脉络。

雅可比:多输入变动时输出如何变?

Ch.08 梯度用于 1个 结果,Ch.09 雅可比 JJJ 用于 多个。左输入→右输出。先 弯曲(fff),再 直线近似(JJJ)。

1. 输入格2. f: 弯曲3. 小 ▱4. J: 直线
输入 / Input输出 / OutputfJ→ 远看: 格子弯曲 (非线性 f)

红格=坐标,绿箭头=变换,橙 ▱=fff 小区域,紫 ▱=JJJ 近似。▱ 相似即 f≈JΔxf\approx J\Delta\mathbf{x}f≈JΔx。

想象一座巨大工厂里的机器:多个旋钮(输入)和多个仪表(输出)。同时把1号、2号旋钮微微转动,3号、4号仪表的指针各会移动多少?
上一章的 梯度(Gradient) 在结果(误差)只有1个时,是指出最陡上坡的 单一指南针;而本章的 雅可比矩阵(Jacobian Matrix, JJJ) 在结果有多个时,把所有输入与所有输出之间的细微相互作用汇总成一张大表的 「终极敏感度综合仪表盘」。
我们面对的世界和深度学习模型,远看是曲折难测的非线性曲面(f\mathbf{f}f)。但无论多复杂,在某一点附近用放大镜放大观察,都会像直线和平面一样。雅可比矩阵用平行四边形格子(局部线性近似)再现这一瞬间,是让巨大神经网络追踪误差并自我调参的 奇迹般的数学工具。

雅可比矩阵: 多个输入变动时输出如何变?

① 梯度 vs 雅可比 — 1个答案与多个答案
Ch.08 梯度用于答案 1个 时:“多学10分钟,分数涨多少?” 雅可比用于答案 多个 时:例如机械臂肩、肘微动,手的 X 和 Y 各自 变多少——记在一张 表 里。Ch.08=一个指南针,Ch.09=连接多个旋钮与多个仪表的 大表。
② 读一格 JijJ_{ij}Jij​ — “旋钮 j → 指针 i”
JijJ_{ij}Jij​ 看着难,只需读成:“第 jjj 个输入微动,第 iii 个输出动多少?” 行=输出,列=输入。2×2 时第一行就是“第一个结果对 x、y 各反应多少”。
③ Δy≈JΔx\Delta\mathbf{y}\approx J\Delta\mathbf{x}Δy≈JΔx — “微动输入,输出大约如此”
输入 微动(Δx\Delta\mathbf{x}Δx),输出也 微变(Δy\Delta\mathbf{y}Δy)。近似:输出变化 ≈ 雅可比 × 输入变化。远看是弯的路,某点附近 像 短直线——上图(弯)与下图(直)的差别即此。
④ 反向传播 — 误差逆流时连乘各层表
网络层数很多。末层说“错了”,需 逆流 到前面层才知道改哪里。每层有小 雅可比表,相乘(Jtotal=JL⋯J1J_{\text{total}}=J_L\cdots J_1Jtotal​=JL​⋯J1​)。记住 表×表×表 即可。
⑤ det⁡J\det JdetJ — 面积变几倍 · 机械臂警告灯
小 正方形 变 平行四边形 时,面积几倍 由 det⁡J\det JdetJ 表示(Ch.05)。∣det⁡J∣=6|\det J|=6∣detJ∣=6 → 6倍。臂 完全伸直 时 det⁡J=0\det J=0detJ=0 — 某方向 连1毫米都动不了 的 奇异点(瘫痪) 警告。
1. 向量值函数:多根输入杆与多块输出屏
此前函数往往是:旋钮转很多,结果(误差)却只有1个(标量函数)。但像素坐标、中间层数百个神经元值等,结果本身常以 向量 形式出现。nnn 个输入同时产生 mmm 个输出的机器叫 向量值函数 f:Rn→Rm\mathbf{f}:\mathbb{R}^n\to\mathbb{R}^mf:Rn→Rm。动一下输入杆,数十块输出屏会一起晃动。
2. 局部线性化:放大镜下圆地球也平坦
如上方可视化,真实变化会让格子弯曲成复杂曲线(非线性)。但在某点附近放大数万倍,曲线像短直线,曲面像平面。微积分的核心就在这个狭窄的 局部 区域;雅可比是该摊平写像的 斜率总表。
3. 雅可比矩阵的定义:终极变化摘要
Jij=∂fi∂xjJ_{ij}=\frac{\partial f_i}{\partial x_j}Jij​=∂xj​∂fi​​ 看似复杂,含义很简单:「第 jjj 个旋钮转一格,第 iii 个指针动几格?」 写在第 iii 行第 jjj 列。许多旋钮同时微动 Δx\Delta\mathbf{x}Δx 时,输出变化 Δy\Delta\mathbf{y}Δy 用一行式 Δy≈JΔx\Delta\mathbf{y}\approx J\Delta\mathbf{x}Δy≈JΔx 即可预测。
4. 与 Ch.08 梯度:指南针叠成塔
输出1个⇒一行 梯度 指南针;输出3个⇒三行梯度叠成表。雅可比就是 各输出梯度的集合,一行一行排成的大指南针库。
5. 几何魔法:面积缩放 (det⁡J\det JdetJ)
小正方形输入经雅可比变换变成倾斜平行四边形。面积变为原来的几倍(或缩小),由行列式 det⁡J\det JdetJ 表示。∣det⁡J∣=6|\det J|=6∣detJ∣=6 表示像黏土拉伸一样,单位面积变为 6倍(Ch.05)。
一句: 雅可比 JJJ 是多个旋钮与多个仪表如何一起变化的 终极敏感度表;局部用 Δy≈JΔx\Delta\mathbf{y}\approx J\Delta\mathbf{x}Δy≈JΔx 把复杂变化直线化,是深度学习跨越巨大层数逆流追踪误差(反向传播)的 最重要数学心脏。
深度学习是由无数雅可比矩阵像蛛网一样交织的巨大工厂。ReLU、Sigmoid 等让数据弯曲,但反向传播(Backpropagation)用 局部线性化 求各层 雅可比矩阵。Ch.08 梯度只针对最终误差;层与层之间则需要表达数千神经元相互影响的巨大雅可比。
归根结底,神经网络学习就是按链式法则(Chain Rule)不断相乘雅可比矩阵的数学过程。生成逼真人脸的 GAN 生成器、压缩数据的自编码器都会问:「我把输入的潜在噪声微微扭一下,眼前的图像会怎样变形变化?」——通过雅可比 JJJ 读出答案,再决定学习方向。
1. 反向传播(Backpropagation):误差逆流而上
要减小误差,需把末层误差传回输入层。即使堆了数十层,像踏脚石一样连乘各层局部雅可比 (Jtotal=JL⋯J1J_{\text{total}}=J_L\cdots J_1Jtotal​=JL​⋯J1​) 即可一次算完全局敏感度并更新权重。
2. 概率密度的伸缩(归一化流 / Normalizing Flows)
生成式 AI 可把简单黏土(正态分布)揉捏拉伸成精细雕塑(复杂数据分布)。空间拉宽2倍则密度减半。体积变化引起的概率密度扭曲,用 log⁡∣det⁡J∣\log|\det J|log∣detJ∣ 精确校正(Ch.05 行列式)。
3. 机械臂精细控制与奇异点(瘫痪状态)
想象有肩、肘关节的机械臂。雅可比回答:「关节电机转1°,手端 X、Y 各移动多少?」若臂完全伸直,det⁡J=0\det J=0detJ=0 — 某些方向 连1毫米都动不了 的 奇异点(瘫痪) 警告,在机器人学中极为重要。
解题时按这个顺序来
① 表的大小 — 几个输出? 几个输入?
输出 mmm 个、输入 nnn 个时,JJJ 是 mmm 行 × nnn 列 的表。行=输出,列=输入 (仪表编号 / 旋钮编号)。
② 填格子 — "旋钮 j → 指针 i"
(i,j)(i,j)(i,j) 格子里写 "第 jjj 个输入微动,第 iii 个输出变多少?" 正式叫偏导(JijJ_{ij}Jij​),但只需想成 一个反应大小。
③ 小变动 — 输入动一点 → 输出动一点
输入 只动一点点(Δx\Delta\mathbf{x}Δx)时,输出变化(Δy\Delta\mathbf{y}Δy)大约等于 JJJ × 输入变化: Δy≈JΔx\Delta\mathbf{y}\approx J\Delta\mathbf{x}Δy≈JΔx。
④ 只有1个输出? 就是 Ch.08 梯度
结果只有1个(m=1m=1m=1)时,JJJ 等于 Ch.08 梯度 ∇f\nabla f∇f 横过来放(∇fT\nabla f^\mathsf{T}∇fT)。
三步流程:
① 确认大小 →
② 填偏导 →
③ 函数嵌套则乘 JgJfJ_g J_fJg​Jf​
  • 用语雅可比
  • 含义Jij=∂fi/∂xjJ_{ij}=\partial f_i/\partial x_jJij​=∂fi​/∂xj​, m×nm\times nm×n
  • 用语局部近似
  • 含义Δy≈JΔx\Delta\mathbf{y}\approx J\Delta\mathbf{x}Δy≈JΔx
  • 用语梯度
  • 含义m=1m=1m=1 时 J=∇fTJ=\nabla f^\mathsf{T}J=∇fT
  • 用语链式
  • 含义Jg∘f=JgJfJ_{g\circ f}=J_g J_fJg∘f​=Jg​Jf​
  • 用语det J
  • 含义面积/体积倍率 (Ch.05)
  • 用语反向传播
  • 含义∂L/∂x=JT(∂L/∂f)\partial L/\partial\mathbf{x}=J^\mathsf{T}(\partial L/\partial\mathbf{f})∂L/∂x=JT(∂L/∂f)
用语含义
雅可比Jij=∂fi/∂xjJ_{ij}=\partial f_i/\partial x_jJij​=∂fi​/∂xj​, m×nm\times nm×n
局部近似Δy≈JΔx\Delta\mathbf{y}\approx J\Delta\mathbf{x}Δy≈JΔx
梯度m=1m=1m=1 时 J=∇fTJ=\nabla f^\mathsf{T}J=∇fT
链式Jg∘f=JgJfJ_{g\circ f}=J_g J_fJg∘f​=Jg​Jf​
det J面积/体积倍率 (Ch.05)
反向传播∂L/∂x=JT(∂L/∂f)\partial L/\partial\mathbf{x}=J^\mathsf{T}(\partial L/\partial\mathbf{f})∂L/∂x=JT(∂L/∂f)
① 行=输出,列=输入.
② 线性 f=Axf=Axf=Ax 则 J=AJ=AJ=A.
③ 小 Δx\Delta\mathbf{x}Δx.
④ 奇异(det=0=0=0)则某方向塌缩.

解题示例

例1 — 2×2 J
题:f(x,y)=(x+y,  x−y)\mathbf{f}(x,y)=(x+y,\;x-y)f(x,y)=(x+y,x−y) 的 JJJ?
解:f1=x+y⇒(1,1)f_1=x+y\Rightarrow(1,1)f1​=x+y⇒(1,1), f2=x−y⇒(1,−1)f_2=x-y\Rightarrow(1,-1)f2​=x−y⇒(1,−1). J=(111−1)J=\begin{pmatrix}1&1\\1&-1\end{pmatrix}J=(11​1−1​).

例2 — 一点处
题:f(x,y)=(x2,  y)\mathbf{f}(x,y)=(x^2,\;y)f(x,y)=(x2,y), (1,0)(1,0)(1,0) 的 JJJ?
解:∂f1/∂x=2x=2\partial f_1/\partial x=2x=2∂f1​/∂x=2x=2, 其余0; ∂f2/∂y=1\partial f_2/\partial y=1∂f2​/∂y=1. J=(2001)J=\begin{pmatrix}2&0\\0&1\end{pmatrix}J=(20​01​).

例3 — 线性
题:f(x)=Ax\mathbf{f}(\mathbf{x})=A\mathbf{x}f(x)=Ax 的 JJJ?
解:AAA (处处相同).

例4 — 链式
题:f(x)=xf(x)=xf(x)=x, g(u)=2ug(u)=2ug(u)=2u 时 Jg∘fJ_{g\circ f}Jg∘f​ (1×1)?
解:Jf=1J_f=1Jf​=1, Jg=2J_g=2Jg​=2, Jg∘f=JgJf=2J_{g\circ f}=J_g J_f=2Jg∘f​=Jg​Jf​=2.

例5 — det J
题:J=(2003)J=\begin{pmatrix}2&0\\0&3\end{pmatrix}J=(20​03​) 时单位正方形面积?
解:∣det⁡J∣=∣6∣=6|\det J|=|6|=6∣detJ∣=∣6∣=6 → 6倍.

例6 — 线性层
题:z=Wx+b\mathbf{z}=W\mathbf{x}+\mathbf{b}z=Wx+b 的 JJJ?
解:线性变换故 WWW.

练习题

m=1m=1m=1 时雅可比 JJJ 等于把梯度 ∇f\nabla f∇f 作为 行向量。
1 / 5