1. 程式人生 > >矩陣求導(上)——標量對矩陣的求導

矩陣求導(上)——標量對矩陣的求導

參考:https://zhuanlan.zhihu.com/p/24709748
這部分內容分兩篇整理,上篇講標量對矩陣的求導,下篇講矩陣對矩陣的求導。

  • 本文使用小寫字母x表示標量,粗體小寫字母 x \boldsymbol{x} 表示(列)向量,大寫字母X表示矩陣。

定義:標量f對矩陣X的導數,定義為

f X = [ f
X i j
]
\frac{\partial f}{\partial X} = \left[\frac{\partial f }{\partial X_{ij}}\right] ,即f對X逐元素求導排成與X尺寸相同的矩陣。然而,這個定義在計算中並不好用,實用上的原因是在對較複雜的函式難以逐元素求導;哲理上的原因是逐元素求導破壞了整體性。

試想,為何要將f看做矩陣X而不是各元素 X i j X_{ij} 的函式呢?
答案是用矩陣運算更整潔。所以在求導時不宜拆開矩陣,而是要找一個從整體出發的演算法。

為此,我們來回顧,一元微積分中的導數(標量對標量的導數)與微分有聯絡: d f = f ( x ) d x df = f'(x)dx
多元微積分中的梯度(標量對向量的導數)也與微分有聯絡: d f = i = 1 n f x i d x i = f x T d x df = \sum_{i=1}^n \frac{\partial f}{\partial x_i}dx_i = \frac{\partial f}{\partial \boldsymbol{x}}^T d\boldsymbol{x} ,這裡第一個等號是全微分公式,第二個等號表達了梯度與微分的聯絡:全微分 d f n × 1 df是n\times1 梯度向量 f x \frac{\partial f}{\partial \boldsymbol{x}} n × 1 n\times1 微分向量 d x d\boldsymbol{x} 的內積;

受此啟發,我們將矩陣導數與微分建立聯絡: d f = i = 1 m j = 1 n f X i j d X i j = tr ( f X T d X ) df = \sum_{i=1}^m \sum_{j=1}^n \frac{\partial f}{\partial X_{ij}}dX_{ij} = \text{tr}\left(\frac{\partial f}{\partial X}^T dX\right) 。其中 t r tr 代表跡(trace)是方陣對角線元素之和,滿足性質:對尺寸相同的矩陣A,B, tr ( A T B ) = i , j A i j B i j tr ( A T B ) \text{tr}(A^TB) = \sum_{i,j}A_{ij}B_{ij},即\text{tr}(A^TB) 是矩陣A,B的內積。與梯度相似,這裡第一個等號是全微分公式,第二個等號表達了矩陣導數與微分的聯絡:全微分df是 m × n f X m × n m\times n導數\frac{\partial f}{\partial X}與m\times n 微分矩陣dX的內積。

然後來建立運演算法則。回想遇到較複雜的一元函式如 f = log ( 2 + sin x ) e x f = \log(2+\sin x)e^{\sqrt{x}} ,我們是如何求導的呢?通常不是從定義開始求極限,而是先建立了初等函式求導和四則運算、複合等法則,再來運用這些法則。故而,我們來創立常用的矩陣微分的運演算法則:

  • 加減法: d ( X ± Y ) = d X ± d Y d(X\pm Y) = dX \pm dY
  • 矩陣乘法: d ( X Y ) = ( d X ) Y + X d Y d(XY) = (dX)Y + X dY
  • 轉置: d ( X T ) = ( d X ) T d(X^T) = (dX)^T
  • 跡: d tr ( X ) = tr ( d X ) d\text{tr}(X) = \text{tr}(dX)
  • 逆: d X 1 = X 1 d X X 1 dX^{-1} = -X^{-1}dX X^{-1} 。此式可在 X X 1 = I XX^{-1}=I 兩側求微分來證明。
  • 行列式: d X = tr ( X # d X ) d|X| = \text{tr}(X^{\#}dX) ,其中 X # X^{\#} 表示X的伴隨矩陣,在X可逆時又可以寫作 d X = X tr ( X 1 d X ) d|X|= |X|\text{tr}(X^{-1}dX) 。此式可用Laplace展開來證明,詳見張賢達《矩陣分析與應用》第279頁。
  • 逐元素乘法: d ( X