矩陣導數

本文的閱讀等級:中級

f(x_1,x_2,\ldots,x_n) 為一個多變量可導函數,或記為 f(\mathbf{x}),其中 \mathbf{x}=\begin{bmatrix}  x_1\\ x_2\\  \vdots\\  x_n\end{bmatrix}。我們定義 f 的梯度 (gradient) 為底下的 n 維向量:

\displaystyle  \nabla f=\frac{\partial f}{\partial \mathbf{x}}=\begin{bmatrix}  \displaystyle\frac{\partial f}{\partial x_1}\\[0.8em]  \displaystyle\frac{\partial f}{\partial x_2}\\[0.8em]  \vdots\\[0.8em]  \displaystyle\frac{\partial f}{\partial x_n}  \end{bmatrix}

其中 \displaystyle\frac{\partial f}{\partial\mathbf{x}} 的第 i 元是 f 對變數 x_i 的一階偏導數 \displaystyle\frac{\partial f}{\partial x_i}。如果給定 m 個多變量函數 f_1(\mathbf{x}),\ldots,f_m(\mathbf{x}),則有 m 個梯度 \displaystyle\frac{\partial f_1}{\partial\mathbf{x}},\ldots,\displaystyle\frac{\partial f_m}{\partial\mathbf{x}}。將所有 m 梯度合併成一個矩陣,再取轉置,可得 m\times n 階矩陣

\displaystyle  J=\begin{bmatrix}  \displaystyle\frac{\partial f_1}{\partial\mathbf{x}}&\displaystyle\frac{\partial f_2}{\partial\mathbf{x}}&\cdots&\displaystyle\frac{\partial f_m}{\partial\mathbf{x}}  \end{bmatrix}^T=\begin{bmatrix}  \displaystyle\frac{\partial f_1}{\partial x_1}&\displaystyle\frac{\partial f_1}{\partial x_2}&\cdots&\displaystyle\frac{\partial f_1}{\partial x_n}\\[0.8em]  \displaystyle\frac{\partial f_2}{\partial x_1}&\displaystyle\frac{\partial f_2}{\partial x_2}&\cdots&\displaystyle\frac{\partial f_2}{\partial x_n}\\[0.8em]  \vdots&\vdots&\ddots&\vdots\\[0.8em]  \displaystyle\frac{\partial f_m}{\partial x_1}&\displaystyle\frac{\partial f_m}{\partial x_2}&\cdots&\displaystyle\frac{\partial f_m}{\partial x_n}  \end{bmatrix}

稱為 Jacobian 矩陣。另一方面,如果 f 是二階可導函數,我們可以計算 \displaystyle\frac{\partial f}{\partial\mathbf{x}} 的每一元 \displaystyle\frac{\partial f}{\partial{x}_i} 的梯度,如此可得

\displaystyle  H=\begin{bmatrix}  \displaystyle\frac{\partial}{\partial\mathbf{x}}\left(\frac{\partial f}{\partial x_1}\right)&\displaystyle\frac{\partial}{\partial\mathbf{x}}\left(\frac{\partial f}{\partial x_2}\right)&\cdots&\displaystyle\frac{\partial}{\partial\mathbf{x}}\left(\frac{\partial f}{\partial x_n}\right)  \end{bmatrix}=\begin{bmatrix}  \displaystyle\frac{\partial^2f}{\partial x_1\partial x_1}&\displaystyle\frac{\partial^2f}{\partial x_1\partial x_2}&\cdots&\displaystyle\frac{\partial^2f}{\partial x_1\partial x_n}\\[1em]  \displaystyle\frac{\partial^2 f}{\partial x_2\partial x_1}&\displaystyle\frac{\partial^2 f}{\partial x_2\partial x_2}&\cdots&\displaystyle\frac{\partial^2 f}{\partial x_2\partial x_n}\\  \vdots&\vdots&\ddots&\vdots\\  \displaystyle\frac{\partial^2 f}{\partial x_n\partial x_1}&\displaystyle\frac{\partial^2f}{\partial x_n\partial x_2}&\cdots&\displaystyle\frac{\partial^2 f}{\partial x_n\partial x_n}  \end{bmatrix}

稱為 Hessian 矩陣。請注意,梯度 \displaystyle\frac{\partial f}{\partial\mathbf{x}} 的 Jacobian 矩陣即為函數 f 的 Hessian 矩陣 (見“Jacobian 矩陣與行列式”)。以上三種涉及純量對向量求導的結果經常出現於線性代數的相關應用領域,不過一般線性代數課程卻鮮少討論。本文介紹一些常用的矩陣導數 (matrix calculus),包括下列數種類型 :

\begin{array}{ccccc}  \hbox{type}&\vline&\hbox{scalar}&\hbox{vector}&\hbox{matrix}\\ \hline  \hbox{scalar}&\vline&\displaystyle\frac{\partial y}{\partial x}&\displaystyle\frac{\partial\mathbf{y}}{\partial x}&\displaystyle\frac{\partial Y}{\partial x}\\[0.8em]  \hbox{vector}&\vline&\displaystyle\frac{\partial y}{\partial\mathbf{x}}&\displaystyle\frac{\partial\mathbf{y}}{\partial\mathbf{x}}&\\[0.8em]  \hbox{matrix}&\vline&\displaystyle\frac{\partial y}{\partial X}& & \\ [0.8em]\hline  \end{array}

這裡字母 x,\mathbf{x},X 代表自變數,y,\mathbf{y},Y 代表應變數;小寫斜體如 x 表示純量,小寫粗體如 \mathbf{x}  表示向量,大寫斜體如 X 表示矩陣。針對每一種類型,底下列舉一些常用的恆等式並給出證明。

 
首先說明本文使用的符號。如果不特別指定,假設 \mathbf{x} 是一個 n 維向量,\mathbf{y} 是一個 m 維向量,X=[x_{ij}]Y=[y_{ij}]m\times n 階矩陣。矩陣導數存在兩種佈局慣例 (layout convention):分子佈局與分母佈局[1]。以向量—向量導數 \displaystyle\frac{\partial\mathbf{y}}{\partial\mathbf{x}} 為例說明。分子佈局,也稱為 Jacobian 形式,根據 \mathbf{y}\mathbf{x}^T 將結果置於一個 m\times n 階矩陣,如下:

\displaystyle  \left(\frac{\partial\mathbf{y}}{\partial\mathbf{x}}\right)_{ij}\equiv\frac{\partial y_i}{\partial x_j},~~i=1,\ldots,m,~~j=1,\ldots,n

或明確地寫成

\displaystyle  \frac{\partial\mathbf{y}}{\partial\mathbf{x}}=\begin{bmatrix}  \displaystyle\frac{\partial\mathbf{y}}{\partial x_1}&\displaystyle\frac{\partial\mathbf{y}}{\partial x_2}&\cdots&\displaystyle\frac{\partial\mathbf{y}}{\partial x_n}  \end{bmatrix}=\begin{bmatrix}  \displaystyle\frac{\partial y_1}{\partial\mathbf{x}}\\[0.8em]  \displaystyle\frac{\partial y_2}{\partial\mathbf{x}}\\[0.8em]  \vdots\\[0.8em]  \displaystyle\frac{\partial y_m}{\partial\mathbf{x}}  \end{bmatrix}=\begin{bmatrix}  \displaystyle\frac{\partial y_1}{\partial x_1}&\displaystyle\frac{\partial y_1}{\partial x_2}&\cdots&\displaystyle\frac{\partial y_1}{\partial x_m}\\[0.8em]  \displaystyle\frac{\partial y_2}{\partial x_1}&\displaystyle\frac{\partial y_2}{\partial x_2}&\cdots&\displaystyle\frac{\partial y_2}{\partial x_m}\\[0.8em]  \vdots&\vdots&\ddots&\vdots\\[0.8em]  \displaystyle\frac{\partial y_m}{\partial x_1}&\displaystyle\frac{\partial y_m}{\partial x_2}&\cdots&\displaystyle\frac{\partial y_m}{\partial x_n}  \end{bmatrix}

分母佈局,也稱為 Hessian 形式或梯度形式,根據 \mathbf{x}\mathbf{y}^T 將結果置於一個 n\times m 階矩陣,如下:

\displaystyle  \left(\frac{\partial\mathbf{y}}{\partial\mathbf{x}}\right)_{ij}\equiv\frac{\partial y_j}{\partial x_i},~~i=1,\ldots,n,~~j=1,\ldots,m

或明確地寫成

\displaystyle  \frac{\partial\mathbf{y}}{\partial\mathbf{x}}=\begin{bmatrix}  \displaystyle\frac{\partial y_1}{\partial\mathbf{x}}&\displaystyle\frac{\partial y_2}{\partial\mathbf{x}}&\cdots&\displaystyle\frac{\partial y_m}{\partial\mathbf{x}}  \end{bmatrix}=\begin{bmatrix}  \displaystyle\frac{\partial\mathbf{y}}{\partial x_1}\\[0.8em]  \displaystyle\frac{\partial\mathbf{y}}{\partial x_2}\\[0.8em]  \vdots\\[0.8em]  \displaystyle\frac{\partial\mathbf{y}}{\partial x_n}  \end{bmatrix}=\begin{bmatrix}  \displaystyle\frac{\partial y_1}{\partial x_1}&\displaystyle\frac{\partial y_2}{\partial x_1}&\cdots&\displaystyle\frac{\partial y_m}{\partial x_1}\\[0.8em]  \displaystyle\frac{\partial y_1}{\partial x_2}&\displaystyle\frac{\partial y_2}{\partial x_2}&\cdots&\displaystyle\frac{\partial y_m}{\partial x_2}\\[0.8em]  \vdots&\vdots&\ddots&\vdots\\[0.8em]  \displaystyle\frac{\partial y_1}{\partial x_n}&\displaystyle\frac{\partial y_2}{\partial x_n}&\cdots&\displaystyle\frac{\partial y_m}{\partial x_n}  \end{bmatrix}

如果採用分子佈局,\displaystyle\frac{\partial y}{\partial\mathbf{x}}n 維列向量 (row vector),\displaystyle\frac{\partial\mathbf{y}}{\partial x}m 維行向量 (column vector);如果採用分母佈局,\displaystyle\frac{\partial y}{\partial\mathbf{x}}n 維行向量, \displaystyle\frac{\partial\mathbf{y}}{\partial x}m 維列向量。(在台灣,橫向稱為列,縱向稱為行。在中國大陸,橫向稱為行,縱向稱為列。) 請注意,對於純量—向量導數、向量—純量導數和向量—向量導數,本文採用分母佈局;對於純量—矩陣導數和矩陣—純量導數,本文採用混合佈局,\displaystyle\frac{\partial{y}}{\partial X} 採用分母佈局,但 \displaystyle\frac{\partial Y}{\partial x} 採用分子佈局。我選擇混和佈局的目的是讓矩陣導數與原矩陣有相同的尺寸:

\displaystyle  \left(\frac{\partial y}{\partial X}\right)_{ij}\equiv\frac{\partial y}{\partial x_{ij}},~~i=1,\ldots,m,~~j=1,\ldots,n

\displaystyle  \left(\frac{\partial Y}{\partial x}\right)_{ij}\equiv\frac{\partial y_{ij}}{\partial x},~~i=1,\ldots,m,~~j=1,\ldots,n

 
向量—向量恆等式

假設純量 a、向量 \mathbf{a} 和矩陣 A 都不是 \mathbf{x} 的函數;\mathbf{f}(\mathbf{u})\mathbf{u}(\mathbf{x})\mathbf{v}(\mathbf{x}) 是可導函數[2]

(VV-1) \displaystyle\frac{\partial\mathbf{a}}{\partial\mathbf{x}}=0
使用定義,\displaystyle\left(\frac{\partial\mathbf{a}}{\partial\mathbf{x}}\right)_{ij}=\frac{\partial a_j}{\partial x_i}=0

(VV-2) \displaystyle\frac{\partial\mathbf{x}}{\partial\mathbf{x}}=I
使用定義,\displaystyle  \left(\frac{\partial\mathbf{x}}{\partial\mathbf{x}}\right)_{ij}=\frac{\partial x_j}{\partial x_i}=\delta_{ij}=(I)_{ij}。這裡 \delta_{ij} 是 Kronecker 記號:\delta_{ij}=1i=j\delta_{ij}=0i\neq j

(VV-3) \displaystyle\frac{\partial A\mathbf{x}}{\partial\mathbf{x}}=A^T
使用定義,

\displaystyle  \left(\frac{\partial A\mathbf{x}}{\partial\mathbf{x}}\right)_{ij}=\frac{\partial \sum_{k}a_{jk}x_k}{\partial x_i}=\sum_ka_{jk}\frac{\partial x_k}{\partial x_i}=\sum_{k}a_{jk}\delta_{ik}=a_{ji}=(A^T)_{ij}

(VV-4) \displaystyle\frac{\partial\mathbf{x}^TA}{\partial\mathbf{x}}=A
使用定義,

\displaystyle  \left(\frac{\partial \mathbf{x}^TA}{\partial\mathbf{x}}\right)_{ij}=\frac{\partial \sum_{k}x_ka_{kj}}{\partial x_i}=\sum_ka_{kj}\frac{\partial x_k}{\partial x_i}=\sum_{k}a_{kj}\delta_{ik}=a_{ij}=(A)_{ij}

或者,使用 (VV-3),

\displaystyle  \frac{\partial \mathbf{x}^TA}{\partial\mathbf{x}}  =\frac{\partial A^T\mathbf{x}}{\partial\mathbf{x}}=(A^T)^T=A

(VV-5) \displaystyle\frac{\partial a\mathbf{u}}{\partial\mathbf{x}}=a\frac{\partial\mathbf{u}}{\partial\mathbf{x}}
使用定義,

\displaystyle  \left(\frac{\partial a\mathbf{u}}{\partial\mathbf{x}}\right)_{ij}=\frac{\partial au_j}{\partial x_i}=a\frac{\partial u_j}{\partial{x}_i}=a\left(\frac{\partial\mathbf{u}}{\partial\mathbf{x}}\right)_{ij}=\left(a\frac{\partial\mathbf{u}}{\partial\mathbf{x}}\right)_{ij}

(VV-6) \displaystyle\frac{\partial A\mathbf{u}}{\partial\mathbf{x}}=\frac{\partial\mathbf{u}}{\partial\mathbf{x}}A^T
使用定義,

\displaystyle\begin{aligned}  \left(\frac{\partial A\mathbf{u}}{\partial\mathbf{x}}\right)_{ij}&=\frac{\partial \sum_{k}a_{jk}u_k}{\partial x_i}=\sum_ka_{jk}\frac{\partial u_k}{\partial x_i}\\  &=\sum_k\left(\frac{\partial\mathbf{u}}{\partial\mathbf{x}}\right)_{ik}(A^T)_{kj}=\left(\frac{\partial\mathbf{u}}{\partial\mathbf{x}}A^T\right)_{ij}.\end{aligned}

(VV-7) \displaystyle\frac{\partial(\mathbf{u}+\mathbf{v})}{\partial\mathbf{x}}=\frac{\partial\mathbf{u}}{\partial\mathbf{x}}+\frac{\partial\mathbf{v}}{\partial\mathbf{x}}
使用定義,

\displaystyle\begin{aligned}  \left(\frac{\partial (\mathbf{u}+\mathbf{v})}{\partial\mathbf{x}}\right)_{ij}&=\frac{\partial(u_j+v_j)}{\partial x_i}=\frac{\partial u_j}{\partial x_i}+\frac{\partial v_j}{\partial x_i}\\  &=\left(\frac{\partial\mathbf{u}}{\partial\mathbf{x}}\right)_{ij}+\left(\frac{\partial\mathbf{v}}{\partial\mathbf{x}}\right)_{ij}=\left(\frac{\partial\mathbf{u}}{\partial\mathbf{x}}+\frac{\partial\mathbf{v}}{\partial\mathbf{x}}\right)_{ij}.\end{aligned}

(VV-8) \displaystyle\frac{\partial\mathbf{f}(\mathbf{u})}{\partial\mathbf{x}}=\frac{\partial\mathbf{u}}{\partial\mathbf{x}}\frac{\partial\mathbf{f}(\mathbf{u})}{\partial\mathbf{u}}
使用定義與鏈式法則,

\displaystyle\begin{aligned}  \left(\frac{\partial\mathbf{f}(\mathbf{u})}{\partial\mathbf{x}}\right)_{ij}  &=\frac{\partial f_j(\mathbf{u})}{\partial x_i}=\frac{\partial\mathbf{u}}{\partial  x_i}\frac{\partial f_j}{\partial\mathbf{u}}=\sum_k\frac{\partial u_k}{\partial x_i}\frac{\partial f_j}{\partial u_k}\\  &=\sum_k\left(\frac{\partial\mathbf{u}}{\partial\mathbf{x}}\right)_{ik}\left(\frac{\partial\mathbf{f}(\mathbf{u})}{\partial\mathbf{u}}\right)_{kj}=\left(\frac{\partial\mathbf{u}}{\partial\mathbf{x}}\frac{\partial\mathbf{f}(\mathbf{u})}{\partial\mathbf{u}}\right)_{ij}.  \end{aligned}

 
純量—向量恆等式

假設純量 a、向量 \mathbf{a}, \mathbf{b} 和矩陣 A 都不是 \mathbf{x} 的函數;f(u)u(\mathbf{x})v(\mathbf{x}) 是可導函數。

(SV-1) \displaystyle\frac{\partial{a}}{\partial\mathbf{x}}=\mathbf{0}
使用 (VV-1),將向量 \mathbf{a} 以純量 a 取代。

(SV-2) \displaystyle\frac{\partial au}{\partial\mathbf{x}}=a\frac{\partial{u}}{\partial\mathbf{x}}
使用 (VV-5),將向量函數 \mathbf{u}(\mathbf{x})u(\mathbf{x}) 取代。

(SV-3) \displaystyle\frac{\partial(u+v)}{\partial\mathbf{x}}=\frac{\partial u}{\partial\mathbf{x}}+\frac{\partial v}{\partial\mathbf{x}}
使用 (VV-7),將向量函數 \mathbf{u}(\mathbf{x})\mathbf{v}(\mathbf{x}) 分別以 u(\mathbf{x})v(\mathbf{x}) 取代。

(SV-4) \displaystyle\frac{\partial uv}{\partial\mathbf{x}}=u\frac{\partial v}{\partial\mathbf{x}}+v\frac{\partial u}{\partial\mathbf{x}}
使用定義,

\displaystyle\begin{aligned}  \left(\frac{\partial uv}{\partial\mathbf{x}}\right)_i&=\frac{\partial uv}{\partial x_i}=u\frac{\partial v}{\partial x_i}+v\frac{\partial u}{\partial x_i}=u\left(\frac{\partial v}{\partial\mathbf{x}}\right)_i+v\left(\frac{\partial u}{\partial\mathbf{x}}\right)_i\\  &=\left(u\frac{\partial v}{\partial\mathbf{x}}+v\frac{\partial u}{\partial\mathbf{x}}\right)_i.\end{aligned}

(SV-5) \displaystyle\frac{\partial f(u)}{\partial\mathbf{x}}=\frac{\partial f(u)}{\partial u}\frac{\partial u}{\partial\mathbf{x}}
使用 (VV-8),將向量函數 \mathbf{f}(\mathbf{u})f(u) 取代。

(SV-6) \displaystyle\frac{\partial\mathbf{u}^T\mathbf{v}}{\partial\mathbf{x}}=\frac{\partial\mathbf{u}}{\partial\mathbf{x}}\mathbf{v}+\frac{\partial\mathbf{v}}{\partial\mathbf{x}}\mathbf{u}
使用 (SV-4),

\displaystyle\begin{aligned}  \frac{\partial\mathbf{u}^T\mathbf{v}}{\partial\mathbf{x}}&=\frac{\partial\sum_ku_kv_k}{\partial \mathbf{x}}=\sum_k\frac{\partial u_kv_k}{\partial\mathbf{x}}=\sum_k\left(u_k\frac{\partial v_k}{\partial\mathbf{x}}+v_k\frac{\partial u_k}{\partial\mathbf{x}}\right)\\  &=\sum_k\frac{\partial v_k}{\partial\mathbf{x}}u_k+\sum_k\frac{\partial u_k}{\partial\mathbf{x}}v_k=\frac{\partial\mathbf{v}}{\partial\mathbf{x}}\mathbf{u}+\frac{\partial\mathbf{u}}{\partial\mathbf{x}}\mathbf{v}.\end{aligned}

(SV-7) \displaystyle\frac{\partial\mathbf{u}^TA\mathbf{v}}{\partial\mathbf{x}}=\frac{\partial\mathbf{u}}{\partial\mathbf{x}}A\mathbf{v}+\frac{\partial\mathbf{v}}{\partial\mathbf{x}}A^T\mathbf{u}
使用 (SV-6) 和 (VV-6),

\displaystyle  \frac{\partial\mathbf{u}^TA\mathbf{v}}{\partial\mathbf{x}}=\frac{\partial\mathbf{u}^T(A\mathbf{v})}{\partial\mathbf{x}}=\frac{\partial\mathbf{u}}{\partial\mathbf{x}}(A\mathbf{v})+\frac{\partial(A\mathbf{v})}{\partial\mathbf{x}}\mathbf{u}=\frac{\partial\mathbf{u}}{\partial\mathbf{x}}A\mathbf{v}+\frac{\partial\mathbf{v}}{\partial\mathbf{x}}A^T\mathbf{u}

(SV-8) \displaystyle\frac{\partial\mathbf{a}^T\mathbf{x}}{\partial\mathbf{x}}=\frac{\partial\mathbf{x}^T\mathbf{a}}{\partial\mathbf{x}}=\mathbf{a}
使用 (SV-6),(VV-1) 和 (VV-2),

\displaystyle  \frac{\partial\mathbf{a}^T\mathbf{x}}{\partial\mathbf{x}}=\frac{\partial\mathbf{a}}{\partial\mathbf{x}}\mathbf{x}+\frac{\partial\mathbf{x}}{\partial\mathbf{x}}\mathbf{a}=0\mathbf{x}+I\mathbf{a}=\mathbf{a}

(SV-9) \displaystyle\frac{\partial\mathbf{b}^TA\mathbf{x}}{\partial\mathbf{x}}=A^T\mathbf{b}
使用 (SV-8),將 \mathbf{a}A^T\mathbf{b} 取代。

(SV-10) \displaystyle\frac{\partial\mathbf{x}^TA\mathbf{x}}{\partial\mathbf{x}}=(A+A^T)\mathbf{x}
使用 (SV-7) 和 (VV-2),

\displaystyle  \frac{\partial\mathbf{x}^TA\mathbf{x}}{\partial\mathbf{x}}=\frac{\partial\mathbf{x}}{\partial\mathbf{x}}A\mathbf{x}+\frac{\partial\mathbf{x}}{\partial\mathbf{x}}A^T\mathbf{x}=IA\mathbf{x}+IA^T\mathbf{x}=(A+A^T)\mathbf{x}

(SV-11) \displaystyle\frac{\partial\mathbf{x}^T\mathbf{x}}{\partial\mathbf{x}}=2\mathbf{x}
使用 (SV-10),將 AI 取代。

(SV-12) \displaystyle\frac{\partial\mathbf{a}^T\mathbf{x}\mathbf{x}^T\mathbf{b}}{\partial\mathbf{x}}=(\mathbf{a}\mathbf{b}^T+\mathbf{b}\mathbf{a}^T)\mathbf{x}
使用 (SV4) 和 (SV8),

\displaystyle\begin{aligned}  \frac{\partial\mathbf{a}^T\mathbf{x}\mathbf{x}^T\mathbf{b}}{\partial\mathbf{x}}&=\frac{\partial(\mathbf{a}^T\mathbf{x})(\mathbf{x}^T\mathbf{b})}{\partial\mathbf{x}}=\mathbf{a}^T\mathbf{x}\frac{\partial\mathbf{x}^T\mathbf{b}}{\partial\mathbf{x}}+\mathbf{x}^T\mathbf{b}\frac{\partial\mathbf{a}^T\mathbf{x}}{\partial\mathbf{x}}\\  &=(\mathbf{a}^T\mathbf{x})\mathbf{b}+(\mathbf{x}^T\mathbf{b})\mathbf{a}=\mathbf{b}(\mathbf{a}^T\mathbf{x})+\mathbf{a}(\mathbf{b}^T\mathbf{x})\\  &=(\mathbf{b}\mathbf{a}^T+\mathbf{a}\mathbf{b}^T)\mathbf{x}.\end{aligned}

(SV-13) \displaystyle\frac{\partial^2\mathbf{x}^TA\mathbf{x}}{\partial\mathbf{x}^2}=A+A^T
有些作者將二次求導 \displaystyle\frac{\partial^2}{\partial\mathbf{x}^2} 寫為 \displaystyle\frac{\partial^2}{\partial\mathbf{x}\partial\mathbf{x}^T}。使用 (SV-10) 和 (VV-3),

\displaystyle\frac{\partial^2\mathbf{x}^TA\mathbf{x}}{\partial\mathbf{x}^2}=\frac{\partial}{\partial\mathbf{x}}\left(\frac{\partial\mathbf{x}^TA\mathbf{x}}{\partial\mathbf{x}}\right)=\frac{\partial(A+A^T)\mathbf{x}}{\partial\mathbf{x}}=(A+A^T)^T=A^T+A

 
在線性代數中,最小平方近似問題是純量對向量求導的一個經典應用。考慮

\displaystyle  \max_{\mathbf{x}}\Vert A\mathbf{x}-\mathbf{b}\Vert^2

其中 Am\times n 階係數矩陣,\mathbf{b}m 維常數向量,\mathbf{x}n 維未知向量。寫出

\displaystyle\begin{aligned}  \Vert A\mathbf{x}-\mathbf{b}\Vert^2&=(A\mathbf{x}-\mathbf{b})^T(A\mathbf{x}-\mathbf{b})\\  &=\mathbf{x}^TA^TA\mathbf{x}-\mathbf{x}^TA^T\mathbf{b}-\mathbf{b}^TA\mathbf{x}+\mathbf{b}^T\mathbf{b}.  \end{aligned}

利用 (SV-1),(SV-8) 和 (SV-10),

\displaystyle\begin{aligned}  \frac{\partial \Vert A\mathbf{x}-\mathbf{b}\Vert^2}{\partial \mathbf{x}}&=\frac{\partial\mathbf{x}^TA^TA\mathbf{x}}{\partial\mathbf{x}}-\frac{\partial\mathbf{x}^TA^T\mathbf{b}}{\partial\mathbf{x}}-\frac{\partial\mathbf{b}^TA\mathbf{x}}{\partial\mathbf{x}}+\frac{\partial\mathbf{b}^T\mathbf{b}}{\partial\mathbf{x}}\\  &=(A^TA+(A^TA)^T)\mathbf{x}-A^T\mathbf{b}-A^T\mathbf{b}\\  &=2A^TA\mathbf{x}-2A^T\mathbf{b}.  \end{aligned}

設上式等於零向量,即得正規方程式 (normal equation) A^TA\mathbf{x}=A^T\mathbf{b}。相關討論請見“從線性變換解釋最小平方近似”。

 
向量—純量恆等式

假設純量 a、向量 \mathbf{a} 和矩陣 A 都不是 x 的函數;f(\mathbf{u})\mathbf{u}(x)\mathbf{v}(x) 是可導函數。

(VS-1) \displaystyle\frac{\partial\mathbf{a}}{\partial x}=\mathbf{0}^T
使用 (VV-1),將向量 \mathbf{x} 以純量 x 取代。

(VS-2) \displaystyle\frac{\partial a\mathbf{u}}{\partial x}=a\frac{\partial\mathbf{u}}{\partial x}
使用 (VV-5),將向量 \mathbf{x} 以純量 x 取代。

(VS-3) \displaystyle\frac{\partial A\mathbf{u}}{\partial x}=\frac{\partial\mathbf{u}}{\partial x}A^T
使用 (VV-6),將向量 \mathbf{x} 以純量 x 取代。

(VS-4) \displaystyle\frac{\partial(\mathbf{u}+\mathbf{v})}{\partial x}=\frac{\partial\mathbf{u}}{\partial x}+\frac{\partial\mathbf{v}}{\partial x}
使用 (VV-7),將向量 \mathbf{x} 以純量 x 取代。

(VS-5) \displaystyle\frac{\partial\mathbf{u}^T}{\partial x}=\left(\frac{\partial\mathbf{u}}{\partial x}\right)^T
因為 \partial/\partial x(\cdot)^T 都是線性函數,故可置換。

(VS-6) \displaystyle\frac{\partial f(\mathbf{u})}{\partial x}=\frac{\partial\mathbf{u}}{\partial x}\frac{\partial f(\mathbf{u})}{\partial\mathbf{u}}
使用 (VV-8),將向量 \mathbf{x} 以純量 x 取代,將向量函數 \mathbf{f}(\mathbf{u})f(\mathbf{u}) 取代。

 
純量—矩陣恆等式

假設純量 a、向量 \mathbf{a}\mathbf{b} 都不是 X 的函數;f(u)u(X)v(X) 是可導函數。恆等式 (SM-1) 至 (SM-5) 與前述恆等式類似,證明省略。

(SM-1) \displaystyle\frac{\partial a}{\partial X}=0

(SM-2) \displaystyle\frac{\partial au}{\partial X}=a\frac{\partial u}{\partial X}

(SM-3) \displaystyle\frac{\partial (u+v)}{\partial X}=\frac{\partial u}{\partial X}+\frac{\partial v}{\partial X}

(SM-4) \displaystyle\frac{\partial uv}{\partial X}=u\frac{\partial v}{\partial X}+v\frac{\partial u}{\partial X}

(SM-5) \displaystyle\frac{\partial f(u)}{\partial X}=\frac{\partial f(u)}{\partial u}\frac{\partial u}{\partial X}

(SM-6) \displaystyle\frac{\partial \mathbf{a}^TX\mathbf{b}}{\partial X}=\mathbf{a}\mathbf{b}^T
使用定義,

\displaystyle\begin{aligned}  \left(\frac{\partial \mathbf{a}^TX\mathbf{b}}{\partial X}\right)_{ij}&=\frac{\partial\sum_k\sum_la_{k}x_{kl}b_{l}}{\partial x_{ij}}=\sum_{k}\sum_la_kb_l\frac{\partial x_{kl}}{\partial x_{ij}}\\  &=\sum_{k}\sum_la_kb_l\delta_{ik}\delta_{jl}=a_ib_j=\left(\mathbf{a}\mathbf{b}^T\right)_{ij}.  \end{aligned}

(SM-7) \displaystyle\frac{\partial \mathbf{a}^TX^T\mathbf{b}}{\partial X}=\mathbf{b}\mathbf{a}^T
對純量 \mathbf{a}^TX^T\mathbf{b} 取轉置,使用 (SM-6),

\displaystyle  \frac{\partial \mathbf{a}^TX^T\mathbf{b}}{\partial X}=\frac{\partial(\mathbf{a}^TX^T\mathbf{b})^T}{\partial X}=\frac{\partial \mathbf{b}^TX\mathbf{a}}{\partial X}=\mathbf{b}\mathbf{a}^T

(SM-8) \displaystyle\frac{\partial \mathbf{a}^TX\mathbf{a}}{\partial X}=\frac{\partial \mathbf{a}^TX^T\mathbf{a}}{\partial X}=\mathbf{a}\mathbf{a}^T
使用 (SM-6) 和 (SM-7),將 \mathbf{b}\mathbf{a} 替換。

(SM-9) \displaystyle\frac{\partial \mathbf{a}^TX^TX\mathbf{b}}{\partial X}=X(\mathbf{a}\mathbf{b}^T+\mathbf{b}\mathbf{a}^T)
使用定義,

\displaystyle\begin{aligned}  \left(\frac{\partial \mathbf{a}^TX^TX\mathbf{b}}{\partial X}\right)_{ij}&=\frac{\partial\sum_k\sum_l\sum_pa_{k}x_{pk}x_{pl}b_{l}}{\partial x_{ij}}\\  &=\sum_{k}\sum_l\sum_pa_kb_l\frac{\partial x_{pk}x_{pl}}{\partial x_{ij}}\\  &=\sum_{k}\sum_l\sum_pa_kb_l\left(x_{pk}\frac{\partial x_{pl}}{\partial x_{ij}}+x_{pl}\frac{\partial x_{pk}}{\partial x_{ij}}\right)\\  &=\sum_{k}\sum_l\sum_pa_kb_l(x_{pk}\delta_{ip}\delta_{jl}+x_{pl}\delta_{ip}\delta_{jk})\\  &=\sum_kx_{ik}a_kb_j+\sum_lx_{il}b_la_j=\left(X\mathbf{a}\mathbf{b}^T\right)_{ij}+\left(X\mathbf{b}\mathbf{a}^T\right)_{ij}\\  &=(X(\mathbf{a}\mathbf{b}^T+\mathbf{b}\mathbf{a}^T))_{ij}.  \end{aligned}

另一個快捷的作法將 X_c 視為一個常數矩陣,使用微分乘法規則,(SM-6) 和 (SM-7),

\displaystyle\begin{aligned}  \frac{\partial \mathbf{a}^TX^TX\mathbf{b}}{\partial X}&=\frac{\partial \mathbf{a}^TX_c^TX\mathbf{b}}{\partial X}+\frac{\partial \mathbf{a}^TX^TX_c\mathbf{b}}{\partial X}\\  &=\frac{\partial (X_c\mathbf{a})^TX\mathbf{b}}{\partial X}+\frac{\partial \mathbf{a}^TX^T(X_c\mathbf{b})}{\partial X}\\  &=X_c\mathbf{a}\mathbf{b}^T+X_c\mathbf{b}\mathbf{a}^T\\  &=X_c(\mathbf{a}\mathbf{b}^T+\mathbf{b}\mathbf{a}^T).  \end{aligned}

 
矩陣—純量恆等式

假設純量 a、矩陣 AB 都不是 x 的函數;U(x)V(x) 是可導函數。恆等式 (MS-1) 至 (MS-3) 與前述恆等式類似,證明從略。

(MS-1) \displaystyle\frac{\partial A}{\partial x}=0

(MS-2) \displaystyle\frac{\partial aU}{\partial x}=a\frac{\partial U}{\partial x}

(MS-3) \displaystyle\frac{\partial (U+V)}{\partial x}=\frac{\partial U}{\partial x}+\frac{\partial V}{\partial x}

(MS-4) \displaystyle\frac{\partial (UV)}{\partial x}=U\frac{\partial V}{\partial x}+\frac{\partial U}{\partial x}V
使用定義,

\displaystyle\begin{aligned}  \left(\frac{\partial UV}{\partial x}\right)_{ij}&=\frac{\partial\sum_ku_{ik}v_{kj}}{\partial x}=\sum_k\frac{\partial u_{ik}v_{kj}}{\partial x}\\  &=\sum_ku_{ik}\frac{\partial v_{kj}}{\partial x}+\sum_k\frac{\partial u_{ik}}{\partial x}v_{kj}\\  &=\sum_k(U)_{ik}\left(\frac{\partial V}{\partial x}\right)_{kj}+\sum_k\left(\frac{\partial U}{\partial x}\right)_{ik}(V)_{kj}\\  &=U\frac{\partial V}{\partial x}+\frac{\partial U}{\partial x}V.  \end{aligned}

(MS-5) \displaystyle\frac{\partial AUB}{\partial x}=A\frac{\partial U}{\partial x}B
使用定義,

\displaystyle\begin{aligned}  \left(\frac{\partial AUB}{\partial x}\right)_{ij}&=\frac{\partial\sum_k\sum_la_{ik}u_{kl}b_{lj}}{\partial x}=\sum_k\sum_la_{ik}\frac{\partial u_{kl}}{\partial x}b_{lj}\\  &=\sum_k\sum_l\left(A\right)_{ik}\left(\frac{\partial U}{\partial x}\right)_{kl}\left(B\right)_{lj}=\left(A\frac{\partial U}{\partial x}B\right)_{ij}.  \end{aligned}

(MS-6) \displaystyle\frac{\partial U^{-1}}{\partial x}=-U^{-1}\frac{\partial U}{\partial x}U^{-1}
考慮 UU^{-1}=I,使用 (MS-1) 和 (MS-4),

\displaystyle\begin{aligned}  \frac{\partial UU^{-1}}{\partial x}&=\frac{\partial I}{\partial x}=0\\  &=U\frac{\partial U^{-1}}{\partial x}+\frac{\partial U}{\partial x}U^{-1}.  \end{aligned}

上式左乘 U^{-1},即得證。

(MS-7) \displaystyle\frac{\partial e^{xA}}{\partial x}=Ae^{xA}=e^{xA}A
根據矩陣指數定義 (見“矩陣指數”),

\displaystyle  e^{xA}=I+xA+\frac{1}{2}(xA)^2+\cdots

使用 (MS-2) 和 (MS-3),

\displaystyle\begin{aligned}  \frac{\partial e^{xA}}{\partial x}&=\frac{\partial\sum_{k=0}^\infty(k!)^{-1}(xA)^k}{\partial x}=\sum_{k=0}^\infty\frac{1}{k!}\frac{\partial x^kA^k}{\partial x}\\  &=\sum_{k=1}^\infty\frac{1}{(k-1)!}x^{k-1}A^k=Ae^{xA}=e^{xA}A.\end{aligned}

 
除了本文介紹的基本型態矩陣導數,還有許多涉及跡數 (trace) 和行列式的矩陣導數恆等式。不過這些恆等式的推導程序較為繁瑣,日後再另文詳細解說。

 
參考來源:
[1] 維基百科:Matrix Calculus
[2] 本文選取的恆等式主要來自The Matrix CookbookThe Matrix Reference Manual

繼續閱讀:
This entry was posted in 特別主題 and tagged , , , , , . Bookmark the permalink.

31 Responses to 矩陣導數

  1. Watt Lin says:

    請問老師:
    (1) 這次談到的題材,與「流形」(Manifold)有沒有關聯?
    (2) 多變量可導函數 f(x1, x2, x3, …….., xn) 的散度(divergence)及旋度(curl),有沒有定義?

    • ccjou says:

      本文主要內容是以矩陣(向量可以看作nx1階矩陣)來表達一次或二次多變量函數的導數(或將許多單變量函數表示為矩陣),這與流形沒有甚麼關係。散度與旋度是向量分析 (vector calculus, vector analysis) 的內容,向量分析是一個專門領域,與線性代數的矩陣運算有很大的不同。請參考維基百科介紹:
      http://en.wikipedia.org/wiki/Vector_calculus

  2. 陳威丞 says:

    http://zh.wikipedia.org/zh-tw/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%E7%A9%BA%E9%97%B4
    老師~~
    這個網頁文章中的實數座標空間的部分裡面所描述的標準基那裏有一個算式我搞不太清楚~~
    大概是在第十行的式子部分,裡頭說X=summation各元素乘上標準基,很奇怪的是X不是應該是一個座標嗎~???
    為什麼又可以表示一個純量的和,兩者是在定義上有甚麼不一樣嗎~??
    還是有甚麼地方我看錯或者是搞混了~~??

  3. 張盛東 says:

    老師,我在internet上看到幾種對矩陣函數關於矩陣的導數的定義(dF(x)/dX),這裡的X是矩陣, F(X)是一矩陣函數。不知老師對矩陣函數的關於矩陣的導數是否有研究?

  4. abc says:

    請問一下(∂xAx^T)/∂x 及 ∂xA/∂x怎麼計算?

  5. 陈宇 says:

    请问老师的联系方式,个人有一些问题请教。

  6. kingexcel says:

    Hessian 公式可能寫錯了,應該要轉置一下,如果是可微的就沒關系,但是形勢上最好是對應

  7. 徐君 says:

    Jacobian 形式,根據 \mathbf{y}\mathbf{x}^T 將結果置於一 m\times n 階矩陣,如下:

    \displaystyle  \left(\frac{\partial\mathbf{y}}{\partial\mathbf{x}}\right)_{ij}\equiv\frac{\partial y_i}  {\partial x_j},~~i=1,\ldots,m,~~j=1,\ldots,n
    所以后面(VV-*)里的i和j全部反了。于是(VV-3) \displaystyle\frac{\partial A\mathbf{x}}{\partial\mathbf{x}}=A而不是A^T

  8. 徐君 says:

    我明白了,原来是采用分母佈局。

  9. student says:

    請問老師 ∂a^T*X*X^T*b)/∂X = (a*b^T+b*a^T)*X 怎麼思考比較好呢?
    是否只能從定義推導? 謝謝

  10. geen says:

    老師您好
    想問關於最小平方近似的那個微分,最後面 (A^T*A + (A*A^T)^T) 的地方,如果假定A = A^T,最後可以等於 2(A^T*A)
    但通常情況之下A 不等於 A^T,想請問此時最後的結論還會一樣嗎?

  11. Tengerye says:

    The result of VV-1 should be $\mathbf{0}$ (vector) instead of 0 scalar.

  12. Tengerye says:

    The second equation of Eq.(VV-4) is incorrect. It should be \frac{\partial\mathbf{x}^T \mathbf{A}}{\partial \mathbf{x}}=\frac{\partial\mathbf{A}^T\mathbf{x}}{\partial \mathbf{x}}=(\mathbf{A}^T)^T=\mathbf{A}.

  13. Pingback: Mathematics in Machine Learning – Math.py

  14. Pingback: 线代随笔11 | 大专栏

  15. zachary says:

    公式SV-12
    b(a^{T}x)+a(b^{T}x)=(ab^{T}+ba^{T})x
    不瞭解,為什麼x可以直接提出來

    • Zachary says:

      補充說明疑問的地方;因為向量沒有乘法結合律,即 a(bc) != (ab)c,所以對x可以提出來有疑問。

      • ccjou says:

        如果你將向量都看作矩陣, 便會發現它們確實
        滿足乘法結合律。在線性代數的世界中,向量不過是一種特殊尺寸的矩陣。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s