当前位置: 首页 > news >正文

矩阵微积分的链式法则(chain rule)

矩阵微积分的链式法则(chain rule)与标量情况一样,用于求复合函数的导数,但由于涉及矩阵和向量的求导,维度匹配和布局约定(numerator-layout vs. denominator-layout)必须格外小心。下面给出常见的三种场景,并分别给出链式法则的显式表达。


  1. 标量对矩阵的链式法则
  • 标量函数 (L) 依赖于矩阵变量 (Y \in \mathbb{R}^{m\times n});
  • 而 (Y) 又是矩阵变量 (X \in \mathbb{R}^{p\times q}) 的函数:(Y = F(X))。

[
\frac{\partial L}{\partial X_{ij}} = \sum_{k=1}{m}\sum_{l=1}{n} \frac{\partial L}{\partial Y_{kl}}\frac{\partial Y_{kl}}{\partial X_{ij}}.
]

写成“向量化”形式(vec 算子按列堆叠):

[
\frac{\partial L}{\partial \operatorname{vec}(X)} = \left(\frac{\partial \operatorname{vec}(Y)}{\partial \operatorname{vec}(X)}\right)^\top \frac{\partial L}{\partial \operatorname{vec}(Y)}.
]

注意:

  • 分子布局(numerator layout)下,(\frac{\partial \operatorname{vec}(Y)}{\partial \operatorname{vec}(X)}) 是 ((mn)\times(pq)) 的 Jacobian;
  • 转置的出现取决于你采用的布局约定,务必维度匹配。

  1. 向量对向量的链式法则
  • 向量函数 (z \in \mathbb{R}^{r}) 依赖于向量 (y \in \mathbb{R}^{m});
  • 而 (y) 又依赖于向量 (x \in \mathbb{R}^{n}):(y = f(x))。

[
\frac{\partial z}{\partial x^\top} = \frac{\partial z}{\partial y^\top} \frac{\partial y}{\partial x^\top},
]

其中

  • (\frac{\partial z}{\partial y^\top}) 是 (r \times m);
  • (\frac{\partial y}{\partial x^\top}) 是 (m \times n);
  • 乘积给出 (r \times n) 的 Jacobian (\frac{\partial z}{\partial x^\top})。

若用分母布局(denominator layout),则写作

[
\frac{\partial z}{\partial x} = \left(\frac{\partial y}{\partial x}\right)^\top \frac{\partial z}{\partial y}.
]


  1. 矩阵对矩阵的“完全链式法则”
    当外层函数本身也是矩阵值,且内层函数也是矩阵值时,最保险的做法是向量化:

  • (Z = G(Y)) 且 (Y = F(X)),
    其中 (X \in \mathbb{R}^{p\times q}),(Y \in \mathbb{R}^{m\times n}),(Z \in \mathbb{R}^{r\times s})。

[
\frac{\partial \operatorname{vec}(Z)}{\partial \operatorname{vec}(X)} = \frac{\partial \operatorname{vec}(Z)}{\partial \operatorname{vec}(Y)} \frac{\partial \operatorname{vec}(Y)}{\partial \operatorname{vec}(X)}.
]

  • 左侧是 ((rs)\times(pq)) 的 Jacobian;
  • 右侧两个因子分别是 ((rs)\times(mn)) 与 ((mn)\times(pq)),维度恰好可乘。

记忆技巧
“维度从左到右连乘”:

  • 若使用分子布局,链式法则的 Jacobian 顺序与函数复合顺序相同(类比标量链式法则)。
  • 若使用分母布局,需要转置中间 Jacobian。
    无论哪种约定,务必先固定一种,再检查维度是否匹配。

小例子

  • (L = \tfrac{1}{2}|Y|_F^2),
  • (Y = AXB),(A,B) 为常数矩阵,

    [
    \frac{\partial L}{\partial X} = A^\top Y B^\top,
    ]
    可直接用上述链式法则验证:
  • (\frac{\partial L}{\partial Y} = Y),
  • (\frac{\partial \operatorname{vec}(Y)}{\partial \operatorname{vec}(X)} = B^\top \otimes A),
  • 于是
    [
    \operatorname{vec}!\left(\frac{\partial L}{\partial X}\right) = (B \otimes A^\top)\operatorname{vec}(Y) = \operatorname{vec}(A^\top Y B^\top).
    ]

注: AI写的,请大家审阅!

http://www.dtcms.com/a/350981.html

相关文章:

  • 一步一步在Kubernetes集群部署NVIDIA KAI Scheduler
  • 数据挖掘 7.1~7.4 Clustering聚类
  • Spark云原生流处理实战与风控应用
  • 【贪心】11 盛最多水的容器(双指针解法)
  • 解决Windows更新后WPF程序报TypeLoadException异常的问题
  • 论文Review 激光3DGS GS-SDF | IROS2025 港大-MARS!| 激光+3DGS+NeRF会得到更好的几何一致性和渲染结果!?
  • OceanStor Pacific 9926全闪分布式存储,海量数据大容量场景的救星来咯[特殊字符]!
  • 列表里的对象,按对象的某个属性值排序
  • 如何利用ArcGIS探究环境与生态因子对水体、土壤、大气污染物等影响实践技术
  • 深入了解linux系统—— 线程互斥
  • 软件开发|Shiro框架以及集成Spring Boot
  • AI算力提升7.5倍!英伟达发布新一代机器人超级计算机Jetson Thor,驱动物理AI革命
  • SMOTE过采样实现过程详解
  • 论文阅读 2025-8-26 一些半监督学习的工作
  • JVM-(11)JVM-定位OOM问题
  • 论文学习日志——忆阻器与神经网络——part1
  • Python大型数组计算完全指南:从基础到分布式系统实践
  • Zookeeper(分布式RPC调用和分布式文件储存)
  • [小练习]100行不到使用Java Socket网络编程实现定向聊天
  • 从双重检查锁定的设计意图、锁的作用、第一次检查提升性能的原理三个角度,详细拆解单例模式的逻辑
  • 基于SpringBoot的网上点餐系统
  • OpenTenBase核心技术解密:突破OLTP与OLAP边界的分布式数据库革新
  • Flask模块如何使用
  • 浅谈技术顾问的转型困境
  • Web前端开发基础
  • windows 下 使用C++ 集成 zenoh
  • ArcGIS学习-9 ArcGIS查询操作
  • vLLM轻松通
  • ArcGIS学习-10 空间连接和矢量分析
  • 百度IOS客户端岗位--面试真题分析