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

矩陣求導(下)——矩陣對矩陣的求導

參考:https://zhuanlan.zhihu.com/p/24863977

本篇使用小寫字母x表示標量,粗體小寫字母 x \boldsymbol{x} 表示列向量,大寫字母X表示矩陣。
矩陣對矩陣的求導採用了向量化的思路,常應用於二階方法求解優化問題。

首先來琢磨一下定義。矩陣對矩陣的導數,需要什麼樣的定義?
第一,矩陣 F

( p × q ) F(p×q) 對矩陣 X ( m
× n ) X(m×n)
的導數應包含所有mnpq個偏導數 F k
l X i j \frac{\partial F_{kl}}{\partial X_{ij}}
,從而不損失資訊;
第二,導數與微分有簡明的聯絡,因為在計算導數和應用中需要這個聯絡;
第三,導數有簡明的從整體出發的演算法。
我們先定義向量 f ( p × 1 ) \boldsymbol{f}(p×1) 對向量 x ( m × 1 \boldsymbol{x}(m×1 )的導數 f x = [ f 1 x 1 f 2 x 1 f p x 1 f 1 x 2 f 2 x 2 f p x 2 f 1 x m f 2 x m f p x m ] ( m × p ) \frac{\partial \boldsymbol{f}}{\partial \boldsymbol{x}} = \begin{bmatrix} \frac{\partial f_1}{\partial x_1} & \frac{\partial f_2}{\partial x_1} & \cdots & \frac{\partial f_p}{\partial x_1}\\ \frac{\partial f_1}{\partial x_2} & \frac{\partial f_2}{\partial x_2} & \cdots & \frac{\partial f_p}{\partial x_2}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{\partial f_1}{\partial x_m} & \frac{\partial f_2}{\partial x_m} & \cdots & \frac{\partial f_p}{\partial x_m}\\ \end{bmatrix}(m×p) ,有 d f = f x T d x d\boldsymbol{f} = \frac{\partial \boldsymbol{f} }{\partial \boldsymbol{x} }^T d\boldsymbol{x}
再定義矩陣的(按列優先)向量化 v e c ( X ) = [ X 11 , , X m 1 , X 12 , , X m 2 , , X 1 n , , X m n ] T ( m n × 1 ) \mathrm{vec}(X) = [X_{11}, \ldots, X_{m1}, X_{12}, \ldots, X_{m2}, \ldots, X_{1n}, \ldots, X_{mn}]^T(mn×1)
並定義矩陣F對矩陣X的導數 F X = v e c ( F ) v e c ( X ) ( m n × p q ) \frac{\partial F}{\partial X} = \frac{\partial \mathrm{vec}(F)}{\partial \mathrm{vec}(X)}(mn×pq)