介绍矩阵求导法则,以及常用的求导公式、迹函数、行列式求导结论
矩阵求导法则
矩阵求导应该分为标量求导、向量求导、矩阵求导三个方面来介绍,公式繁多,但仔细看看其实是有规律可循的。
标量求导
无论是矩阵、向量对标量求导,或者是标量对矩阵、向量求导,其结论都是一样的:等价于对矩阵(向量)的每个分量求导,并且保持维数不变。
例如,我们可以计算标量对向量求导:
设 y y 为一个元素,是 q q 维行向量,则:
向量求导
对于向量求导,我们可以先将向量看做一个标量,然后使用标量求导法则,最后将向量形式化为标量进行。
例如,我们可以计算行向量对列向量求导:
设 yT=[y1...yn] y T = [ y 1 . . . y n ] 是 n n 维行向量,是 p p 维列向量,则:
矩阵求导
与向量求导类似,先将矩阵化当做一个标量,再使用标量对矩阵的运算进行。
例如,我们可以计算矩阵对列向量求导:
设 Y=⎡⎣⎢y11...ym1.........y1n...ymn⎤⎦⎥ Y = [ y 11 . . . y 1 n . . . . . . . . . y m 1 . . . y m n ] 是 m×n m × n 矩阵, x=[x1,...,xp] x = [ x 1 , . . . , x p ] 是 p p 维列向量,则:
矩阵微积分
常见求导性质
实值函数相对于实向量的梯度
设 f(x)=x=[x1,...,xn]T f ( x ) = x = [ x 1 , . . . , x n ] T
其中, vec v e c 表示向量化矩阵,按列将矩阵表示为向量,具体可见Wikipedia。
常见性质
f(x)=Ax f ( x ) = A x ,则
∂f(x)∂xT=∂(Ax)∂xT=A ∂ f ( x ) ∂ x T = ∂ ( A x ) ∂ x T = Af(x)=xTAx f ( x ) = x T A x ,则
∂f(x)∂x=∂(xTAx)∂x=Ax+ATx ∂ f ( x ) ∂ x = ∂ ( x T A x ) ∂ x = A x + A T xf(x)=aTx f ( x ) = a T x ,则
∂aTx∂x=∂xTa∂x=a ∂ a T x ∂ x = ∂ x T a ∂ x = af(x)=xTAy f ( x ) = x T A y ,则
∂xTAy∂x=Ay ∂ x T A y ∂ x = A y∂xTAy∂A=xyT ∂ x T A y ∂ A = x y T- df(X)=tr((∂f(X)∂X)TdX) d f ( X ) = t r ( ( ∂ f ( X ) ∂ X ) T d X )
矩阵微分也满足线性法则、乘积法则。
矩阵的逆的微分
d(X−1)=−X−1(dX)X−1 d ( X − 1 ) = − X − 1 ( d X ) X − 1
迹函数
迹函数相对于矩阵的梯度
矩阵微分算子和迹算子的可交换性
常见性质
- ∂tr(A)∂A=In×n ∂ t r ( A ) ∂ A = I n × n
- ∂tr(AB)∂A=BT ∂ t r ( A B ) ∂ A = B T
- d(tr(AXB))=tr(A(dX)B)=tr(BA(dx)) d ( t r ( A X B ) ) = t r ( A ( d X ) B ) = t r ( B A ( d x ) )∂tr(AXB)∂X=(BA)T=ATBT ∂ t r ( A X B ) ∂ X = ( B A ) T = A T B T
- d(tr(AX−1B))=tr(A(dX−1)B)=−tr(AX−1(dX)X−1B)=−tr(X−1BAX−1dX) d ( t r ( A X − 1 B ) ) = t r ( A ( d X − 1 ) B ) = − t r ( A X − 1 ( d X ) X − 1 B ) = − t r ( X − 1 B A X − 1 d X )∂tr(AX−1B)∂X=−(X−1BAX−1)T=−X−TATBTX−T ∂ t r ( A X − 1 B ) ∂ X = − ( X − 1 B A X − 1 ) T = − X − T A T B T X − T
- ∂tr(XTX)∂X=2X ∂ t r ( X T X ) ∂ X = 2 X
行列式
行列式相对于矩阵的梯度
微分形式
常见性质
- d|AXB|===tr(|AXB|(AXB)−1d(AXB))tr(|AXB|(AXB)−1A(dX)B)tr(|AXB|B(AXB)−1A(dX)) d | A X B | = t r ( | A X B | ( A X B ) − 1 d ( A X B ) ) = t r ( | A X B | ( A X B ) − 1 A ( d X ) B ) = t r ( | A X B | B ( A X B ) − 1 A ( d X ) )∂|AXB|∂X=|AXB|AT(BTXTAT)−1BT ∂ | A X B | ∂ X = | A X B | A T ( B T X T A T ) − 1 B T
- ∂|X|∂X=|X|X−T ∂ | X | ∂ X = | X | X − T
- ∂|XXT|∂X=2|XXT|(XXT)−1X ∂ | X X T | ∂ X = 2 | X X T | ( X X T ) − 1 X