这是个人学习笔记,不是原创。来源请查看 "参考文档"
标量对矩阵的求导
基础推导
定义
标量f对矩阵X的导数,定义为 ,即f对X逐元素求导排成与X尺寸相同的矩阵。
将矩阵导数与微分建立联系:
上面第二个等式,用到了矩阵的迹的性质。因为两个向量相乘,A中第i个元素乘以B中第i个元素的积,全部在形成的矩阵对角线上,即
=\sum_{i,j}{A_{ij}B_{ij}})
这里第一个等号是全微分公式,第二个等号表达了矩阵导数与微分的联系:全微分是导数(mxn)与微分矩阵
(mxn)的內积。(这里的m,n是矩阵的大小)
求导公式
运用这些法则,可以建立常用的矩阵微分的运算法则:
-
加减法
-
矩阵乘法
-
转置
-
迹
-
逆
-
行列式
其中X#表示X矩阵的伴随矩阵,在X可逆的时候,可以写作:
-
逐元素乘法
其中,表示尺寸相同的矩阵X,Y逐元素相乘。
-
逐元素函数
这是逐元素标量函数运算,是逐元素求导数。
矩阵迹的运算
利用矩阵导数与微分的联系)求出左侧的微分后,该如何写成右侧的形式并得到导数?这需要一些迹技巧:
-
标量套上迹:)
-
转置:=tr(A))
-
线性:=tr(A)\pm tr(B))
-
矩阵乘法交换:=tr(BA)),其中与的尺寸相同。两侧都等于
-
矩阵乘法/逐元素乘法交换:)=tr((A\odot B)^TC)),其中A,B,C尺寸相同,两侧都等于
结论
若标量函数f是矩阵X经加减乘法、逆、行列式、逐元素函数等运算构成,则使用相应的运算法则对f求微分,再使用迹技巧给df套上迹并将其它项交换至dX左侧,对照导数与微分的联系),即能得到导数。
复合函数
假设已求得,而Y是X的函数,如何求?
-
)
-
再将dY用dX表示出来代入,并使用迹技巧将其他项交换至dX左侧,即可得到。
例子
上面的式子与)对比,即可得到。
注意,
,由于A,B是常量,所以
,以及我们使用矩阵乘法交换的迹技巧交换了与
。
例题
,求。其中
是列向量,
是矩阵,
是列向量,
是标量。
解:
由于是标量,
,所以
与)对比,可得
参考文档
-
https://zhuanlan.zhihu.com/p/24709748
-
https://www.jianshu.com/p/d0110f242b64