动手学深度学习——矩阵求导之矩阵的迹和微分

动手学深度学习——矩阵求导之矩阵的迹和微分文章主要介绍了矩阵迹的性质 并将矩阵微分引入到矩阵求导中

大家好,欢迎来到IT知识分享网。

目录

一、矩阵的迹

1. 迹的定义

2. 迹的性质

二、微分与全微分

1. (全)微分的表达式

2. (全)微分的法则

三、 矩阵的微分

1. 矩阵微分的实质

2. 矩阵微分的意义

3. 矩阵微分的法则

4. 矩阵微分的常用公式

四、矩阵求导实例

1. 迹在微分中的应用

2. 利用微分求导


本篇博客总结自知乎文章:矩阵求导公式的数学推导(矩阵求导——进阶篇),需要详细推导过程可以查看原文学习。

文章主要介绍了矩阵迹的性质,并将矩阵微分引入到矩阵求导中。虽然在法则和公式中涉及到了矩阵变元的实矩阵函数,但是并不介绍如何求导实矩阵函数,只介绍矩阵变元的实值标量函数利用微分求导的过程(实矩阵函数的求导过程远比实值标量函数的求导过程复杂)。

一、矩阵的迹

1. 迹的定义

对于一个 n \times n方阵 \pmb A_{n\times n}

动手学深度学习——矩阵求导之矩阵的迹和微分

它的主对角线元素之和就叫做矩阵 \pmb A迹(trace),记作:

动手学深度学习——矩阵求导之矩阵的迹和微分

2. 迹的性质

2.1 标量的迹

因为标量可以视为 \large 1\times 1 的矩阵,所以对于一个标量 \large a ,它的迹等于它本身

\large a\textrm{=tr(}a)

2.2 转置的迹

因为转置并不改变主对角线元素位置,所以对于一个矩阵 \large A 的转置 \large A^{T} ,它的迹与原矩阵相等

\large \mathrm{tr}(\pmb A)=\mathrm{tr}(\pmb A^{T})

2.3 乘积的迹

矩阵 \large \large \pmb A\in R^{m\times n} 与矩阵 \large \pmb B^{T}\in R^{n\times m} 的乘积的迹,等于两个矩阵对应位置的元素相乘再相加,类似于向量内积的延伸:

动手学深度学习——矩阵求导之矩阵的迹和微分

2.4 迹的交换律

由上一性质可知,在两矩阵交换位置后,乘积的迹不会受到影响,仍然是对应位置元素相乘再相加,即满足交换律

\large \mathrm{tr(\pmb A\pmb B}^{T})=\mathrm{tr(\pmb B}^{T}\pmb A)

对于多个矩阵相乘,可以将其中一部分矩阵视为整体,然后使用交换律:

\large \mathrm{\pmb A_{m\times n} ,\pmb B_{n\times p},\pmb C_{p\times m}} 

\large \mathrm{tr(\pmb {ABC})=tr(\pmb C(\pmb {AB}))=tr((\pmb {BC})\pmb A)}

不仅如此,迹的矩阵交换不变性还可以和迹的矩阵转置不变性结合,得到如下转换过程:

\large \mathrm{\pmb A\in R^{m\times n},\pmb B^{\mathit{T}}\in R^{n\times m}}

\large \mathrm{tr(\pmb A\pmb B^{\mathit{T}})=tr(\pmb B^{\mathit{T}}\pmb A)=tr(\pmb A^{\mathit{T}}\pmb B)=tr(\pmb B\pmb A^{\mathit{T}})}

2.5 迹的线性法则

矩阵先相加再求迹,等于先求迹再相加:

\large \mathrm{tr(\pmb A+\pmb B)=\sum_{i=1}^{n} (a_{ii}+b_{ii})=\sum_{i=1}^{n} a_{ii}+\sum_{i=1}^{n}b_{ii}=tr(\pmb A)+tr(\pmb B)}

二、微分与全微分

1. (全)微分的表达式

高等数学中的一元函数的微分表达式多元函数全微分表达式如下:

函数类型

参数说明 表达式

普通一元函数

\large y=f(x) \large \mathrm{d}y=\mathrm{d}f(x)=f'(x)\mathrm{d}x

复合一元函数

\large y=f(u) \large \mathrm{d}y=\mathrm{d}f(u)=f'(u)\mathrm{d}u=f'(u)\mathrm{d}g(x)=f'(u)g'(x)\mathrm{d}x
\large u=f(x)

普通多元函数

\large z=f(x,y) \large \mathrm{d}z=\mathrm{d}f(x,y)=\frac{\partial z}{\partial x}\mathrm{d}x+\frac{\partial z}{\partial y}\mathrm{d}y

复合多元函数

\large z=f(u)

\large \mathrm{d}z=\mathrm{d}f(u)=f'(u)\mathrm{d}u=f'(u)(\frac{\partial u}{\partial x}\mathrm{d}x+\frac{\partial u}{\partial y}\mathrm{d}y)

\large =f'(u)\frac{\partial u}{\partial x}\mathrm{d}x+f'(u)\frac{\partial u}{\partial y}\mathrm{d}y

\large u=f(x,y)

2. (全)微分的法则

无论是一元函数的微分还是多元函数的全微分,都遵循以下四个法则

法则 参数说明 表达式
常数的微分 \large c为常数 \large \mathrm{d}c=0
\large \mathrm{d}(cx)=c\ \mathrm{d}x
线性(加减)法则 \large u=u(x),v=v(x) \large \mathrm{d}(u\pm v)=\mathrm{d}u\pm \mathrm{d}v
\large u=u(x,y),v=v(x,y)
乘积法则 \large u=u(x),v=v(x) \large \large \mathrm{d}(uv)=v\mathrm{d}(u)+u\mathrm{d}(v)
\large u=u(x,y),v=v(x,y)
商法则 \large \large u=u(x),v=v(x)\neq 0 \large \mathrm{d}(\frac{u}{v})=\frac{1}{v^2}(v\mathrm{d}(u)-u\mathrm{d}(v))

\large u=u(x,y),v=v(x,y)\neq 0

三、 矩阵的微分

1. 矩阵微分的实质

对于一个矩阵变元实矩阵函数,其内部的每一个元素就是一个矩阵变元实值标量函数

\large \pmb F(\pmb X)\in R^{p\times q} \large \pmb F_{p\times q}(\pmb X)=[f_{ij}(\pmb X)]^{p,q}_{i=1,j=1} \large \pmb X_{m\times n}=(x_{ij})^{m,n}_{i=1,j=1}
动手学深度学习——矩阵求导之矩阵的迹和微分
对其求微分就是对每个位置上的元素求全微分,排列布局不变
动手学深度学习——矩阵求导之矩阵的迹和微分

2. 矩阵微分的意义

矩阵变元实值标量函数,其全微分可以转化为如下迹的形式

动手学深度学习——矩阵求导之矩阵的迹和微分

  • 其中左边的矩阵就是对 f(\pmb X) 的分子布局形式求导:

动手学深度学习——矩阵求导之矩阵的迹和微分

  • 而右边的矩阵就是 \pmb X_{m\times n} 的全微分

动手学深度学习——矩阵求导之矩阵的迹和微分

所以矩阵变元的实值标量函数的全微分可以表示为:

动手学深度学习——矩阵求导之矩阵的迹和微分

3. 矩阵微分的法则

因此,我们想要求解一个矩阵变元的实值标量函数的导数,我们只需要把该函数转化成上面的形式。而转化的过程可以通过下面矩阵微分的四个法则实现:

法则 参数说明 表达式
常数矩阵的微分 常数矩阵 \large \pmb A  \large \mathrm{d}\pmb A_{m\times n}=\mathbf{\pmb 0}_{m\times n}
线性法则 常数 \large c_{1},c_{2} \large \mathrm{d}(c_{1}\pmb F(\pmb X)+c_{2}\pmb G(\pmb X))=c_{1}\mathrm{d}\pmb F(\pmb X)+c_{2}\mathrm{d}\pmb G(\pmb X)
乘积法则 \large \pmb F_{p\times q}(\pmb X) \large \mathrm{d}(\pmb F(\pmb X)\pmb G(\pmb X))=\mathrm{d}(\pmb F(\pmb X))\pmb G(\pmb X)+\pmb F(\pmb X)\mathrm{d}(\pmb G(\pmb X))
\large \pmb G_{q\times s}(\pmb X)
转置法则 \large \pmb F_{p\times q}(\pmb X) \large \mathrm{d}\pmb F^{T}_{p\times q}(\pmb X)=(\mathrm{d}\pmb F_{p\times q}(\pmb X))^{T}

4. 矩阵微分的常用公式

对于转化过程中经常出现的矩阵形式,我们可以记住下面三类常用公式来简化推导步骤,这些公式也是由矩阵的微分四法则结合矩阵的迹的性质得来:

公式名称 参数说明 表达式
夹饼层 常数矩阵 \large \pmb A_{p\times m},\pmb B_{n\times q}  \large \mathrm{d}(\pmb{AXB})=\pmb A\mathrm{d}(\pmb X)\pmb B
将 \large \pmb X_{m\times n} 替换为矩阵函数  \large \mathrm{d}(\pmb A\pmb F(\pmb X)\pmb B)=\pmb A\mathrm{d}(\pmb F(\pmb X))\pmb B
行列式 \large \pmb X_{n\times n} \large {\color{Red} \mathrm{d}\left | \pmb X \right |}=\mathrm{tr}(\left | \pmb X \right |\pmb X^{-1})\mathrm{d}\pmb X={\color{Red} \left | \pmb X \right |\mathrm{tr}(\pmb X^{-1})\mathrm{d}\pmb X}
将 \large \pmb X_{n\times n} 替换为矩阵函数

\large {\color{Red} \mathrm{d}\left | \pmb F(\pmb X) \right |}=\mathrm{tr}(\left | \pmb F(\pmb X) \right | \pmb F(\pmb X)^{-1})\mathrm{d}\pmb F(\pmb X)

\large ={\color{Red} \left |\pmb F(\pmb X) \right |\mathrm{tr}(\pmb F(\pmb X)^{-1})\mathrm{d}\pmb F(\pmb X)}

逆矩阵 \large \pmb X_{n\times n} \large \mathrm{d}(\pmb X^{-1})=-\pmb X^{-1}\mathrm{d}(\pmb X)\pmb X^{-1}

将 \large \pmb X_{n\times n} 替换为矩阵函数

\large \mathrm{d}( \pmb F(\pmb X)^{-1})=- \pmb F(\pmb X)^{-1}\mathrm{d}( \pmb F(\pmb X) ) \pmb F(\pmb X)^{-1}

四、矩阵求导实例

1. 迹在微分中的应用

实值标量函数 \large f(\pmb X) ,由于它的结果是标量,所以有:

\large \mathrm{tr}(f(\pmb X))=f(\pmb X)

上式结合微分的线性法则(相加再微分=微分再相加):

\large {\color{Red} \mathrm{d}f(\pmb X)}=\mathrm{d}(\mathrm{tr}f(\pmb X))={\color{Red} \mathrm{tr}(\mathrm{d}f(\pmb X))}

若把实值标量函数 \large f(\pmb X) 视为实矩阵函数 \large \pmb F(\pmb X) 的

\large f(\pmb X)=\mathrm{tr}(\pmb F_{p\times p}(\pmb X))

 则有:

\large {\color{Red} \mathrm{d}(\mathrm{tr}\pmb F_{p\times p}(\pmb X))}=\mathrm{d}(\sum_{i=1}^{p}f_{ii}(\pmb X))=\sum_{i=1}^{p}\mathrm{d}(f_{ii}(\pmb X))={\color{Red} \mathrm{tr}(\mathrm{d}\pmb F_{p\times p}(\pmb X))}

2. 利用微分求导

举例说明如何利用矩阵微分,推导出矩阵求导的表达式:

\large \frac{\partial (\pmb a^{T}\pmb X\pmb X^{T}\pmb b)}{\partial \pmb X}=\pmb a\pmb b^{T}\pmb X+\pmb b\pmb a^{T}\pmb X

结合矩阵的迹的性质矩阵微分的四个法则六个常用公式,推导过程如下:

迹在微分的应用 \large \mathrm{d}f(\pmb X)=\mathrm{d}(\mathrm{tr}f(\pmb X))=\mathrm{tr}(\mathrm{d}f(\pmb X))
\large \mathrm{d}(\pmb a^{T}\pmb X\pmb X^{T}\pmb b)=\mathrm{tr}(\mathrm{d}(\pmb a^{T}\pmb X\pmb X^{T}\pmb b))
夹饼层公式 \large \mathrm{d}(\pmb{AXB})=\pmb A\mathrm{d}(\pmb X)\pmb B
\large \mathrm{tr}(\mathrm{d}(\pmb a^{T}\pmb X\pmb X^{T}\pmb b))=\mathrm{tr}(\pmb a^{T}\mathrm{d}(\pmb X\pmb X^{T})\pmb b)
微分乘积法则 \large \mathrm{d}(\pmb F(\pmb X)\pmb G(\pmb X))=\mathrm{d}(\pmb F(\pmb X))\pmb G(\pmb X)+\pmb F(\pmb X)\mathrm{d}(\pmb G(\pmb X))
\large \mathrm{tr}(\pmb a^{T}\mathrm{d}(\pmb X\pmb X^{T})\pmb b)=\mathrm{tr}(\pmb a^{T}(\ \mathrm{d}(\pmb X)\pmb X^{T} +\pmb X\mathrm{d}(\pmb X^{T})\ )\pmb b)
迹的线性法则 \large \large \mathrm{tr(\pmb A+\pmb B)=tr(\pmb A)+tr(\pmb B)}
\large \mathrm{tr}(\pmb a^{T}(\ \mathrm{d}(\pmb X)\pmb X^{T} +\pmb X\mathrm{d}(\pmb X^{T})\ )\pmb b)=\mathrm{tr}(\pmb a^{T}\mathrm{d}(\pmb X)\pmb X^{T}\pmb b)+\mathrm{tr}(\pmb a^{T}\pmb X\mathrm{d}(\pmb X^{T})\pmb b)
微分转置法则 \large \mathrm{d}\pmb F^{T}_{p\times q}(\pmb X)=(\mathrm{d}\pmb F_{p\times q}(\pmb X))^{T}
\large \mathrm{tr}(\pmb a^{T}\mathrm{d}(\pmb X)\pmb X^{T}\pmb b)+\mathrm{tr}(\pmb a^{T}\pmb X{\color{Red} \mathrm{d}(\pmb X^{T})}\pmb b)=\mathrm{tr}(\pmb a^{T}\mathrm{d}(\pmb X)\pmb X^{T}\pmb b)+\mathrm{tr}(\pmb a^{T}\pmb X{\color{Red} \mathrm{d}(\pmb X)^{T}}\pmb b)
迹的交换与转置

\large \mathrm{tr(\pmb {ABC})=tr(\pmb C(\pmb {AB}))=tr((\pmb {BC})\pmb A)}

\large \mathrm{tr(\pmb A\pmb B^{\mathit{T}})=tr(\pmb B^{\mathit{T}}\pmb A)=tr(\pmb A^{\mathit{T}}\pmb B)=tr(\pmb B\pmb A^{\mathit{T}})}

\large \mathrm{tr}(\pmb a^{T}\mathrm{d}(\pmb X){\color{Red} \pmb X^{T}\pmb b})+\mathrm{tr}(\pmb a^{T}\pmb X\mathrm{d}(\pmb X)^{T}{\color{Red} \pmb b})=\mathrm{tr}({\color{Red} \pmb X^{T}\pmb b}\ \pmb a^{T}\mathrm{d}(\pmb X))+\mathrm{tr}({\color{Red} \pmb b}\ \pmb a^{T}\pmb X\mathrm{d}(\pmb X)^{T})

\large =\mathrm{tr}(\pmb X^{T}\pmb b\ \pmb a^{T}\mathrm{d}(\pmb X))+\mathrm{tr}({\color{Blue} \pmb b\ \pmb a^{T}\pmb X}{\color{Red} \mathrm{d}(\pmb X)^{T}})

\large =\mathrm{tr}(\pmb X^{T}\pmb b\ \pmb a^{T}\mathrm{d}(\pmb X))+\mathrm{tr}({\color{Blue} (\pmb b\ \pmb a^{T}\pmb X)^{T}}{\color{Red} \mathrm{d}\pmb X})

\large =\mathrm{tr}(\pmb X^{T}\pmb b\ \pmb a^{T}\mathrm{d}(\pmb X))+\mathrm{tr}({\color{Blue} \pmb X^{T}\pmb a\pmb b^{T}}{\color{Red} \mathrm{d}\pmb X})

迹的线性法则 \large \large \mathrm{tr(\pmb A+\pmb B)=tr(\pmb A)+tr(\pmb B)}
\large \mathrm{tr}(\pmb X^{T}\pmb b\pmb a^{T}\mathrm{d}\pmb X)+\mathrm{tr}(\pmb X^{T}\pmb a\pmb b^{T}\mathrm{d}\pmb X)=\mathrm{tr}((\pmb X^{T}\pmb b\pmb a^{T}+\pmb X^{T}\pmb a\pmb b^{T})\mathrm{d}\pmb X)

 最终得到该式的微分

动手学深度学习——矩阵求导之矩阵的迹和微分

结合公式

动手学深度学习——矩阵求导之矩阵的迹和微分

可得导数

动手学深度学习——矩阵求导之矩阵的迹和微分

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/147303.html

(0)
上一篇 2025-04-08 16:26
下一篇 2025-04-08 16:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信