矩阵理论(三)向量矩阵的求导

在各类机器学习和深度学习算法的推导过程中,尤其是通过损失函数求解参数最优解过程中,经常用到向量矩阵的求导。从本质上讲,向量矩阵求导就是将多元标量函数求导按照一定的布局排列为向量或矩阵。

按照求导中自变量和因变量的关系,标量、向量、矩阵可排列组合为9种组合(见下表)。本文仅涉及标量与向量和矩阵,向量与向量的五种求导。而矩阵和向量间的混合求导不做涉及。

自变量/因变量标量y向量?矩阵?
标量?∂?/∂?∂?/∂?∂?/∂?
向量?∂?/∂?∂?/∂?∂?/∂?
矩阵?∂?/∂?∂?/∂?∂?/∂?
一、求导布局

对向量矩阵求导结果进行布局的统一。常见有的分子布局和分母布局两种,两者之间互为转置:

分子布局:求导结果维度主要参考分子。

分母布局:求导结果维度主要参考分母。

若分母或分子维度无法确定,则取分子或分母分布的转置,如列向量与标量求导,结果按分母布局,应为行向量

向量和向量导数的布局定义:m维列向量?对n维列向量?求导,分子布局,则矩阵的第一个维度以分子为准( m × n m\times n m×n),常称为雅可比矩阵;分母布局,则矩阵的第一个维度以分母为准( n × m n\times m n×m),常称为梯度矩阵。

混合布局:一种默认的分子或分布布局。标量对向量或矩阵求导,按照分母布局;向量或矩阵对标量求导,按照分子布局;向量对向量求导,以雅可比矩阵(即分子布局)为主。

在看推导过程中经常出现 A A A A T A^T AT的表达,只是布局方式不一样。

二、定义法直接求解

即展开成多元函数对某个变量的求导,然后写成向量的形式。

三、标量对向量求导的基本法则

(1)常量对向量的求导结果为0。
(2)线性法则:如果?,?都是实值函数, c 1 c_1 c1, c 2 c_2 c2为常数,则:
在这里插入图片描述
(3)乘法法则,如果?,?都是实值函数(注意,这点必须满足),则:
在这里插入图片描述
(4)除法法则,如果?,?都是实值函数,且?(?)≠0,则:
在这里插入图片描述

四、微分法求导

微分法特别适用于矩阵?经加减乘法、逆、行列式、逐元素函数等运算构成的标量函数?的求导。其基本步骤为:

(1)使用相应的运算法则对?求微分;

(2)微分等式两边取迹tr,并对等式右边项进行变换,使??位于迹内最右侧

(3)对??左侧项取转置,即为所求导数

4.1 矩阵迹的基本属性

1) ∑ i ∑ j A i j B i j = t r ( A T B ) \sum\limits_i\sum\limits_j\boldsymbol A_{ij}\boldsymbol B_{ij}=tr(\boldsymbol {A^TB}) ijAijBij=tr(ATB)

2)标量的迹等于其子集 t r ( x ) = x tr(x)=x tr(x)=x

3)矩阵转置迹不变 t r ( A ) = t r ( A T ) tr(\boldsymbol A)=tr(\boldsymbol A^T) tr(A)=tr(AT)

4)转置同维矩阵 ( A , B T ) (\boldsymbol A,\boldsymbol B^T) (ABT)的交换率: t r ( A B ) = t r ( B A ) tr(\boldsymbol A\boldsymbol B)=tr(\boldsymbol B\boldsymbol A) tr(AB)=tr(BA)

5)同维矩阵的加减法: t r ( A ± B ) = t r ( A ) ± t r ( B ) tr(\boldsymbol A\pm\boldsymbol B)=tr(\boldsymbol A)\pm tr(\boldsymbol B) tr(A±B)=tr(A)±tr(B)

6)同维三个矩阵的乘法和迹交换: t r ( ( A ⊙ B ) T C ) tr((\boldsymbol A\odot\boldsymbol B)^T\boldsymbol C) tr((AB)TC)= t r ( A T ( B ⊙ C ) ) tr(\boldsymbol A^T(\boldsymbol B\odot\boldsymbol C)) tr(AT(BC))

式中 ⊙ \odot 为哈达马乘积,即逐元素乘积。

7)迹函数求导: ∂ t r ( A B ) ∂ A = B T \frac{\partial tr(\boldsymbol{AB})}{\partial \boldsymbol A}=\boldsymbol B^T Atr(AB)=BT ∂ t r ( A B ) ∂ B = A T \frac{\partial tr(\boldsymbol{AB})}{\partial \boldsymbol B}=\boldsymbol A^T Btr(AB)=AT
可由 d ( t r ( A B ) ) = t r ( d A B ) = t r ( A d B ) + t r ( B d A ) d(tr(\boldsymbol{AB}))=tr(d\boldsymbol{AB})=tr(\boldsymbol Ad\boldsymbol B)+tr(\boldsymbol Bd\boldsymbol A) d(tr(AB))=tr(dAB)=tr(AdB)+tr(BdA)推导得到

4.2 向量矩阵微分的写法

向量微分:在这里插入图片描述
矩阵微分:
在这里插入图片描述
可见,标量函数对向量或矩阵的求导可转换为:微分取迹后迹内自变量前系数项的转置

4.3 矩阵微分的性质

微分加减法: d ( X ± Y ) = d X ± d Y d(\boldsymbol X\pm\boldsymbol Y)=d\boldsymbol X\pm d\boldsymbol Y d(X±Y)=dX±dY

微分乘法: d ( X Y ) = X d Y + Y d X d(\boldsymbol{XY})=\boldsymbol Xd\boldsymbol Y+\boldsymbol Yd\boldsymbol X d(XY)=XdY+YdX

微分转置: d ( X T ) = ( d X ) T d(\boldsymbol X^T)=(d\boldsymbol X)^T d(XT)=(dX)T

微分的迹: d ( t r X ) = t r ( d X ) d(tr\boldsymbol X)=tr(d\boldsymbol X) d(trX)=tr(dX)

微分哈达马乘积: d ( X ⊙ Y ) = X ⊙ d Y + Y ⊙ d X d(\boldsymbol X\odot\boldsymbol Y)=\boldsymbol X\odot d\boldsymbol Y+\boldsymbol Y \odot d\boldsymbol X d(XY)=XdY+YdX

逐元素求导: d σ ( X ) = σ ′ ( X ) d X d\sigma(\boldsymbol X)=\sigma'(\boldsymbol X)d\boldsymbol X dσ(X)=σ(X)dX

逆矩阵微分: d X − 1 = − X − 1 d X X − 1 d\boldsymbol X^{-1}=-\boldsymbol X^{-1}\boldsymbol dX\boldsymbol X^{-1} dX1=X1dXX1

行列式微分: d ∣ X ∣ = ∣ X ∣ t r ( X − 1 d X ) d|\boldsymbol X|=|\boldsymbol X|tr(\boldsymbol X^{-1}d\boldsymbol X) dX=Xtr(X1dX)

五、链式求导法则

链式求导法则可用于向量对向量、标量对向量的求导等场景

5.1 向量对向量求导的链式法则

对于向量间关系,?→?→?,其链式求导表达式可以表示为:

∂?/∂?=∂?/∂?*∂?/∂?

5.2 标量对多个向量恩链式法则

对于向量到标量的关系, y 1 \boldsymbol y_1 y1 y 2 \boldsymbol y_2 y2→…→ y n \boldsymbol y_n yn→?,则其链式求导表达式可以表示为:
在这里插入图片描述

5.3 标量对多个矩阵的链式求导法则

对于矩阵到标量的关系,X→Y→…z,其链式求导表达式可以表示为:

∂ z ∂ X i j = ∑ k , l ∂ z ∂ Y k l ∂ Y k l ∂ X i j = t r ( ( ∂ z ∂ Y ) T ∂ Y ∂ X i j ) \frac{\partial z}{\partial \boldsymbol X_{ij}}=\sum\limits_{k,l}\frac{\partial z}{\partial \boldsymbol Y_{kl}}\frac{\partial \boldsymbol Y_{kl}}{\partial \boldsymbol X_{ij}}=tr((\frac{\partial z}{\partial \boldsymbol Y})^T\frac{\partial \boldsymbol Y}{\partial \boldsymbol X_{ij}}) Xijz=k,lYklzXijYkl=tr((Yz)TXijY)

若矩阵间为线性关系,则改链式求导表达式可进一步表示。
在这里插入图片描述

参考资料

刘建平 向量矩阵求导 系列文章

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值