矩阵求导常用公式解析:标量、向量与矩阵的导数计算

矩阵求导常用公式解析:标量、向量与矩阵的导数计算

矩阵求导是机器学习、优化理论中的重要数学工具。本文将系统推导标量对向量、向量对向量、标量对矩阵的求导公式,并解析分子布局与分母布局的核心差异。

矩阵求导的布局问题

1. 分子布局 vs 分母布局对比表

特性分子布局 (Numerator Layout)分母布局 (Denominator Layout)
导数维度 m × n m \times n m×n n × m n \times m n×m
元素排列规则 ∂ y i ∂ x j \frac{\partial y_i}{\partial x_j} xjyi ∂ y j ∂ x i \frac{\partial y_j}{\partial x_i} xiyj
线性变换示例 ∂ A x ∂ x = A \frac{\partial \mathbf{Ax}}{\partial \mathbf{x}} = \mathbf{A} xAx=A ∂ A x ∂ x = A T \frac{\partial \mathbf{Ax}}{\partial \mathbf{x}} = \mathbf{A}^T xAx=AT
链式法则顺序从左到右自然顺序需要转置调整顺序

2. 布局冲突的典型场景分析

场景:计算 ∂ z ∂ x \frac{\partial \mathbf{z}}{\partial \mathbf{x}} xz,其中 z = W x + b \mathbf{z} = \mathbf{W}\mathbf{x} + \mathbf{b} z=Wx+b

  • 分子布局
    ∂ z ∂ x = W ( 维度  m × n ) \frac{\partial \mathbf{z}}{\partial \mathbf{x}} = \mathbf{W} \quad (\text{维度 } m \times n) xz=W(维度 m×n)

  • 分母布局
    ∂ z ∂ x = W T ( 维度  n × m ) \frac{\partial \mathbf{z}}{\partial \mathbf{x}} = \mathbf{W}^T \quad (\text{维度 } n \times m) xz=WT(维度 n×m)

应用建议

  • 在反向传播算法中,分母布局更自然(梯度维度与参数维度一致)
  • 在理论推导中,分子布局更便于公式链式展开

3. 混合布局的兼容性处理

当不同文献使用不同布局时,可通过以下规则转换:
( ∂ y ∂ x ) Denominator = ( ∂ y ∂ x ) Numerator T \left( \frac{\partial \mathbf{y}}{\partial \mathbf{x}} \right)_{\text{Denominator}} = \left( \frac{\partial \mathbf{y}}{\partial \mathbf{x}} \right)_{\text{Numerator}}^T (xy)Denominator=(xy)NumeratorT


一、标量对向量求导

1. 线性函数求导

设向量 a = [ a 1 , a 2 , … , a n ] T \mathbf{a} = [a_1, a_2, \dots, a_n]^T a=[a1,a2,,an]T x = [ x 1 , x 2 , … , x n ] T \mathbf{x} = [x_1, x_2, \dots, x_n]^T x=[x1,x2,,xn]T,标量函数为:

y = a T x = ∑ i = 1 n a i x i y = \mathbf{a}^T \mathbf{x} = \sum_{i=1}^n a_i x_i y=aTx=i=1naixi

求导结果
梯度向量为系数向量本身:

∂ y ∂ x = [ a 1 a 2 ⋮ a n ] = a \frac{\partial y}{\partial \mathbf{x}} = \begin{bmatrix} a_1 \\ a_2 \\ \vdots \\ a_n \end{bmatrix} = \mathbf{a} xy= a1a2an =a


2. 二次型函数(对称矩阵)

设对称矩阵 A ∈ R n × n \mathbf{A} \in \mathbb{R}^{n \times n} ARn×n,标量函数:

y = x T A x = ∑ i = 1 n ∑ j = 1 n a i j x i x j y = \mathbf{x}^T \mathbf{A} \mathbf{x} = \sum_{i=1}^n \sum_{j=1}^n a_{ij} x_i x_j y=xTAx=i=1nj=1naijxixj

求导过程
对分量 x k x_k xk 求偏导:

∂ y ∂ x k = 2 ∑ i = 1 n a i k x i \frac{\partial y}{\partial x_k} = 2 \sum_{i=1}^n a_{ik} x_i xky=2i=1naikxi

梯度向量
∂ y ∂ x = 2 A x \frac{\partial y}{\partial \mathbf{x}} = 2 \mathbf{A} \mathbf{x} xy=2Ax


3. 二次型函数(非对称矩阵)

A \mathbf{A} A 非对称时,标量函数展开同上。对 x k x_k xk 求偏导:

∂ y ∂ x k = ( A x ) k + ( A T x ) k \frac{\partial y}{\partial x_k} = (\mathbf{A}\mathbf{x})_k + (\mathbf{A}^T \mathbf{x})_k xky=(Ax)k+(ATx)k

梯度向量
∂ y ∂ x = ( A + A T ) x \frac{\partial y}{\partial \mathbf{x}} = (\mathbf{A} + \mathbf{A}^T) \mathbf{x} xy=(A+AT)x


二、向量对向量求导(分子布局)

1. 线性变换的雅可比矩阵(详细推导)

y = A x + b \mathbf{y} = \mathbf{A}\mathbf{x} + \mathbf{b} y=Ax+b,其中:

  • A ∈ R m × n \mathbf{A} \in \mathbb{R}^{m \times n} ARm×n 为系数矩阵
  • x ∈ R n \mathbf{x} \in \mathbb{R}^n xRn 为输入向量
  • b ∈ R m \mathbf{b} \in \mathbb{R}^m bRm 为偏置向量

分量化表示
y i = ∑ j = 1 n a i j x j + b i ( i = 1 , 2 , … , m ) y_i = \sum_{j=1}^n a_{ij} x_j + b_i \quad (i=1,2,\dots,m) yi=j=1naijxj+bi(i=1,2,,m)

对分量求偏导
对每个 y i y_i yi 关于 x j x_j xj 求偏导:
∂ y i ∂ x j = a i j \frac{\partial y_i}{\partial x_j} = a_{ij} xjyi=aij

雅可比矩阵构造
将所有偏导数按如下规则排列:

  • 行索引对应输出分量 y i y_i yi
  • 列索引对应输入分量 x j x_j xj

∂ y ∂ x = [ ∂ y 1 ∂ x 1 ∂ y 1 ∂ x 2 ⋯ ∂ y 1 ∂ x n ∂ y 2 ∂ x 1 ∂ y 2 ∂ x 2 ⋯ ∂ y 2 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ y m ∂ x 1 ∂ y m ∂ x 2 ⋯ ∂ y m ∂ x n ] = A \frac{\partial \mathbf{y}}{\partial \mathbf{x}} = \begin{bmatrix} \frac{\partial y_1}{\partial x_1} & \frac{\partial y_1}{\partial x_2} & \cdots & \frac{\partial y_1}{\partial x_n} \\ \frac{\partial y_2}{\partial x_1} & \frac{\partial y_2}{\partial x_2} & \cdots & \frac{\partial y_2}{\partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial y_m}{\partial x_1} & \frac{\partial y_m}{\partial x_2} & \cdots & \frac{\partial y_m}{\partial x_n} \end{bmatrix} = \mathbf{A} xy= x1y1x1y2x1ymx2y1x2y2x2ymxny1xny2xnym =A


2. 一般向量函数的雅可比矩阵(补充关键说明)

对向量函数 y = f ( x ) = [ f 1 ( x ) , f 2 ( x ) , … , f m ( x ) ] T \mathbf{y} = \mathbf{f}(\mathbf{x}) = [f_1(\mathbf{x}), f_2(\mathbf{x}), \dots, f_m(\mathbf{x})]^T y=f(x)=[f1(x),f2(x),,fm(x)]T,其雅可比矩阵的构造规则为:

  • 每个元素 ∂ f i ∂ x j \frac{\partial f_i}{\partial x_j} xjfi 表示第 i i i 个输出对第 j j j 个输入的偏导
  • 行维度 m m m 由输出向量维度决定
  • 列维度 n n n 由输入向量维度决定

关键特性

  • f ( x ) \mathbf{f}(\mathbf{x}) f(x) 为线性函数(即 f ( x ) = A x \mathbf{f}(\mathbf{x}) = \mathbf{A}\mathbf{x} f(x)=Ax),雅可比矩阵退化为系数矩阵 A \mathbf{A} A
  • f ( x ) \mathbf{f}(\mathbf{x}) f(x) 为非线性函数(如神经网络激活函数),需逐元素计算偏导数

3. 链式法则的矩阵形式

设复合函数 z = g ( y ) = g ( f ( x ) ) \mathbf{z} = \mathbf{g}(\mathbf{y}) = \mathbf{g}(\mathbf{f}(\mathbf{x})) z=g(y)=g(f(x)),则链式法则的矩阵形式为:
∂ z ∂ x = ∂ z ∂ y ⋅ ∂ y ∂ x \frac{\partial \mathbf{z}}{\partial \mathbf{x}} = \frac{\partial \mathbf{z}}{\partial \mathbf{y}} \cdot \frac{\partial \mathbf{y}}{\partial \mathbf{x}} xz=yzxy
其中:

  • ∂ z ∂ y ∈ R p × m \frac{\partial \mathbf{z}}{\partial \mathbf{y}} \in \mathbb{R}^{p \times m} yzRp×m
  • ∂ y ∂ x ∈ R m × n \frac{\partial \mathbf{y}}{\partial \mathbf{x}} \in \mathbb{R}^{m \times n} xyRm×n
  • 最终结果维度为 p × n p \times n p×n


三、标量对矩阵求导

1. 标量函数 y = tr ( A ) y = \text{tr}(\mathbf{A}) y=tr(A) 对矩阵 A \mathbf{A} A 求导

  • 矩阵的迹
    tr ( A ) = ∑ i = 1 n a i i \text{tr}(\mathbf{A}) = \sum_{i=1}^n a_{ii} tr(A)=i=1naii

  • 对矩阵元素 a i j a_{ij} aij 求偏导

    • i ≠ j i \neq j i=j 时,
      ∂ y ∂ a i j = 0 \frac{\partial y}{\partial a_{ij}} = 0 aijy=0
    • i = j i = j i=j 时,
      ∂ y ∂ a i i = 1 \frac{\partial y}{\partial a_{ii}} = 1 aiiy=1
  • 梯度矩阵
    ∂ y ∂ A = I \frac{\partial y}{\partial \mathbf{A}} = \mathbf{I} Ay=I
    (其中 I \mathbf{I} I 是与 A \mathbf{A} A 同维度的单位矩阵)


2. 标量函数 y = tr ( A B ) y = \text{tr}(\mathbf{A} \mathbf{B}) y=tr(AB) 对矩阵 A \mathbf{A} A 求导(假设 A \mathbf{A} A B \mathbf{B} B 可相乘)

  • 迹的性质
    tr ( A B ) = tr ( B A ) ( 若维度合适 ) \text{tr}(\mathbf{A} \mathbf{B}) = \text{tr}(\mathbf{B} \mathbf{A}) \quad (\text{若维度合适}) tr(AB)=tr(BA)(若维度合适)

  • 展开形式
    A \mathbf{A} A m × n m \times n m×n 矩阵, B \mathbf{B} B n × m n \times m n×m 矩阵,则
    y = ∑ i = 1 m ∑ j = 1 n a i j b j i y = \sum_{i=1}^m \sum_{j=1}^n a_{ij} b_{ji} y=i=1mj=1naijbji

  • a k l a_{kl} akl 求偏导
    ∂ y ∂ a k l = b l k \frac{\partial y}{\partial a_{kl}} = b_{lk} akly=blk

  • 梯度矩阵
    ∂ y ∂ A = B T \frac{\partial y}{\partial \mathbf{A}} = \mathbf{B}^T Ay=BT


3. 标量函数 y = x T A x y = \mathbf{x}^T \mathbf{A} \mathbf{x} y=xTAx 对矩阵 A \mathbf{A} A 求导( x \mathbf{x} x 为向量)

  • 展开形式
    y = ∑ i = 1 n ∑ j = 1 n a i j x i x j y = \sum_{i=1}^n \sum_{j=1}^n a_{ij} x_i x_j y=i=1nj=1naijxixj

  • a k l a_{kl} akl 求偏导
    ∂ y ∂ a k l = x k x l \frac{\partial y}{\partial a_{kl}} = x_k x_l akly=xkxl

  • 梯度矩阵
    ∂ y ∂ A = x x T \frac{\partial y}{\partial \mathbf{A}} = \mathbf{x} \mathbf{x}^T Ay=xxT


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值