實數對向量求導公式,得到結果的形式與 分母(自變量) 一致,意思就是,自變量是列向量,結果也是列向量
因變量是否轉置對於結果無影響,這一條是我自己總結的。
公式一:將 $x$ 約掉后,剩下一個跟 $x$ 維度一直的就可以了,所以都是 $a$。
$$ \nabla_{\mathbf{x}} (\mathbf{a}^T \mathbf{x}) = \color{red}{\nabla_{\mathbf{x}} (\mathbf{a}^T \mathbf{x})^T} = \nabla_{\mathbf x} (\mathbf{x}^T \mathbf{a}) = \color{blue}{\mathbf{a}} $$ |
$$ \frac {\partial \mathbf{a}^T \mathbf{x}} {\partial \mathbf{x}} = \color{red}{\frac {\partial (\mathbf{a}^T \mathbf{x})^T} {\partial \mathbf{x}}} = \frac {\partial \mathbf{x}^T \mathbf{a}} {\partial \mathbf{x}} = \color{blue}{\mathbf{a}} $$ |
公式二:理解成 $x*x=x^2$ 吧,所以就是 $2x$。
$$ \nabla_{\mathbf{x}} ||\mathbf{x}||_2^2 = \color{red} {\nabla_{\mathbf x} (\mathbf{x}^T \mathbf{x})} = \color{blue} {2 \mathbf{x}} $$ |
$$ \frac {\partial ||\mathbf{x}||_2^2} {\partial \mathbf{x}} = \color{red} {\frac {\partial (\mathbf{x}^T \mathbf{x})} {\partial \mathbf{x}}} = \color{blue} { 2 \mathbf{x}} $$ |
公式三:本來結果應該類似 $2Ax$,然而由於轉置不影響,也可以得 $2A^Tx$,所以綜合來看就是 $(A+A^T)x$。
$$ \nabla_{\mathbf x} (\mathbf{x}^T \mathbf{A} \mathbf{x}) = \color{red}{\nabla_{\mathbf x} (\mathbf{x}^T \mathbf{A} \mathbf{x})^T} = \nabla_{\mathbf x} (\mathbf{x}^T \mathbf{A}^T \mathbf{x}) = \color{blue} {(\mathbf{A} + \mathbf{A}^T) \mathbf{x}} $$ |
$$ \frac {\partial (\mathbf{x}^T \mathbf{A} \mathbf{x})} {\partial \mathbf{x}} = \color{red}{\frac {\partial (\mathbf{x}^T \mathbf{A} \mathbf{x})^T} {\partial \mathbf{x}}} = \frac {\partial (\mathbf{x}^T \mathbf{A}^T \mathbf{x})} {\partial \mathbf{x}} = \color{blue} {(\mathbf{A} + \mathbf{A}^T) \mathbf{x}} $$ |
實值函數對向量求導
- 未作特殊說明即為對變量 $\boldsymbol{x}$ 求導
- 一個基本的雅克比矩陣(由定義易得):
- $\nabla_\boldsymbol{x}(A\boldsymbol{x})=A$
- 特別地,$\nabla_{\boldsymbol{x}} \boldsymbol{x} = \nabla_{\boldsymbol{x}} (I\boldsymbol{x}) = I $
- 向量內積的求導法則
- 注:內積是一個實數,因此本節相當於實數對向量求導,結果是與自變量同型的向量。
- $\nabla(\boldsymbol{a}^T\boldsymbol{x}) = \nabla(\boldsymbol{x}^T\boldsymbol{a}) = \boldsymbol{a}$
- 證明:$\dfrac{\partial\boldsymbol{a^Tx}}{\partial x_i} = \dfrac{\partial\sum_j a_j x_j}{\partial x_i} = \dfrac{\partial a_i x_i}{\partial x_i} = a_i$
- $\nabla ||\boldsymbol{x}||_2^2 = \nabla(\boldsymbol{x}^T\boldsymbol{x}) = 2\boldsymbol{x}$
- 證明一(直接計算):$\dfrac{\partial ||\boldsymbol{x}||_2^2}{\partial x_i} = \dfrac{\partial\sum_j x_j^2}{\partial x_i} = \dfrac{\partial x_i^2}{\partial x_i} = 2x_i$
- 證明二(變量多次出現的求導法則):$\nabla(\boldsymbol{x}^T\boldsymbol{x}) = \nabla_{\boldsymbol{x}}(\boldsymbol{x}_c^T\boldsymbol{x}) + \nabla_{\boldsymbol{x}}(\boldsymbol{x}^T\boldsymbol{x}_c) = 2\nabla_{\boldsymbol{x}}(\boldsymbol{x}_c^T\boldsymbol{x}) = 2\boldsymbol{x}_c = 2\boldsymbol{x}$,其中 $\boldsymbol{x}_c$ 表示將 $\boldsymbol{x}$ 的此次出現不視作自變量,而是視作與 $\boldsymbol{x}$ 無關的常數,下同。
- $\nabla (\boldsymbol{x}^TA\boldsymbol{x}) = (A+A^T)\boldsymbol{x}$
- 證明(變量多次出現的求導法則):$$\begin{align*}
LHS & = & \nabla (\boldsymbol{x}_c^TA\boldsymbol{x}) + \nabla (\boldsymbol{x}^TA\boldsymbol{x}_c) \\
& = & \nabla ((A^T\boldsymbol{x}_c)^T\boldsymbol{x}) + \nabla ((A\boldsymbol{x}_c)^T\boldsymbol{x}) \\
& = & A^T\boldsymbol{x}_c + A\boldsymbol{x}_c \\
& = & RHS
\end{align*}$$
- 若 $A$ 是對稱矩陣,即 $A=A^T$,上式右邊還可以進一步化簡為 $2A\boldsymbol{x}$
- **向量函數內積的求導法則**
- 若 $\boldsymbol{u}(\boldsymbol{x}):\mathbb{R}^n \rightarrow \mathbb{R}^m, \boldsymbol{v}(\boldsymbol{x}):\mathbb{R}^n \rightarrow \mathbb{R}^m$,則 $\nabla(\boldsymbol{u}^T\boldsymbol{v}) = (\nabla_{\boldsymbol{x}} \boldsymbol{u})^T \boldsymbol{v} + (\nabla_{\boldsymbol{x}} \boldsymbol{v})^T \boldsymbol{u}$
- 證明(變量多次出現的求導法則 + 一次復合的求導法則):$LHS=\nabla(\boldsymbol{u}^T\boldsymbol{v}_c)+\nabla(\boldsymbol{u}_c^T\boldsymbol{v}) = (\nabla_{\boldsymbol{x}} \boldsymbol{u})^T \boldsymbol{v}_c + (\nabla_{\boldsymbol{x}} \boldsymbol{v})^T \boldsymbol{u}_c = RHS$
#### 向量數乘求導公式
- $\nabla_{\boldsymbol{x}} (\alpha(\boldsymbol{x})\boldsymbol{f(x)}) = \boldsymbol{f(x)} \nabla_{\boldsymbol{x}^T} \alpha(\boldsymbol{x}) + \alpha(\boldsymbol{x})\nabla_{\boldsymbol{x}}\boldsymbol{f(x)}$
- 說明:向量對向量求導,結果是一個雅克比矩陣,形狀為 $\boldsymbol{f}$ 的維度乘 $\boldsymbol{x}$ 的維度
- 推導:$\dfrac{\partial \alpha f_i}{\partial x_j} = f_i \dfrac{\partial \alpha}{\partial x_j} + \alpha \dfrac{\partial f_i}{\partial x_j} $,兩邊逐分量對比一下便知等式成立。
- 記憶:按兩個標量函數相乘的求導法則記,再注意一下**維度相容原理**即可。另外注意,等式左邊 $\alpha(\boldsymbol{x})\boldsymbol{f(x)}$ 是向量的數乘(若 $\boldsymbol{f(x)}$ 為行向量也可視作矩陣乘法);右邊 $\alpha(\boldsymbol{x})\nabla_{\boldsymbol{x}}\boldsymbol{f(x)}$ 是矩陣的數乘。