在「第一部分」中我们已经通过矩阵运算导出了一些常用的导数公式,而在此「第二部分」中我们将寻找对矩阵微分更通用的计算方式,即全微分方法。
在标量变元的范畴内,我们能够对 $z = x^3 + axy + y$ 展开全微分,得到:
$$ \begin{align*}
{\rm d}z &= 3x^2 {\rm d}x + a(y{\rm d}x + x{\rm d}y) + {\rm d}y \\
&= (3x^2+ay){\rm d}x + (ax + 1){\rm d}y
\end{align*} $$
然后我们就可以根据全微分公式 ${\rm d}z = \frac{\partial z}{\partial x} {\rm d} x + \frac{\partial z}{\partial y} {\rm d} y$ ,和上式一对比,得到各偏导:
$$ \frac{\partial z}{\partial x} = 3x^2 + ay, \ \ \frac{\partial z}{\partial y} = ax + 1 $$
矩阵、向量微元其实也是同理的。
定义向量微元为行向量 ${\rm d}\boldsymbol x = [{\rm d} x_1, {\rm d} x_2, \cdots, {\rm d} x_N]^{\rm T}$;矩阵微元 ${\rm d}\boldsymbol X$ 同理:
$$ {\rm d}\boldsymbol X = \begin{bmatrix}
{\rm d}x_{11} & {\rm d}x_{12} & \cdots & {\rm d}x_{1M} \\ {\rm d}x_{21} & {\rm d}x_{22} & \cdots & {\rm d}x_{2M} \\ \cdots & \vdots & & \vdots \\ {\rm d}x_{N1} & {\rm d}x_{N2} & \cdots & {\rm d}x_{NM} \\
\end{bmatrix} $$
标量函数的全微分
那么,对于以向量或矩阵为变元的标量函数的全微分,会像 ${\rm d}z = \frac{\partial z}{\partial x} {\rm d} x + \frac{\partial z}{\partial y} {\rm d} y$ 一样展开为各变量项之和,有全微分与导数的关系:
$$ {\rm d}f(\boldsymbol x) = \sum_{n=1}^N \frac{\partial f(\boldsymbol x)}{\partial x_n} {\rm d} x_n, \ \
{\rm d}f(\boldsymbol X) = \sum_{n=1}^N \sum_{m=1}^M \frac{\partial f(\boldsymbol X)}{\partial x_{nm}} {\rm d} x_{nm} $$
相当于同维数行向量 $\frac{\partial f(\boldsymbol x)}{\partial \boldsymbol x}$ 与 ${\rm d} \boldsymbol x$ 对位相乘求和、同大小矩阵 $\frac{\partial f(\boldsymbol X)}{\partial \boldsymbol X}$ 与 ${\rm d} \boldsymbol X$ 对位相乘求和。
向量变元函数的全微分 ${\rm d}f(\boldsymbol x)$ 中,对位相乘求和可以用两向量的内积表示:
$$ {\rm d}f(\boldsymbol x) = \left(\frac{\partial f(\boldsymbol x)}{\partial \boldsymbol x} \right)^{\rm T} {\rm d} \boldsymbol x $$
矩阵变元函数的全微分 ${\rm d}f(\boldsymbol X)$ 中,对位相乘求和可以用两矩阵内积的迹来表示(迹是方阵才有的,指的是主对角线上的元素之和):
$$ {\rm d}f(\boldsymbol X) = {\rm tr} \left( \left(\frac{\partial f(\boldsymbol X)}{\partial \boldsymbol X} \right)^{\rm T} {\rm d} \boldsymbol X\right) $$
证明
$$ \begin{align*}
& \ \ {\rm tr} \left( \left(\frac{\partial f(\boldsymbol X)}{\partial \boldsymbol X} \right)^{\rm T} {\rm d} \boldsymbol X \right) \\
&= {\rm tr} \left( \begin{bmatrix}
\frac{\partial f(\boldsymbol X)}{\partial x_{11}} & \frac{\partial f(\boldsymbol X)}{\partial x_{21}} & \cdots & \frac{\partial f(\boldsymbol X)}{\partial x_{N1}} \\
\frac{\partial f(\boldsymbol X)}{\partial x_{12}} & \frac{\partial f(\boldsymbol X)}{\partial x_{22}} & \cdots & \frac{\partial f(\boldsymbol X)}{\partial x_{N2}} \\
\vdots & \vdots & & \vdots \\
\frac{\partial f(\boldsymbol X)}{\partial x_{1M}} & \frac{\partial f(\boldsymbol X)}{\partial x_{2M}} & \cdots & \frac{\partial f(\boldsymbol X)}{\partial x_{NM}} \\
\end{bmatrix} \begin{bmatrix}
{\rm d}x_{11} & {\rm d}x_{12} & \cdots & {\rm d}x_{1M} \\ {\rm d}x_{21} & {\rm d}x_{22} & \cdots & {\rm d}x_{2M} \\ \cdots & \vdots & & \vdots \\ {\rm d}x_{N1} & {\rm d}x_{N2} & \cdots & {\rm d}x_{NM} \\
\end{bmatrix} \right) \\
&= \sum_{m=1}^M \sum_{n=1}^N \frac{\partial f(\boldsymbol X)}{\partial x_{nm}} {\rm d} x_{nm}
= {\rm d}f(\boldsymbol X)
\end{align*} $$
另,鉴于向量变元全微分中的内积结果也可以看作一个 $1\times1$ 的矩阵,这里也统一套上一个迹来表示(其好处在「D3」部分说明)。因而无论对矩阵还是向量 $\boldsymbol X$,都有 ${\rm d}f(\boldsymbol X) = {\rm tr} \left( \left(\frac{\partial f(\boldsymbol X)}{\partial \boldsymbol X} \right)^{\rm T} {\rm d} \boldsymbol X\right)$ 成立。
向量函数、矩阵函数的全微分
函数的输出从一个标量转为多个标量构成的向量乃至矩阵,即函数 $\boldsymbol v(\cdot)$、$\boldsymbol F(\cdot)$,就是每一个项目处出一个全微分,称函数的变元为 $\boldsymbol X$(可以是向量或者矩阵,甚至标量),那么:
$$ {\rm d} \boldsymbol v (\boldsymbol X) = [ {\rm d} v_1(\boldsymbol X), {\rm d} v_2(\boldsymbol X), \cdots, {\rm d} v_R(\boldsymbol X) ]^{\rm T} \\
{\rm d} \boldsymbol F (\boldsymbol X) = \begin{bmatrix}
{\rm d} f_{11}(\boldsymbol X) & {\rm d} f_{12}(\boldsymbol X) & \cdots & {\rm d} f_{1C}(\boldsymbol X) \\
{\rm d} f_{21}(\boldsymbol X) & {\rm d} f_{22}(\boldsymbol X) & \cdots & {\rm d} f_{2C}(\boldsymbol X) \\
\vdots & \vdots && \vdots \\
{\rm d} f_{R1}(\boldsymbol X) & {\rm d} f_{R2}(\boldsymbol X) & \cdots & {\rm d} f_{RC}(\boldsymbol X) \\
\end{bmatrix} $$
下面只考虑以 $N$ 维行向量 $\boldsymbol x$ 为变元、输出 $M$ 维行向量 $\boldsymbol v$ 的函数 $\boldsymbol v(\boldsymbol x)$,它的分母布局导数矩阵如下,每一列是一个标量函数 $v_m(\boldsymbol x)$ 求导的结果(详见「C」部分)。
$$ \frac{\partial \boldsymbol v^{\rm T}(\boldsymbol x)}{\partial \boldsymbol x} = \begin{bmatrix}
\frac{\partial v_1(\boldsymbol x)}{\partial x_1} & \frac{\partial v_2(\boldsymbol x)}{\partial x_1} & \cdots & \frac{\partial v_M(\boldsymbol x)}{\partial x_1} \\
\frac{\partial v_1(\boldsymbol x)}{\partial x_2} & \frac{\partial v_2(\boldsymbol x)}{\partial x_2} & \cdots & \frac{\partial v_M(\boldsymbol x)}{\partial x_2} \\
\vdots & \vdots & & \vdots \\
\frac{\partial v_1(\boldsymbol x)}{\partial x_N} & \frac{\partial v_2(\boldsymbol x)}{\partial x_N} & \cdots & \frac{\partial v_M(\boldsymbol x)}{\partial x_N} \\
\end{bmatrix} $$
称其 $(n, m)$ 位置的元素为 $\frac{\partial v_m^{\rm T}(\boldsymbol x)}{\partial x_n}$ 。
其全微分 ${\rm d} \boldsymbol v(\boldsymbol x)$ 是一个与 $\boldsymbol v$ 同大小的行向量,其中第 $m$ 个位置是向量变元标量函数 $v_m(\boldsymbol x)$ 的全微分 ${\rm d} v_m(\boldsymbol x)$,可以展开如下:
$$ \begin{align*}
{\rm d} \boldsymbol v (\boldsymbol x) &= [ {\rm d} v_1(\boldsymbol x), {\rm d} v_2(\boldsymbol x), \cdots, {\rm d} v_M(\boldsymbol x) ]^{\rm T} \\
&= \begin{bmatrix}
\sum_{n=1}^N \frac{\partial v_1(\boldsymbol x)}{\partial x_n} {\rm d} x_n \\ \sum_{n=1}^N \frac{\partial v_2(\boldsymbol x)}{\partial x_n} {\rm d} x_n \\ \vdots \\ \sum_{n=1}^N \frac{\partial v_M(\boldsymbol x)}{\partial x_n} {\rm d} x_n \\
\end{bmatrix} \\
&= \begin{bmatrix}
\frac{\partial v_1(\boldsymbol x)}{\partial x_1} & \frac{\partial v_1(\boldsymbol x)}{\partial x_2} & \cdots & \frac{\partial v_1(\boldsymbol x)}{\partial x_N} \\
\frac{\partial v_2(\boldsymbol x)}{\partial x_1} & \frac{\partial v_2(\boldsymbol x)}{\partial x_2} & \cdots & \frac{\partial v_2(\boldsymbol x)}{\partial x_N} \\
\vdots & \vdots && \vdots \\
\frac{\partial v_M(\boldsymbol x)}{\partial x_1} & \frac{\partial v_M(\boldsymbol x)}{\partial x_2} & \cdots & \frac{\partial v_M(\boldsymbol x)}{\partial x_N}
\end{bmatrix} \begin{bmatrix}
{\rm d} x_1 \\ {\rm d} x_2 \\ \vdots \\ {\rm d} x_N \\
\end{bmatrix} \\
&= \left(\frac{\partial \boldsymbol v^{\rm T}(\boldsymbol x)}{\partial \boldsymbol x} \right)^{\rm T}\cdot {\rm d} \boldsymbol x
\end{align*} $$
故全微分 ${\rm d} \boldsymbol v (\boldsymbol x)$ 与导数矩阵 $\frac{\partial \boldsymbol v^{\rm T}(\boldsymbol x)}{\partial \boldsymbol x}$ 的关系为 ${\rm d} \boldsymbol v (\boldsymbol x) = \left(\frac{\partial \boldsymbol v^{\rm T}(\boldsymbol x)}{\partial \boldsymbol x} \right)^{\rm T}\cdot {\rm d} \boldsymbol x$。
对于矩阵微元 ${\rm d}\boldsymbol X$(向量微元 ${\rm d}\boldsymbol x$ 同理),可以从标量微元 ${\rm d}x$ 拓展得到如下性质:
常量的微分 ${\rm d}\boldsymbol A=\boldsymbol O$。
线性法则 ${\rm d}(k_1 \boldsymbol U + k_2 \boldsymbol V) = k_1{\rm d}\boldsymbol U + k_2{\rm d}\boldsymbol V$。
乘法法则 ${\rm d}(\boldsymbol U\boldsymbol V) = {\rm d} \boldsymbol U \cdot \boldsymbol V + \boldsymbol U \cdot {\rm d}\boldsymbol V$(谨记矩阵乘法不能调换顺序)。
{\rm d}(\boldsymbol U) \boldsymbol V \boldsymbol W +
\boldsymbol U {\rm d}(\boldsymbol V) \boldsymbol W +
\boldsymbol U \boldsymbol V {\rm d}(\boldsymbol W)$ 。
除法法则 ${\rm d}\left( \frac{\boldsymbol U}{\boldsymbol V} \right) = \frac {{\rm d} \boldsymbol U \cdot \boldsymbol V - \boldsymbol U \cdot {\rm d}\boldsymbol V} {\boldsymbol V^2}$(谨记矩阵乘法不能调换顺序)。
复合函数微分法则和链式法则
如 $\boldsymbol Z = \boldsymbol F(\boldsymbol U), \ \ \boldsymbol U = \boldsymbol \Phi(\boldsymbol X, \boldsymbol Y)$,那么 ${\rm d} \boldsymbol Z$ 的展开为:
$$ \begin{align*}
{\rm d} \boldsymbol Z
&= \frac{{\rm d} \boldsymbol Z}{{\rm d} \boldsymbol U} {\rm d} \boldsymbol U
= \frac{{\rm d} \boldsymbol Z}{{\rm d} \boldsymbol U} \left(\frac{\partial \boldsymbol U}{\partial \boldsymbol X} {\rm d} \boldsymbol X + \frac{\partial \boldsymbol U}{\partial \boldsymbol Y} {\rm d} \boldsymbol Y \right) \\
&=\frac{{\rm d} \boldsymbol F(\boldsymbol U)}{{\rm d} \boldsymbol U} \left( \frac{\partial \boldsymbol \Phi(\boldsymbol X, \boldsymbol Y)}{\partial \boldsymbol X} {\rm d} \boldsymbol X + \frac{\partial \boldsymbol \Phi(\boldsymbol X, \boldsymbol Y)}{\partial \boldsymbol Y} {\rm d} \boldsymbol Y \right)
\end{align*} $$
转置:$({\rm d} \boldsymbol X)^{\rm T} = {\rm d} (\boldsymbol X^{\rm T})$。
如果要是一般的数学运算,到这就能结束了。但是因为矩阵乘法有个要命的问题——没有交换律,让运算还不能止步于此。
比如,你想用上述规律来证明 $\frac{\partial (\boldsymbol x ^{\rm T}\boldsymbol A \boldsymbol x)}{\partial \boldsymbol x} =(\boldsymbol A + \boldsymbol A^{\rm T}) \boldsymbol x$(「A3」部分的结论),展开全微分就会发现:
$$ \begin{align*}
{\rm d}(\boldsymbol x ^{\rm T}\boldsymbol A \boldsymbol x)
&= {\rm d}(\boldsymbol x^{\rm T})\boldsymbol A \boldsymbol x
\boldsymbol x ^{\rm T} {\rm d}(\boldsymbol A) \boldsymbol x
\boldsymbol x ^{\rm T}\boldsymbol A {\rm d}(\boldsymbol x) \\
&= {\rm d}(\boldsymbol x^{\rm T})\boldsymbol A \boldsymbol x
- \boldsymbol x ^{\rm T}\boldsymbol A {\rm d}(\boldsymbol x)
\end{align*} $$
同时出现了 ${\rm d}(\boldsymbol x^{\rm T})$ 和 ${\rm d}(\boldsymbol x)$,一个在左边、一个在右边,压根没法合并,因为没有乘法交换律!
因此,我们需要借助「迹」的性质进行运算。
对于 $N$ 阶方阵 $\boldsymbol A$,其迹定义为 ${\rm tr} \ \boldsymbol A = \sum_{i=1}^{N}a_{ii}$。据此引出性质:
另,先前已经证明过,两个相同大小的矩阵(或向量)对应位置相乘求和的结果(可以视作一种数量积,与向量的数量积统一记为 $\langle \boldsymbol A, \boldsymbol B \rangle$),可以用二者相乘(其中一者需转置)后取迹的形式表示。
根据下表可以发现,何者取转置并不重要,又因 $\langle \boldsymbol A, \boldsymbol B \rangle=\langle \boldsymbol B, \boldsymbol A \rangle$ 也可以知道甚至二者交换也没问题。
$$ {\rm tr}(\boldsymbol \alpha^{\rm T} \boldsymbol \beta) = {\rm tr}(\boldsymbol \alpha \boldsymbol \beta^{\rm T}) = \sum_{n=1}^N \alpha_{n} \beta_{n} = \langle \boldsymbol \alpha, \boldsymbol \beta \rangle\\
{\rm tr}(\boldsymbol A^{\rm T} \boldsymbol B) = {\rm tr}(\boldsymbol A \boldsymbol B^{\rm T}) = \sum_{n=1}^N \sum_{m=1}^M a_{nm} b_{nm} = \langle \boldsymbol A, \boldsymbol B \rangle $$
据此能引出在迹下矩阵乘法的交换律(性质 4),前提是 $\boldsymbol U^{\rm T}$ 与 $\boldsymbol V$ 大小相同: