分子布局矩阵求导总结

一、核心定义与布局准则

分子布局又称雅可比布局,是矩阵求导领域的主流约定之一,广泛用于控制理论、经典机器学习公式推导中。

核心口诀

导数形状 = 分子形状 × 分母转置形状 即求导结果的行数完全匹配分子 y 的行数列数完全匹配分母 x 转置后的列数(等价于 x 的行数)

若 y 是 m 行结构(标量 1 行、列向量 m 行、矩阵 m 行),导数就有 m 行;

若 x 是 n 行结构(标量 1 行、列向量 n 行、矩阵 p 行),导数就有 n 列;

下文默认向量均指列向量


二、分场景详细规则与导数含义

按分子 y、分母 x 分别为标量、列向量、矩阵三种组合,逐一展开规则说明。

1. 分子为标量 y

(1)对标量 x 求导

导数形状:标量(1×1)

形式:dy/dx​

含义:普通一元函数导数,无布局差异。

(2)对列向量 x∈Rn(n×1 列向量)求导

导数形状:1×n 行向量(与 x 的转置同形,而非与 x 本身同形)

展开形式: 

导数含义:函数的梯度(行向量形式)

几何意义:梯度指向函数值增长最快的方向,其模长等于该方向上的方向导数;

等高线性质:在函数的等高线图上,梯度方向始终与等高线的切线垂直,且指向函数值更高的一侧。

示例验证:

常见示例

(3)对矩阵 X∈Rp×q 求导

导数形状:q×p 矩阵(与 X 的转置同形)

元素对应:结果矩阵第 j 行第 i 列的元素 = 原矩阵第 i 行第 j 列元素的导数,即 

导数含义:矩阵变量的梯度,广泛用于矩阵优化、低秩分解等问题。

补充说明:部分工程资料中会约定 “标量对矩阵求导结果与原矩阵同形”,该约定属于分母布局,与严格分子布局的结果恰好互为转置,使用时需注意上下文的约定。


2. 分子为列向量 y∈Rm(m×1 列向量)

(1)对标量 x 求导

导数形状:m×1 列向量(与 y 同形)

展开形式:

含义:向量值函数对标量的瞬时变化率,每个元素独立求导后保持原向量结构。

(2)对列向量 x∈Rn(n×1 列向量)求导

导数形状:m×n 矩阵(雅可比矩阵)

展开形式: 

每一列自上往下分子对应y1,y2...,ym,每一行分母自左往右对应x1,x2..,xn

规则对应:矩阵的第 i 行 = 标量 yi​ 对向量 x 的梯度行向量,完全契合 “标量对向量求导为行向量” 的基础规则。

常见示例:

含义:描述向量值函数的局部线性映射关系,是多元微积分、反向传播推导的核心工具。

(3)对矩阵 X∈Rp×q 求导

张量形式表述:若保留矩阵维度结构,可表示为 m×q×p 的三阶张量,对应 “y 维度 × X 列维度 × X 行维度”,与维度口诀一致。


3. 分子为矩阵 Y∈Rm×n

(1)对标量 x 求导

导数形状:m×n 矩阵(与 Y 同形)

元素对应:结果矩阵每个位置的元素 = 原矩阵对应位置元素对 x 的导数,即

含义:矩阵值函数对标量的变化率,逐元素求导后保持原矩阵结构。

(2)对列向量 x∈Rp(p×1 列向量)求导

张量形式表述:保留矩阵结构时可表示为 m×n×p 三阶张量。

(3)对矩阵 X∈Rp×q 求导

导数形状:mn × pq 矩阵

维度对应:分子总元素数(m×n)为行数,分母总元素数(p×q)为列数。

张量形式表述:保留矩阵结构时可表示为 m×n×q×p四阶张量。


三、形状汇总总表

下表横轴为分母 x 的类型(标量 / 列向量 / 矩阵),纵轴为分子 y 的类型(标量 / 列向量 / 矩阵)。单元格内包含导数形状维度形状示意图描述:列向量竖向绘制,行向量横向绘制,矩阵用矩形表示。

表格

分子 \ 分母 标量 x(1×1) 列向量 x(n×1) 矩阵 X(p×q)
标量 y(1×1) 0 阶:标量(1×1) 1 阶:1×n 行向量 2 阶:q×p 矩阵
列向量 y(m×1) 1 阶:m×1 列向量 2 阶:m×n 雅可比矩阵 3 阶:m×q×p 三阶张量
矩阵 Y(m×n) 2 阶:m×n 矩阵 3 阶:m×n×p 三阶张量 4 阶:m×n×q×p 四阶张量

自动求导

根据链式法则的自动求导有两种形式:正向模式和反向模式

下面以一个简单的函数f(x,y)=x⋅y+sin(x)作为例子讲解。

1、正向模式

从输入开始,沿计算图正向推进,同步计算函数值和选定方向的导数。一次正向传播只能得到一个输入变量对所有中间变量及输出的导数。

对x求解,将 x 视为变量,y 视为常量

假设x=1, y=1

用到的信息:当前输入 x,y 的数值

存储状态:计算完成后,仅需保留 u=1 和 du/dx​=1 传给下一级;x,y 的数值可以直接丢弃,后续节点不再直接用到。

用到的信息:当前输入 x 的数值

存储状态:计算完成后,仅需保留 v≈0.8415 和 dv/dx​≈0.5403 传给下一级;x 的数值可以直接丢弃。

用到的信息:上游传来的 u,v 的数值和导数值

存储状态:得到最终结果后,所有中间值均可全部释放。

对y求解是需要重新进行一次正向传播,可见输入元素的数量越多,传播的次数就越多

复杂度

时间:一次正向传播的计算量是原函数的常数倍(≈2~3倍)。若输入有 nn 维,要获得全部梯度需运行 n 次,总时间为 O(n⋅ops)。

空间:只需保存当前变量的值和导数,无需存储整个计算图,额外空间 O(1)(忽略输入输出)。

2、反向模式

先正向计算函数值并存储所有中间变量,再从输出反向传播。一次反向传播即可得到输出对所有输入的梯度

依旧假设x=1,y=1

前向传播计算 v = sin(1), u = 1, f = sin(1) + 1

用到的信息:加法算子的结构规则、上游传来的梯度

用到的信息:须依赖 x,y 的具体数值;如果前向不缓存,反向走到这里时已经不知道输入值,无法计算偏导

用到的信息:须依赖 x 的具体数值才能算出余弦值,无缓存则无法计算

用到的信息:需依赖计算图的结构以及缓存的df/du,df/dv等数据

复杂度

时间:一次反向的计算量也是原函数的常数倍,与输入维度 n 无关。对于标量输出,全梯度只需 O(ops) 时间。

空间:必须存储前向所有中间变量,空间 O(ops)(正比于计算图节点数)。这是深度学习中“显存瓶颈”的根源。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐