矩阵求导介绍
在看机器学习书籍的时候,经常会用到矩阵求导,因此,总结一下自己对于矩阵(向量)求导的一些思考,便于后期查阅。
下面的内容主要是参考Andrew Ng的课程里介绍的关于矩阵的迹以及矩阵求导的思想,总结而成的笔记。
首先,先介绍一个矩阵的导数的概念,假设\(A_{m\times n}\)为一个\(m\times n\)的矩阵,\(f(A)\)为一个函数,可以将一个\(m\times n\)的矩阵映射为一个实数\(R\),我们定义矩阵的导数就是以矩阵\(A\)为自变量的函数\(f(A)\)对\(A\)的导数,即:
\(\dfrac {\partial f(A)} {\partial A} = \nabla_A f(A) = \left [ \begin{matrix} \dfrac {\partial f} {\partial A_{11}} & \dfrac {\partial f} {\partial A_{12}} & \cdots & \dfrac {\partial f} {\partial A_{1n}} \\ \dfrac {\partial f} {\partial A_{21}} & \dfrac {\partial f} {\partial A_{22}} & \cdots & \dfrac {\partial f} {\partial A_{2n}} \\ \vdots & \vdots & \ddots & \vdots \\ \dfrac {\partial f} {\partial A_{m1}} & \dfrac {\partial f} {\partial A_{m2}} & \cdots & \dfrac {\partial f} {\partial A_{mn}} \end{matrix} \right ]\)
下面介绍一种能将一个方阵映射为一个实数的函数,即矩阵的迹:\(tr(A)=\displaystyle\sum_{i=1}^nA_{{ii}}\),即n阶方阵对角线上的元素之和。
关于n阶方阵的迹,有如下定理:
(1)\(tr(A)=tr(A^T)\) 备注:矩阵转置后迹还相等
(2)如果\(a\in R\),则有\(tr(a)=a\) 备注:实数的迹还等于该实数
(3)\(tr(AB)=tr(BA)\) 备注:AB交换之后迹相等
(4)\(tr(ABC)=tr(BCA)=tr(CAB)\) 备注:即ABC矩阵可以轮换
(5)如果\(f(A)=tr(AB)\),则有\(\nabla_A tr(AB) = \nabla_A tr(BA)= B^T\) 基本公式,死记
(6)\(\nabla_A tr(ABA^TC) = CAB + C^TAB^T\) 备注:死记其公式,然后推导其他式子时,就将之变成这个形式,然后利用该公式
(7)\(\nabla_{A^T} f(A) = (\nabla_A f(A))^T\) 备注:对A的转置求导,相当于先对A求导,再转置。
(8)$\nabla_{A^T} tr(ABA^TC) = BTATC^T + BA^TC $ 备注:根据定理6和定理7就可以推导。
由以上定理,进一步可以推导出相关的矩阵向量求导常用公式:
(1)\(\dfrac {\partial AX} {\partial X} = A^T\) 备注:直接利用上述定理5即可。
因此,可得结论:$\dfrac {\partial X^TA} {\partial X} = \dfrac {\partial A^TX} {\partial X} = A $ 备注:分子的变化是利用定理1
(2)\(\dfrac {\partial X^TX} {\partial X} = 2X\)
(3)\(\dfrac {\partial X^TAX} {\partial X} = (A+A^T)X\)
其他的无论什么求导,都可以将要求导的式子通过矩阵的迹的相关定理进行变形,然后利用矩阵的迹相关定理1/4/6推导。
举例:
例1:\(\dfrac {\partial A^TXB} {\partial X} = \dfrac {\partial BA^TX} {\partial X} = AB^T\)
解法:第一步变换利用定理4,将B调换到前面,第二步变换利用定理5,即可得到结果。
例2:\(\dfrac {\partial A^TX^TB} {\partial X} = \dfrac {\partial B^TXA} {\partial X} = \dfrac {\partial AB^TX} {\partial X} = BA^T\)
解法:第一步变换利用定理1转置,第二步变换利用性质4,将A调换到前面,然后得出结果。
例3:$\dfrac {\partial BTXTXC} {\partial X} = \dfrac {\partial XCBTXT} {\partial X} = \dfrac {\partial XCBTXT\cdot 1} {\partial X} = 1\cdot XCB^T + 1TX(CBT)^T = XCB^T + XBC^T = X(CB^T + BC^T) $
解法:第一步变换是将\(XC\)调换到前面去,第二步变换是将\(CB^T\)看成整体,并且后面乘1,换成标准的\(ABA^TC\)的形式,其中\(X\)相当于\(A\),\(CB^T\)相当于\(B\),1相当于\(C\),然后利用定理6解决问题。
至此,困扰我很久的矩阵求导终于搞清楚了,此刻,我只想说去他妈的什么"分子布局"和"分母布局"吧。
浙公网安备 33010602011771号