矩阵微积分的链式法则(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写的,请大家审阅!

相关推荐
春末的南方城市1 小时前
清华&字节开源HuMo: 打造多模态可控的人物视频,输入文字、图片、音频,生成电影级的视频,Demo、代码、模型、数据全开源。
人工智能·深度学习·机器学习·计算机视觉·aigc
%KT%2 小时前
旋转矩阵的推导+矩阵在3DGS中的应用
线性代数·矩阵·3dgs
深栈3 小时前
机器学习:决策树
人工智能·python·决策树·机器学习·sklearn
MYX_3094 小时前
第二章 预备知识(线性代数)
python·线性代数·机器学习
Rock_yzh9 小时前
AI学习日记——参数的初始化
人工智能·python·深度学习·学习·机器学习
Learn Beyond Limits12 小时前
Mean Normalization|均值归一化
人工智能·神经网络·算法·机器学习·均值算法·ai·吴恩达
ACERT33313 小时前
5.吴恩达机器学习—神经网络的基本使用
人工智能·python·神经网络·机器学习
Aaplloo13 小时前
【无标题】
人工智能·算法·机器学习
可触的未来,发芽的智生14 小时前
触摸未来2025.10.06:声之密语从生理构造到神经网络的声音智能革命
人工智能·python·神经网络·机器学习·架构
我是Feri15 小时前
机器学习之线性回归的特征相关性:避免“双胞胎特征“干扰模型
人工智能·机器学习