矩阵求导法
1、前言
设 y = f ( x ) y=f(x) y=f(x)且 x = [ x 1 x 2 . . . x n ] T x=[x_1 \ x_2 \ ... x_n]^{T} x=[x1 x2 ...xn]T,由多元函数微积分可知
d y = ∑ i = 1 n d y d x i d x i = ( d y d x ) T d x dy=\sum_{i=1}^{n} \frac{dy}{dx_i}dx_i=(\frac{dy}{dx})^{T}dx dy=i=1∑ndxidydxi=(dxdy)Tdx
将向量 x x x推广到矩阵的形式,可以得到
d y = ∑ i = 1 n ∑ j = 1 m ∂ y ∂ X i j d X i j = t r ( ( ∂ y ∂ X ) T d X ) dy=\sum_{i = 1}^{n}\sum_{j = 1}^{m}\frac{\partial y}{\partial X_{ij}}dX_{ij}=tr((\frac{\partial y}{\partial X})^{T}dX) dy=i=1∑nj=1∑m∂Xij∂ydXij=tr((∂X∂y)TdX)
值得注意的是,本文所有向量都默认为列向量的形式,用小写字母表示标量和向量,用大写字母表示矩阵。
2、布局方式
一般来说,我们会使用一种叫混合布局的思路,即如果是向量或者矩阵对标量求导,则使用分子布局为准,如果是标量对向量或者矩阵求导,则以分母布局为准。
3、基本公式
3.1 微分基本性质
- 微分加减法: d ( X ± Y ) = d X ± d Y d(X \pm Y)=dX \pm dY d(X±Y)=dX±dY
- 微分乘法: d ( X Y ) = X d Y + Y d X d(XY)=XdY+YdX d(XY)=XdY+YdX
- 微分转置: d ( X T ) = ( d X ) T d(X^{T})=(dX)^{T} d(XT)=(dX)T
- 逆矩阵微分: d ( X − 1 ) = − X − 1 d ( X ) X − 1 d(X^{-1})=-X^{-1}d(X)X^{-1} d(X−1)=−X−1d(X)X−1
- 哈达马积(Hadamard Product)微分: d ( X ⊙ Y ) = X ⊙ d Y + d X ⊙ Y d(X \odot Y) = X \odot dY + dX \odot Y d(X⊙Y)=X⊙dY+dX⊙Y
- 逐项元素求导: d σ ( X ) = σ ′ ( X ) ⊙ d X d\sigma(X) = \sigma ^{'}(X) \odot dX dσ(X)=σ′(X)⊙dX
3.2 迹的基本性质(针对标量对向量或者矩阵求导情况)
- t r ( x ) = x ( x 为 标 量 ) tr(x)=x(x为标量) tr(x)=x(x为标量)
- t r ( A T ) = t r ( A ) tr(A^{T})=tr(A) tr(AT)=tr(A)
- t r ( A B ) = t r ( B A ) tr(AB)=tr(BA) tr(AB)=tr(BA)
- t r ( A ± B ) = t r ( A ) ± t r ( B ) tr(A \pm B) = tr(A) \pm tr(B) tr(A±B)=tr(A)±tr(B)
- d [ t r ( X ) ] = t r ( d X ) d[tr(X)]=tr(dX) d[tr(X)]=tr(dX)
- t r [ ( A ⊙ B ) T C ] = t r [ A T ( B ⊙ C ) ] tr[(A \odot B)^{T}C] = tr[A^{T}(B \odot C)] tr[(A⊙B)TC]=tr[AT(B⊙C)]
3.3 性质证明
(1) d ( X − 1 ) = − X − 1 d ( X ) X − 1 d(X^{-1})=-X^{-1}d(X)X^{-1} d(X−1)=−X