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

概述

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

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

原因如下:

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)

相关推荐
logic_55 小时前
关于VIT为啥可以用卷积代替第一层嵌入层
人工智能·神经网络·cnn
西***63475 小时前
从被动响应到主动预判:矩阵技术重塑机场安全监控新生态
线性代数·矩阵
梯度下降中6 小时前
求职面试中的线代知识总结
人工智能·线性代数·算法·机器学习
We་ct7 小时前
LeetCode 289. 生命游戏:题解+优化,从基础到原地最优
前端·算法·leetcode·矩阵·typescript
aini_lovee8 小时前
基于粒子群算法(PSO)优化BP神经网络权值与阈值的实现
神经网络·算法
jllllyuz9 小时前
基于卷积神经网络(CNN)的图像融合方法详解
人工智能·神经网络·cnn
sushang~11 小时前
小学(4-6年级)苏教版数学知识点汇总详细版(自用)
数学
HyperAI超神经11 小时前
【TVM教程】设备/目标交互
人工智能·深度学习·神经网络·microsoft·机器学习·交互·gpu算力
fie888912 小时前
MATLAB中LASSO方法的特征矩阵优化与特征选择实现
开发语言·matlab·矩阵