在標量、向量和矩陣的求導過程中一定要知道最后結果的形狀。
這里總結幾個常見的求導形式:
前言:
最基礎最重要的,標量對向量求導和向量對標量求導,有兩種方式,分子布局和分母布局,不同的方式都是對的,只是結果缺一個轉置
1、矩陣乘以列向量,對列向量求導,形如 $\boldsymbol{z} = \boldsymbol{Wx},$, 求$\frac{\partial \boldsymbol{z}}{\partial \boldsymbol{x}}$
假設$\boldsymbol{W}\in \mathbb{R}^{n\times m},\boldsymbol{x}\in \mathbb{R}^{m\times 1}$, 則$\boldsymbol{z}\in \mathbb{R}^{n\times 1}$, 所以$\frac{\partial \boldsymbol{z}}{\partial \boldsymbol{x}}$ 是n維向量對m維向量求導,最后是一個(n x m)的雅可比矩陣
2、行向量乘以矩陣,對行向量求導,形如$\boldsymbol{z} = \boldsymbol{xW}, $, 其中$ \boldsymbol{W}\in \mathbb{R}^{n\times m} \boldsymbol{x}\in \mathbb{R}^{1\times n} $則$\boldsymbol{z}\in \mathbb{R}^{1\times m}$,所以$\frac{\partial \boldsymbol{z}}{\partial \boldsymbol{x}}$是m維行向量對n維行向量求導,結果是(m, n)維矩陣
z向量每一個元素求解如下:$z_{i}= \sum_{k=1}^{n}x_{k}W_{ki}$,
$\left (\frac{\partial \boldsymbol{z}}{\partial \boldsymbol{x}} \right )_{ij} = \frac{\partial z_{i}}{\partial x_{j}} = \sum_{k=1}^{n}W_{ki}\frac{\partial x_{k}}{\partial x_{j}} = W_{ji}$,所以
3、一個向量對自己求導
4、對向量每一個元素都施加的函數,對向量求導
如果 $\boldsymbol{x}\in\mathbb{R}^{1\times n},$, 則$\boldsymbol{z}\in\mathbb{R}^{1\times n},$, $\frac{\partial \boldsymbol{z}}{\partial \boldsymbol{x}}$是(n x n)的對角矩陣,對角元素為$\frac{\partial \boldsymbol{z}_{i}}{\partial \boldsymbol{x}_{i}}$, 乘以一個對角矩陣可以寫成分別與每一個元素相乘,即$\circ f^{'}\left ( x \right )$
5、矩陣乘以列向量,最后的標量對矩陣求導
假設$\boldsymbol{W}\in \mathbb{R}^{n\times m},\boldsymbol{x}\in\mathbb{R}^{m\times 1}$, 則$\boldsymbol{z}\in \mathbb{R}^{n\times 1}$ 是一個 (n x 1)的向量對 (n x m)的向量求導,結果是 n * n * m維,為了避免求解這么復雜的,可以計算$\frac{\partial \mathbf{z}}{\partial W_{ij}}$
$ \mathbf{z}_{k}= \sum_{l = 1}^{m}W_{kl}x_{l}$
$\frac{\partial \mathbf{z}_{k}}{\partial W_{ij}} =\frac{\partial \sum_{l = 1}^{m}W_{kl}x_{l}}{\partial W_{ij}} = \sum_{l=1}^{m}x_{l}\frac{\partial W_{kl}}{\partial W_{ij}}$ 當且僅當 k == i && l == j時,導數結果為 xj,當 k != i時,結果為0
這里使用的是分子布局,所以
(7) $\frac{\partial \boldsymbol{Wx}}{\partial \boldsymbol{x}}$
參考:
https://web.stanford.edu/class/cs224n/readings/gradient-notes.pdf