本文最后更新于:星期二, 八月 2日 2022, 9:32 晚上
我实在是不会把hexo中的latex开关打开了,大家如果想看公式,可以使用markdown编辑器,复制本文后在本地查看。本文是由本人汇编自网上的资料整理而成,为的是记忆和分享。
然后来建立运算法则。回想遇到较复杂的一元函数如$f = \log(2+\sin x)e^{\sqrt{x}}$,我们是如何求导的呢?通常不是从定义开始求极限,而是先建立了初等函数求导和四则运算、复合等法则,再来运用这些法则。故而,我们来创立常用的矩阵微分的运算法则:
加减法:$d(X\pm Y) = dX \pm dY$;矩阵乘法:$d(XY) = (dX)Y + X dY $;转置:$d(X^T) = (dX)^T$;迹:$d\text{tr}(X) = \text{tr}(dX)$。
逆:$dX^{-1} = -X^{-1}dX X^{-1}$。此式可在$XX^{-1}=I$两侧求微分来证明。
行列式:$d|X| = \text{tr}(X^$表示X的伴随矩阵,在X可逆时又可以写作$d|X|= |X|\text{tr}(X^{-1}dX)$。此式可用Laplace展开来证明,详见张贤达《矩阵分析与应用》第279页。
逐元素乘法:$d(X\odot Y) = dX\odot Y + X\odot dY$,$\odot$表示尺寸相同的矩阵X,Y逐元素相乘。
逐元素函数:$d\sigma(X) = \sigma’(X)\odot dX$ ,$\sigma(X) = \left[\sigma(X{ij})\right]$是逐元素标量函数运算,$ \sigma’(X)=[\sigma’(X{ij})]$是逐元素求导数。举个例子,。
我们试图利用矩阵导数与微分的联系$df = \text{tr}\left(\frac{\partial f}{\partial X}^T dX\right)$ ,在求出左侧的微分df后,该如何写成右侧的形式并得到导数呢?这需要一些迹技巧(trace trick):
标量套上迹:$a = \text{tr}(a)$
转置:$\mathrm{tr}(A^T) = \mathrm{tr}(A)$。
线性:$\text{tr}(A\pm B) = \text{tr}(A)\pm \text{tr}(B)$。
矩阵乘法交换:$\text{tr}(AB) = \text{tr}(BA)$,其中$A$与$B^T$尺寸相同。两侧都等于$\sum{i,j}A{ij}B{ji}$。
矩阵乘法/逐元素乘法交换:$\text{tr}(A^T(B\odot C)) = \text{tr}((A\odot B)^TC)$,其中$A, B, C$尺寸相同。两侧都等于$\sum{i,j}A{ij}B{ij}C_{ij}$。
观察一下可以断言,若标量函数f是矩阵X经加减乘法、逆、行列式、逐元素函数等运算构成,则使用相应的运算法则对f求微分,再使用迹技巧给df套上迹并将其它项交换至dX左侧,对照导数与微分的联系$df = \text{tr}\left(\frac{\partial f}{\partial X}^T dX\right)$,即能得到导数。
特别地,若矩阵退化为向量,对照导数与微分的联系$df = \frac{\partial f}{\partial \boldsymbol{x}}^T d\boldsymbol{x}$ ,即能得到导数。
在建立法则的最后,来谈一谈复合:假设已求得$\frac{\partial f}{\partial Y}$,而Y是X的函数,如何求$\frac{\partial f}{\partial X}$呢?在微积分中有标量求导的链式法则$\frac{\partial f}{\partial x} = \frac{\partial f}{\partial y} \frac{\partial y}{\partial x}$,但这里我们不能随意沿用标量的链式法则,因为矩阵对矩阵的导数$\frac{\partial Y}{\partial X}$截至目前仍是未定义的。于是我们继续追本溯源,链式法则是从何而来?源头仍然是微分。我们直接从微分入手建立复合法则:先写出$df = \text{tr}\left(\frac{\partial f}{\partial Y}^T dY\right)$,再将dY用dX表示出来代入,并使用迹技巧将其他项交换至dX左侧,即可得到$\frac{\partial f}{\partial X}$。
最常见的情形是$Y = AXB$,此时 ,可得到。注意这里$dY = (dA)XB + AdXB + AXdB = AdXB$,由于A,B是常量,$dA=0,dB=0$,以及我们使用矩阵乘法交换的迹技巧交换了$\frac{\partial f}{\partial Y}^T AdX$与$B$。
notes 转载 deep learning math matrix analysis
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!