定义:
若有函数y=f(X),其中X为一个矩阵,y为标量,则标量y对矩阵X的导数定义为y对X逐元素求导排列成与X同型的矩阵
但是在实际计算标量对矩阵求导时,并不是直接使用标量对矩阵中的逐元素求导,而是将矩阵当作一个整体来求导
标量对矩阵求导公式推导
若有y=f(X),其中X为m×n的矩阵,则由全微分公式可以得到
df=m∑i=1n∑j=1φfφXijdXij令:
∂f∂X=(∂f∂X11∂f∂X12⋯∂f∂X1n∂f∂X21∂f∂X22⋯∂f∂X2n⋮⋮⋮∂f∂Xm1∂f∂Xm2⋯∂f∂Xmn)m×ndX=(dX11dX12⋯dX1ndX21dX22⋯dX2n⋮⋮⋮dXm1dXm2⋯dXmn)m×n则
[(∂f∂X)T·dX]ii=m∑k=1∂f∂XkidXki则
tr[(∂f∂X)T·dX]=m∑i=1n∑j=1∂f∂XijdXijdf=tr[(∂f∂X)T·dX]其中tr表示矩阵的迹(trace),是方阵对角元素之和。所以只要求全微分的公式(1)左边的形式,就可以的得到
∂f∂X$
矩阵微分的运算法则
1、加减法、乘法、转置、迹
d(X±Y)=dX±dYd(XY)=X(dY)+d(X)Yd(XT)=(dX)Tdtr(X)=tr(dX)2、逆
dX−1=−X−1dXX−1该公式可以使用公式XX−1=I,两边同时对X求微分。
3、行列式
d|X|=tr(X∗dX)其中X∗为X的伴随矩阵
4、逐函数乘法
d(X⨀Y)=dX⨀Y+X⨀dY其中⨀表示同型矩阵逐元素相乘
5、逐元素函数
dσ(X)=σ′⨀dX其中σ(X)=[σ(Xij)]是逐元素标量函数的计算
关于矩阵的迹的公式
a=tr(a),a为标量tr(AT)=tr(A)tr(A±B)=tr(A)±tr(B)tr(BA)=tr(AB)一个例子
y=ATXB,求∂y∂X
解:
df=ATd(XB)+d(AT)·XB=ATdX·B+ATXdB=ATdX·B其中d(AT)=d(B)=0应为df为标量,所以
df=tr(df)=tr(ATdX·B)=tr(BATdX)=tr[(ABT)Tdx]所以∂y∂X=(ABT)
链式法则
在标量对矩阵求导中,没有类似标量对标量求导的链式法则。
此时没有明确的链式法而是要使用公式进行推导,例如有z=f(Y),其中Y为矩阵且Y=AXB,A、X、B、都为矩阵,求∂f∂X。
推导过程:
dz=tr[(∂f∂Y)TdY]=tr[(∂f∂Y)Td(AXB)]=tr[(∂f∂Y)TdA·(XB)]+tr[(∂f∂Y)TA·d(XB)]=tr[(∂f∂Y)TAdX·B]+tr[(∂f∂Y)TAX·d(B)]=tr[(∂f∂Y)TAdX·B]=tr[B·(∂f∂Y)TAdX]=tr[(AT∂f∂YBT)TdX]其中dA=dB=0所以有∂z∂X=(AT∂f∂YBT)