[线性代数]矩阵/向量求导为什么要区别分子布局和分母布局

概述

不同的应用领域,对"导数"用途的侧重点完全不同。

这就像在世界上有的国家靠左行驶,有的靠右行驶。两者没有绝对的对错,只是为了适应不同的交通(运算)需求。

原因如下:

1. 用途不同:"更新参数" 和 "线性映射"

这是造成分裂的最主要原因。

A. 优化与机器学习派(偏爱分母布局)
  • 目标: 我们求导的目的是为了利用梯度下降法(Gradient Descent)来更新参数。

  • 痛点: 假设你的神经网络权值矩阵 是一个 的矩阵。计算出损失 后,你需要更新 :

  • 需求: 为了能做减法,导数 的形状必须和 完全一样(也是 )。

  • 结论: 既然我要形状一样,那就强制规定:分母是什么形状,结果就是什么形状。这就是分母布局。如果不这样规定,每次更新参数前你都要手动转置一次,非常麻烦。

B. 纯数学与控制理论派(偏爱分子布局)
  • 目标: 我们求导的目的是为了研究函数局部的线性逼近(Taylor 展开)或者变量之间的变换关系。

  • 痛点: 考虑向量函数 。微分的核心思想是用矩阵乘法来模拟函数变化:

  • 需求: 根据矩阵乘法规则,如果 是 , 是 ,为了让乘法 成立,中间的导数矩阵 必须是 的。

  • 结论: 这种 的形式(行数等于分子维度,列数等于分母维度)就是雅可比矩阵(Jacobian) ,即分子布局。如果你用分母布局,这里的公式就要写成 ,数学家觉得这很不优雅。


2. 链式法则(Chain Rule)的顺滑度

当处理复合函数(层层嵌套)求导时,两种布局在书写公式时的体验完全不同。

  • 分子布局的优势:
    它让链式法则看起来和标量求导几乎一样,非常符合直觉。
    若 ,则:

(矩阵乘法直接相连,中间不需要转置,形式优美)。

  • 分母布局的劣势:
    由于维度的定义翻转了,链式法则通常需要颠倒顺序或者加转置符号:

这就造成了一个有趣的现象:

在推导复杂的数学理论时(如推导反向传播的公式本身),学者们可能倾向于用分子布局 (或混合布局)来保证推导过程的连贯性;但在编写代码库(如 PyTorch, TensorFlow)时,为了工程实现的便利,结果会强制转为分母布局


3. 行向量与列向量的历史遗留问题

这涉及到更底层的数学定义习惯。

  • 如果习惯把数据看作列向量(Column Vector,工程界主流),那么 对 求导最自然,产生雅可比矩阵(分子布局)。
  • 如果习惯把数据看作行向量(Row Vector,部分统计学和早期教材),那么 直接就在分母位置横着放,导数形式自然就变成了分母布局。

由于历史上不同学派的大师(如 Magnus & Neudecker vs. 其它学派)使用了不同的向量定义,导致后世教材一直没能统一。


总结

通过dydx=A⇒dy=Adx\frac{dy}{dx}=A \Rightarrow dy=A dxdxdy=A⇒dy=Adx判断

如果A的形状符合线代的数据习惯,那就是分子布局;如果是转置,那就是分母布局

通常来说,如果在做深度学习 ,默认分母布局 ,因为我们要的是梯度(Gradient)。如果在做纯数学推导或控制理论 ,默认分子布局,因为我们要的是雅可比矩阵(Jacobian)

相关推荐
如竟没有火炬8 小时前
最大矩阵——单调栈
数据结构·python·线性代数·算法·leetcode·矩阵
书中玉10 小时前
2026高考一卷数学最后一问19题详细解答(含思路)
数学·考试·高考·2026年·最后一题·压轴题
aichitang202412 小时前
群论中“字”的概念
数学·抽象代数
chlorine513 小时前
【神经网络】——卷积层、池化层、线性层
深度学习·神经网络·cnn
qingyulee16 小时前
卷积神经网络基础
人工智能·神经网络·cnn
装不满的克莱因瓶17 小时前
深入PyTorch模型的训练与可视化 —— 掌握迁移学习等模型训练效果提升的办法
人工智能·pytorch·python·深度学习·神经网络·ai·迁移学习
Wenzar_17 小时前
用 JAX 构建可微分光子神经网络仿真器
java·人工智能·深度学习·神经网络
书生的梦17 小时前
《神经网络与深度学习》学习笔记(四)
深度学习·神经网络·学习
宝贝儿好18 小时前
【NLP】第七章:项目实操案例:智能输入法项目
人工智能·深度学习·神经网络·自然语言处理
闻缺陷则喜何志丹20 小时前
【解析几何丘维声 第一章】向量代数第一部分
数学·向量·解析几何·点乘·叉乘·混合积·二重叉乘