矩陣微分布局

【注】參考邱錫鵬《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》。

1. 簡介

在數(shù)學(xué)中, 矩陣微積分是多元微積分的一種特殊表達(dá),尤其是在矩陣空間上進(jìn)行討論的時(shí)候。它把單個函數(shù)對多個變量或者多元函數(shù)對單個變量的偏導(dǎo)數(shù)寫成向量和矩陣的形式,使其可以被當(dāng)成一個整體被處理。

2. 偏導(dǎo)數(shù)

矩陣微積分的表示通常有兩種符號約定:

  • 分子布局( Numerator Layout)
  • 分母布局( Denominator Layout)

兩者的區(qū)別是一個標(biāo)量關(guān)于一個向量的導(dǎo)數(shù)是寫成行向量還是列向量。

【注】向量一般未特殊說明都是用列向量表示。

2.1 標(biāo)量關(guān)于向量的偏導(dǎo)數(shù)

對于 M 維向量 \boldsymbol{x} \in \mathbb{R}^M 和函數(shù) y = f(\boldsymbol{x } ) \in \mathbb{R },則 y 關(guān)于 \boldsymbol{x } 的偏導(dǎo)數(shù)為:

  • 分母布局:\frac{\partial y}{\partial \boldsymbol{x } } = [ \frac{\partial y}{\partial x_1 }, \cdots, \frac{\partial y }{\partial x_M } ]^T \in \mathbb{R }^{M \times 1 }

  • 分子布局:\frac{\partial y}{\partial \boldsymbol{x } } = [ \frac{\partial y}{\partial x_1 }, \cdots, \frac{\partial y}{\partial x_M } ] \in \mathbb{R}^{1 \times M }

在分母布局中,\frac{\partial y }{\partial \boldsymbol{x } } 為列向量;而在分子布局中,\frac{\partial y }{\partial \boldsymbol{x } } 為行向量。

2.2 向量關(guān)于標(biāo)量的偏導(dǎo)數(shù)

對于標(biāo)量 x \in \mathbb{R } 和函數(shù) \boldsymbol{y } = f(x) \in \mathbb{R }^N,則 \boldsymbol{y } 關(guān)于 x 的偏導(dǎo)數(shù)為:

  • 分母布局:\frac{\partial{\boldsymbol{y} } }{\partial x } = [ \frac{\partial y_1 }{\partial x }, \cdots, \frac{\partial y_N }{\partial x } ] \in \mathbb{R }^{1 \times N }

  • 分子布局:\frac{\partial{\boldsymbol{y } } }{\partial x } = [ \frac{\partial y_1 }{\partial x }, \cdots, \frac{\partial y_N }{\partial x } ]^T \in \mathbb{R }^{N \times 1 }

在分母布局中,\frac{\partial \boldsymbol{y } }{\partial x } 為行向量;而在分子布局中,\frac{\partial \boldsymbol{y } }{\partial x } 為列向量。

2.3 向量關(guān)于向量的偏導(dǎo)數(shù)

對于 M 維向量 \boldsymbol{x } \in \mathbb{R }^M 和函數(shù) \boldsymbol{y } = f(\boldsymbol{x }) \in \mathbb{R }^N,則 f(\boldsymbol{x }) 關(guān)于 \boldsymbol{x } 的偏導(dǎo)數(shù)為:

  • 分母布局:\frac{\partial{f(\boldsymbol{x }) } }{\partial \boldsymbol{x } } = \left[ \begin{matrix} \frac{\partial y_1 }{\partial x_1 } & \cdots & \frac{\partial y_N }{\partial x_1 } \\ \vdots & \ddots & \vdots \\ \frac{\partial y_1 }{\partial x_M } & \cdots & \frac{\partial y_N }{\partial x_M } \end{matrix} \right] = \boldsymbol{J }(f(\boldsymbol{x }))^T \in \mathbb{R }^{M \times N }

  • 分子布局:\frac{\partial{f(\boldsymbol{x }) } }{\partial \boldsymbol{x } } = \left[ \begin{matrix} \frac{\partial y_1 }{\partial x_1 } & \cdots & \frac{\partial y_1 }{\partial x_M } \\ \vdots & \ddots & \vdots \\ \frac{\partial y_N }{\partial x_1 } & \cdots & \frac{\partial y_N }{\partial x_M } \end{matrix} \right] = \boldsymbol{J }(f(\boldsymbol{x })) \in \mathbb{R }^{N \times M }

對于 M 維向量 \boldsymbol{x } \in \mathbb{R }^M 和函數(shù) y = f(\boldsymbol{x }) \in \mathbb{R },則 f(\boldsymbol{x }) 關(guān)于 \boldsymbol{x } 的二階偏導(dǎo)數(shù)為:

  • 分母布局 = 分子布局:\frac{\partial^2 f(\boldsymbol{x }) }{\partial \boldsymbol{x }^2 } = \left[ \begin{matrix} \frac{\partial^2 y }{\partial x_1^2 } & \cdots & \frac{\partial^2 y }{\partial x_1 \partial x_M } \\ \vdots & \ddots & \vdots \\ \frac{\partial^2 y }{\partial x_M \partial x_1 } & \cdots & \frac{\partial^2 y }{\partial x_M^2 } \end{matrix} \right] = \boldsymbol{H }(f(\boldsymbol{x })) \in \mathbb{R }^{M \times M }

【注】\boldsymbol{J }\boldsymbol{H } 分別為 Jacobian 矩陣和 Hessian 矩陣。

3. 偏導(dǎo)數(shù)法則

以下偏導(dǎo)數(shù)法則僅以分母布局為例:

3.1 加減法則

\boldsymbol{x } \in \mathbb{R }^M, \boldsymbol{y } = f(\boldsymbol{x }) \in \mathbb{R }^N, \boldsymbol{z } = g(\boldsymbol{x }) \in \mathbb{R }^N,則 \frac{\partial (\boldsymbol{y }+\boldsymbol{z }) }{\partial \boldsymbol{x } } = \frac{\partial \boldsymbol{y} }{\partial \boldsymbol{x} } + \frac{\partial \boldsymbol{z } }{\partial \boldsymbol{x } } \in \mathbb{R }^{M \times N }

3.2 乘法法則

  • \boldsymbol{x } \in \mathbb{R }^M, \boldsymbol{y } = f(\boldsymbol{x }) \in \mathbb{R }^N, \boldsymbol{z } = g(\boldsymbol{x }) \in \mathbb{R }^N,則 \frac{\partial \boldsymbol{y }^T \boldsymbol{z } }{\partial \boldsymbol{x } } = \frac{\partial \boldsymbol{y } }{\partial \boldsymbol{x } } \boldsymbol{z } + \frac{\partial \boldsymbol{z } }{\partial \boldsymbol{x } } \boldsymbol{y } \in \mathbb{R }^M

  • \boldsymbol{x } \in \mathbb{R }^M, \boldsymbol{y } = f(\boldsymbol{x }) \in \mathbb{R }^S, \boldsymbol{z } = g(\boldsymbol{x }) \in \mathbb{R }^T, A \in \mathbb{R }^{S \times T }\boldsymbol{x } 無關(guān),則 \frac{\partial \boldsymbol{y }^T \boldsymbol{Az } }{\partial \boldsymbol{x } } = \frac{\partial \boldsymbol{y } }{\partial \boldsymbol{x } } \boldsymbol{A } \boldsymbol{z } + \frac{\partial \boldsymbol{z } }{\partial \boldsymbol{x } } \boldsymbol{A }^T \boldsymbol{y } \in \mathbb{R }^M

  • \boldsymbol{x } \in \mathbb{R }^M, y = f(\boldsymbol{x }) \in \mathbb{R }, \boldsymbol{z } = g(\boldsymbol{x }) \in \mathbb{R }^N,則 \frac{\partial y \boldsymbol{z } }{\partial \boldsymbol{x } } = y \frac{\partial \boldsymbol{z} }{\partial \boldsymbol{x} } + \frac{\partial y }{\partial \boldsymbol{x} } \boldsymbol{z }^T \in \mathbb{R }^{M \times N }

3.3 鏈?zhǔn)椒▌t

  • x \in \mathbb{R }, \boldsymbol{y } = g(x) \in \mathbb{R }^M, \boldsymbol{z } = f(\boldsymbol{y }) \in \mathbb{R }^N,則 \frac{\partial \boldsymbol{z } }{\partial x } = \frac{\partial \boldsymbol{y } }{\partial x } \frac{\partial \boldsymbol{z } }{\partial \boldsymbol{y } } \in \mathbb{R }^{1 \times N }

  • \boldsymbol{x } \in \mathbb{R }^M, \boldsymbol{y } = g(\boldsymbol{x }) \in \mathbb{R }^K, \boldsymbol{z } = f(\boldsymbol{y }) \in \mathbb{R }^N,則 \frac{\partial \boldsymbol{z } }{\partial \boldsymbol{x } } = \frac{\partial \boldsymbol{y } }{\partial \boldsymbol{x } } \frac{\partial \boldsymbol{z } }{\partial \boldsymbol{y } } \in \mathbb{R }^{M \times N }

  • \boldsymbol{X } \in \mathbb{R }^{M \times N } 為矩陣,\boldsymbol{y } = g(\boldsymbol{X }) \in \mathbb{R }^K, z = f(\boldsymbol{y }),則 \frac{\partial z }{\partial x_{ij } } = \frac{\partial \boldsymbol{y } }{\partial x_{ij } } \frac{\partial z }{\partial \boldsymbol{y } } \in \mathbb{R }

4. 附錄

4.1 記憶小技巧:

  • 可以把「標(biāo)量對向量」和「向量對標(biāo)量」求導(dǎo)中的標(biāo)量看作是一維的行向量,而向量則為一般理解的列向量,則分母/分子布局就表示求導(dǎo)后的向量的布局是跟求導(dǎo)式的分母還是分子保持一致。
  1. 「標(biāo)量對向量」求導(dǎo):分母布局結(jié)果為列向量,分子布局結(jié)果為行向量。
  2. 「向量對標(biāo)量」求導(dǎo):分母布局結(jié)果為行向量,分子布局結(jié)果為列向量。
  • 對于「向量對向量」求導(dǎo):既可以看作是分子向量中的每個標(biāo)量元素對分母向量求導(dǎo),也可以看作是分母向量對分子向量中的每個標(biāo)量元素求導(dǎo),然后便可以使用上一條記憶方法。最終將每個求導(dǎo)的結(jié)果向量拼接成一個矩陣,即得到最終的分母/分子布局結(jié)果。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容