根据神秘言论:
总结了几个结论:
- 标量函数求导,使用的是分母布局(分母可能是向量、矩阵,维度较高);
- 向量、矩阵函数对标量求导,使用的是分子布局(分子为向量、矩阵,维度较高);
- 向量对向量求导,没有断论一定是分子还是分母布局,也不存在什么向量对什么向量求导违规情况。
- 注:参考链接1认为列向量对列向量求导是不规范写法,实际上是受到国外教材分子/分母布局定义的影响,例如分子布局被定义为$\frac{\partial \vec{y}}{\vec{y}^{T}}$,实际上这是习惯上写法,即使是列向量对列向量写法,也可以这样表示,转置符号T不影响自变量x的身份,因为按照矩阵乘法习惯,m×1对1×n求导,得到m×n二维结果,求导上想复用这一习惯直觉而已。因为应用场景,更多文章主张统一分母、分子叫法,即列向量对列向量求导、行向量对行向量求导。
- 向量、矩阵对向量、矩阵求导,实际上都是先将矩阵向量化,再按向量对向量求导的形式。
- 矩阵对矩阵求导,按分子布局形式得到的是雅可比矩阵,按分母布局得到梯度矩阵。
- $\oplus$ 多元函数可微定义:
偏导存在,且:
$$\lim_{h \to 0} \frac {f(x + h) - f(x) - \nabla f(x) \cdot h} {\| h\|} = 0 $$
但是偏导不一定连续。但是如果能够说明偏导存在且连续,那么就有可微。
偏导数连续 $\xRightarrow{\text{充分非必要}}$ 可微 $\xRightarrow{\text{必要非充分}}$ 偏导数存在
$\Delta \nabla$
默认 $\bf x$ 是列向量,同理,$\nabla_{\bf x}$ 也是列向量,这里我们不讨论行向量的问题,行向量等价于其转置后的问题。
$$\begin{aligned} \nabla_{\bf{x}} f({\bf x}) &= \frac {\partial f({\bf x})} {\partial {\bf x}} &= \left[\frac {\partial f({\bf x})} {\partial {\bf x}_i}\right]^T \\ \nabla_{\bf x} f({\bf X}) &= \frac {\partial f({\bf X})} {\partial \bf X} &= \begin{pmatrix} \frac {\partial f} {\partial x_{11}} & \frac {\partial f} {\partial x_{12}} & \cdots & \frac {\partial f} {\partial x_{1m}} \\ \frac {\partial f} {\partial x_{21}} & \frac {\partial f} {\partial x_{22}} & \cdots & \frac {\partial f} {\partial x_{2m}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac {\partial f} {\partial x_{n1}} & \frac {\partial f} {\partial x_{n2}} & \cdots & \frac {\partial f} {\partial x_{nm}} \\ \end{pmatrix} \\ \nabla_{\bf X} {\bf F}({\bf X}) &= \frac {\partial {\bf F(X)}} {\partial \bf X} &= \begin{pmatrix} \frac {\partial {\bf F}} {\partial x_{11}} & \frac {\partial {\bf F}} {\partial x_{12}} & \cdots & \frac {\partial {\bf F}} {\partial x_{1m}} \\ \frac {\partial {\bf F}} {\partial x_{21}} & \frac {\partial {\bf F}} {\partial x_{22}} & \cdots & \frac {\partial {\bf F}} {\partial x_{2m}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac {\partial {\bf F}} {\partial x_{n1}} & \frac {\partial {\bf F}} {\partial x_{n2}} & \cdots & \frac {\partial {\bf F}} {\partial x_{nm}} \\ \end{pmatrix} \\ \end{aligned} $$
几种法则:
$$\begin{aligned} \nabla (a f(x) + b g(x)) &= a \nabla f(x) + b \nabla g(x) \\ \nabla [f(x) g(x)] &= f(x) \nabla g(x) + \nabla f(x) g(x) & \text{需要注意无交换律} \\ \nabla \frac {f(x)} {g(x)} &= \frac 1 {g^2(x)} [\nabla f(x) g(x) - f(x) \nabla g(x)] \end{aligned} $$
$f(x) = x^T a = a^T x \implies \nabla f(x) = a$
证明:$f(x) = x_1 a_1 + x_2 a_2 + \cdots + x_n a_n$,套用定义即可
补充证明:利用全微分 $df = (\nabla_x f)^T dx = d(x^T a) = d(x^T) a + x^T da = (dx)^T a = a^T dx \implies \nabla_x f = a$
$\Delta {\mathrm {tr}}$ 只在方矩阵上有
对于两个同 $\in {\mathbb R}^{n\times m}$ 的矩阵,$A, B$,考虑:
$${\rm tr}(A B^T) = {\rm tr}(B A^T) = {\rm tr}(B^T A) = {\rm tr}(A^T B) $$
前两者是根据 ${\rm tr}(A) = {\rm tr}(A^T)$,中间是根据 ${\rm tr}(AB) = {\rm tr}(BA)$ 得来的。证明一下:
$${\rm tr}(AB^T) = \sum_{t = 1}^{n} \sum_{k = 1}^m A_{tk} B^T_{kt} = \sum_{i = 1}^n \sum_{j = 1}^m A_{ij} B_{ij} = {\rm tr}({BA^T}) $$
$\Delta$ 全微分
$${\rm d}y = {\rm d} f(x) = \frac {\partial f(x)} {\partial x} {\rm d}x $$
类似可得:
$${\rm d} f({\bf x}) = \sum \frac {\partial f({\bf x})} {\partial {\bf x}_i} {\rm d} {\bf x}_i = (\nabla f({\bf x}))^T {\rm d} {\bf x} $$
由于 ${\rm tr} (c) = c$,所以可以在这外面套一个 $\rm tr$,于是就可以统一形式了:
$${\rm d} f({\bf X}) = \sum \frac {\partial f({\bf x})} {\partial {\bf x}_{ij}} {\rm d} {\bf x}_{ij} = {\rm tr}((\nabla f({\bf X}))^T {\rm d} {\bf X}) $$
至于 ${\rm d} {\bf F(X)} = \begin{pmatrix} d f_{ij}({\bf X}) \end{pmatrix}$ 大概是不会怎么用到的吧。
一点特殊的:
- ${\rm d} (AXB) = A {\rm d} X B$
- ${\rm d} X^{-1} = - X^{-1} {\rm d} X X^{-1}$
$\Delta {\rm tr} + {\rm d}$
$${\rm d} f(x) = {\rm tr} ({\rm d} f(x)) = {\rm d} ({\rm tr} f(x)) $$
例如求 $\frac {\partial (X^T X)} {\partial X}$,考虑:
$$\begin{aligned} {\rm d} (X^T X) &= {\rm tr(d} (X^T X)) \\ &= {\rm tr} ({\rm d} X^T X) + {\rm tr}(X^T {\rm d}X) \\ &= {\rm tr} (({\rm d} X)^T X) + {\rm tr}(X^T {\rm d}X) \\ &= {\rm tr} (X^T {\rm d} X) + {\rm tr}(X^T {\rm d}X) \\ &= {\rm tr} (2X^T {\rm d} X) \end{aligned} $$
与 ${\rm d} (X^T X) = {\rm tr}((\nabla_X X^T X)^T {\rm d} X)$ 对比,则:
$$\nabla_X (X^T X) = 2 X $$
例如求 $\nabla_X \log |X|$,考虑:
$${\rm d} (\log |X|) = {\rm tr} \left(\frac 1 {|X|} {\rm d} |X| \right) $$
对于矩阵的行列式,考虑利用 $|X| = x_{ij} X^*_{ij}$ 则:
$$\nabla |X| = X^*_{ij} \implies {\rm d} |X| = (\nabla_X |X|)^T {\rm d} X $$
考虑利用等式 $X X^* = |X|$,那么有:
$${\rm d} |X| = {\rm tr}\left( (|X|(X^{-1})^T)^T{\rm d} X \right) = |X| {\rm tr} (X^{-1} {\rm d} X ) $$
于是
$$ {\rm tr} \left(\frac 1 {|X|} {\rm d} |X| \right) = {\rm tr} \left( \frac 1 {|X|} |X|X^{-1} {\rm d} X \right) = {\rm tr} (X^{-1} {\rm d}X) $$
于是得到 $\nabla_X \log |X| = (X^{-1})^T$
泰勒展开
^388d24
首先我们对于 $f({\bf x})$ 在 $x_0$ 处的展开可以构造一个单变元函数,这样就可以用最简单的泰勒展开了:
$$h(t) = f({\bf x_0} + t({\bf x - x_0})) $$
则考虑 $h(t)$ 在 $0$ 处的展开,然后带入 $t = 1$:
$$h(t) = h(0) + h'(0) t + \frac 1 2 h''(0) t^2 + \cdots $$
根据求导法则:
$$\frac {dh(t)} {dt} = \frac {\partial f} {\partial u} \frac {du} {dt} = \nabla f({\bf x_0} + t({\bf x - x_0}))^T ({\bf x - x_0}) = \langle \nabla f({\bf x_0} + t({\bf x - x_0})), {\bf x - x_0} \rangle $$
继续求二阶导:
$$\begin{aligned} \frac {d^2 h(t)} {d^2 t} &= \frac {d \nabla f({\bf x_0} + t({\bf x - x_0}))^T ({\bf x - x_0})}{dt} \\ &= \left(\frac {\partial \nabla f(u) } {\partial u} \frac {du} {dt} \right )^T ({\bf x - x_0}) \\ &= \left( \nabla^2 f({\bf x_0} + t({\bf x - x_0})) ({\bf x - x_0}) \right)^T ({\bf x - x_0}) \\ &= ({\bf x - x_0})^T \nabla^2 f({\bf x_0} + t({\bf x - x_0})) ({\bf x - x_0}) \end{aligned} $$
然后带入我们需要的导数中 $t = 0$ 求 $h(1)$,并且利用拉格朗日余项,那么得到:
$$f({\bf x}) = f({\bf x_0}) + \langle \nabla f({\bf x_0}), {\bf h} \rangle + \frac 1 2 {\bf h}^T \nabla^2 f({\bf x_0} + \theta {\bf h}) {\bf h} $$
- $\Delta$ 向量紧凑型
利用教材上所说的:
$$f(x_0 + h, y_0 + k) = \sum \frac 1{n!} (h \frac \partial {\partial x} + k \frac \partial {\partial y})^n f(x_0, y_0) $$
我们可以很轻易,如果将 $\nabla = [\frac \partial {\partial x_i}]^T$,看作向量形式,那么:
$$f({\bf x} + {\bf h}) = \sum \frac 1 {n!} ({\bf h} \cdot \nabla)^n f({\bf x}) $$
严格写法应该将 ${\bf h} \cdot \nabla$ 写为 ${\bf h}^T \nabla$
- $\oplus$ 进而我们可以讨论一下 $\nabla^{\otimes n}$ 到底和 $\nabla^n$ 是个什么东西。
对于 $\nabla^{\otimes n}$ 当 $n = 1$ 时,其形式非常简单,当 $n = 2$ 时,其就是一个 Hessian 矩阵:
$$H(f) = \nabla \nabla^T f = \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_1 \partial x_d} \\ \frac{\partial^2 f}{\partial x_2 \partial x_1} & \frac{\partial^2 f}{\partial x_2^2} & \cdots & \frac{\partial^2 f}{\partial x_2 \partial x_d} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_d \partial x_1} & \frac{\partial^2 f}{\partial x_d \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_d^2} \end{bmatrix} $$
这对应了展开式中 $({\bf h} \cdot \nabla)^2$ 的那一部分,所以说,这里的 $^n$ 实际上是指 $n$ 重内积,结果为标量。而利用这个矩阵,我们可以得到:
$$({\bf h} \cdot \nabla)^2 = {\bf h^T} \nabla \nabla^T {\bf h} = {\bf h^T} \nabla ({\bf h^T} \nabla)^T $$
对于 $\nabla^n$,严格来说,其有如下几种可能:
$$\nabla^n = \begin{cases} (\nabla \cdot \nabla)^{\frac n 2} & 2 | n \to \text{Laplacian 的幂,} \\ \nabla^{\otimes n} & \text{高阶偏导,一个 n 维张量} \\ 啥也不是 \\ \end{cases} $$
极值
对于大部分情况 $f \in C^2[{\mathbb R}^2]$来说,$\nabla^2 f$ 是实对称矩阵,于是考虑在 $\nabla f({\bf x}) = {\bf 0}$ 的地方如下三个条件:
$$\begin{cases} \nabla^2 f 是正定矩阵 &\implies 所有特征值 > 0 &\implies 极小值 \\ \nabla^2 f 是负定矩阵 &\implies 所有特征值 < 0 &\implies 极大值 \\ \nabla^2 f 是不定矩阵 &\implies 特征值有 < 0 也有 > 0 &\implies 马鞍面非极值 \\ \end{cases} $$
别忘了在边界,也就是 $\nabla f(x)$ 不存在的点,也可能是极值点!
对于二元函数:
$$\begin{cases} \frac {\partial f^2} {\partial^2 x} > 0 \land \det (\nabla^2 f) > 0 &\implies 正定 \\ \frac {\partial f^2} {\partial^2 x} < 0 \land \det (\nabla^2 f) > 0 &\implies 负定 \\ \det(\nabla^2 f) < 0 &\implies 不定 \end{cases} $$
参考: