前言

  本系列是科大25年秋课程《人工智能的数理科学基础》同步笔记。本文为第一章线性代数、微积分与优化的第一部分:向量微积分与矩阵分解相关内容。

系列文章

0、符号

  之前本站已经介绍了矩阵微分等内容:

在本系列中,相关符号将与课件内容一致,我们再总结一下:

  • 实向量变元:$\boldsymbol{x}=\left[x_1,\cdots,x_m\right]^\top\in\mathbb{R}^m$
  • 实矩阵变元:$\boldsymbol{X}=\left[\boldsymbol{x}_1,\cdots,\boldsymbol{x}_n\right]\in\mathbb{R}^{m\times n}$
  • 一阶连续可微变元为向量的标量(数量值)函数:$f(\boldsymbol{x})\in C^1(\mathbb R^n,\mathbb{R})$,记为 $f(\boldsymbol{x})$
  • 一阶连续可微变元为向量的向量(向量值)函数:$\boldsymbol{g}(\boldsymbol{x})\in C^1(\mathbb R^n,\mathbb{R}^n)$,记为 $\boldsymbol{g}(\boldsymbol{x})$

    $\boldsymbol{g}(\boldsymbol x)$也可以写为$\vec{\boldsymbol g}(\vec x)$,事实上即是标量函数排列为向量的形式:

    $$ \boldsymbol g(\boldsymbol x)= \begin{bmatrix} g_1(\boldsymbol{X}), \cdots, g_n(\boldsymbol{X}) \end{bmatrix} $$

  在本系列中,向量默认为行向量。

1、向量微积分

1.1:梯度、散度、旋度与拉普拉斯算子

  设有微分(哈密尔顿)算子:$\nabla=(\partial/\partial x_1,\cdots,\partial/\partial x_n)$。则我们记$f$在$(x_1,\cdots,x_n)$处的梯度向量 (gradient, grad) 为:

$$ \nabla f=(\frac{\partial}{\partial x_1},\cdots,\frac{\partial}{\partial x_n})f=(\frac{\partial f}{\partial x_1},\cdots,\frac{\partial f}{\partial x_n})\in \mathbb R^n $$

进一步我们记$f$在此处关于向量$\boldsymbol v$的方向导数为:$\nabla_{\boldsymbol v}f=\boldsymbol v\cdot \nabla f$,也即:

$$ \nabla _{\boldsymbol v}f=\lim_{t\to 0}\frac{f(\boldsymbol x+t\boldsymbol u)-f(\boldsymbol x)}{t}\in\mathbb R $$

  接下来我们考虑向量值函数。$\boldsymbol g$在$(x_1,\cdots,x_n)$处的散度 (divergence, div) 记作

$$ \nabla \cdot \vec{g}=\left(\frac{\partial}{\partial x_{1}}, \cdots, \frac{\partial}{\partial x_{n}}\right) \cdot \vec{g}=\frac{\partial g_{1}}{\partial x_{1}}+\cdots+\frac{\partial g_{n}}{\partial x_{n}}\in \mathbb R $$

也即散度是微分算子与函数的内积,为一个标量。

  当$n=3$时,定义函数$\boldsymbol g$在$(x_{1}, x_{2}, x_{3})$处的旋度 (curl)为:

$$ \begin{aligned} \nabla \times\boldsymbol g& =\left(\frac{\partial}{\partial x_{1}}, \cdots, \frac{\partial}{\partial x_{n}}\right) \times \boldsymbol g=\left|\begin{array}{ccc} \vec{e}_{1} & \vec{e}_{2} & \vec{e}_{3} \\ \frac{\partial}{\partial x_{1}} & \frac{\partial}{\partial x_{2}} & \frac{\partial}{\partial x_{3}} \\ g_{1} & g_{2} & g_{3} \end{array}\right| \\ & =\left(\frac{\partial g_{3}}{\partial x_{2}}-\frac{\partial g_{2}}{\partial x_{3}}, \frac{\partial g_{1}}{\partial x_{3}}-\frac{\partial g_{3}}{\partial x_{1}}, \frac{\partial g_{2}}{\partial x_{1}}-\frac{\partial g_{1}}{\partial x_{2}}\right) \end{aligned} $$

  我们可以推导出如下结论:

(1) 如果$\nabla \times \boldsymbol g=\boldsymbol 0$,则存在$f$使得$\boldsymbol g=\nabla f$。

(2) 如果$\nabla \cdot \boldsymbol h=0$,则存在$\boldsymbol g$使得$\boldsymbol h=\nabla \times \boldsymbol g$。

  而进一步我们可以得出Helmholtz分解:对于三阶向量函数$\boldsymbol f$,可以分解为无旋与无散的两部分:

$$ \boldsymbol f=\boldsymbol g+\boldsymbol h,\; where\quad \boldsymbol g=-\nabla \Phi,\; \nabla\cdot \boldsymbol h=0 $$

  设数量值函数$f\in C^2(\mathbb R^n,\mathbb R)$,则定义拉普拉斯算子$\Delta$为:

$$ \Delta f(\boldsymbol x)=\nabla^2f(\boldsymbol x)=\nabla\cdot \nabla f(\boldsymbol x)=\frac{\partial^2f}{\partial x_1^2}+\cdots+\frac{\partial^2 f}{\partial x_n^2} $$

也即$f$先经梯度运算,再做散度运算,也即梯度的散度。

1.2:雅可比矩阵

  对于一阶连续可微向量值函数:$\boldsymbol f\in C^1(\mathbb R^n,\mathbb R^m)$,记其在$\boldsymbol x\in\mathbb R^n$处的雅可比矩阵(Jacobian matrix)为:

$$ \boldsymbol J_{\boldsymbol f}(\boldsymbol x)=\frac{\partial \boldsymbol f}{\partial \boldsymbol x}=\left[ \frac{\partial f_i}{\partial x_j}\right]_{ij}={\left[\begin{array}{ccc} \frac{\partial f_{1}}{\partial x_{1}} & \cdots & \frac{\partial f_{1}}{\partial x_{n}} \\ \vdots & \ddots & \vdots \\ \frac{\partial f_{m}}{\partial x_{1}} & \cdots & \frac{\partial f_{m}}{\partial x_{n}} \end{array}\right]}_{m\times n} $$

  容易看出雅可比矩阵可以表示为梯度向量的排列:

$$ \boldsymbol J_{\boldsymbol f}(\boldsymbol x)=\begin{bmatrix} \nabla f_1 , \\ \cdots,\\ \nabla f_m \end{bmatrix} $$

  同时,我们称$\nabla \boldsymbol f(\boldsymbol x)=\begin{bmatrix}
\nabla f_1 ,
\cdots,
\nabla f_m
\end{bmatrix}$为$\boldsymbol f$关于$\boldsymbol x$的梯度矩阵,显然有梯度矩阵与雅可比矩阵互为转置:$\nabla \boldsymbol f(\boldsymbol x)=\boldsymbol J_{\boldsymbol f}^\top(\boldsymbol x)$。同时显然散度是雅可比矩阵的迹:$\nabla \cdot \boldsymbol g=\text{tr}(\boldsymbol J_{\boldsymbol g})$。

1.3:向量值函数的微分运算法则

(1) $\nabla(f g) =f \nabla g+g \nabla f $

(2) $\nabla(\boldsymbol f \cdot \boldsymbol g) =\boldsymbol J_{\boldsymbol g}^\top \boldsymbol f+\boldsymbol J_{\boldsymbol f}^\top \boldsymbol g$

(3) $\boldsymbol J_{f\boldsymbol g}=f\boldsymbol J_{\boldsymbol g}+(\nabla f)^\top\boldsymbol g$

(4) $\nabla \cdot(f\boldsymbol g)=\nabla f \cdot \boldsymbol g+f \nabla \cdot \boldsymbol g$

(5) 设:$\boldsymbol f\in C^1(\mathbb R^n,\mathbb R^m)$,$\boldsymbol g\in C^1(\mathbb R^m,\mathbb R^p)$,则:

$$ \boldsymbol J_{\boldsymbol g\circ \boldsymbol f}(\boldsymbol x)=\boldsymbol J_{\boldsymbol g}(\boldsymbol f(\boldsymbol x))\cdot \boldsymbol J_{\boldsymbol f}(\boldsymbol x) $$

我们下面给出2和5的证明,其余同理:

(proof. 2) 点积(标量函数)的梯度:

$$ \nabla (\boldsymbol{f} \cdot \boldsymbol{g}) = \left( \frac{\partial}{\partial x_1} \left( \sum_{i} f_i g_i \right), \frac{\partial}{\partial x_2} \left( \sum_{i} f_i g_i \right), \dots, \frac{\partial}{\partial x_n} \left( \sum_{i} f_i g_i \right) \right) $$

则每个分量的偏导数:

$$ \frac{\partial}{\partial x_j} \left( \sum_{i} f_i g_i \right) =\sum_i\left(\frac{\partial (f_ig_i) }{\partial x_j} \right) = \sum_{i} \left( \frac{\partial f_i}{\partial x_j} g_i + f_i \frac{\partial g_i}{\partial x_j} \right) $$

注意到$\frac{\partial f_i}{\partial x_j}$为雅可比矩阵的元素,若让其与$g_i$求和,则雅可比矩阵需转置,也即:

$$ \sum_{i} \left( \frac{\partial f_i}{\partial x_j} g_i \right)=\begin{bmatrix} \nabla_{x_1} \boldsymbol f , \\ \cdots,\\ \nabla_{x_n}\boldsymbol f \end{bmatrix}\cdot \boldsymbol g=\boldsymbol J_{\boldsymbol x}^\top\cdot \boldsymbol g $$

则原式得证。

(proof. 5) 对于$\boldsymbol g\circ \boldsymbol f\in C^1(\mathbb R^n,\mathbb R^p)$的每个分量函数$g_i(\boldsymbol f(\boldsymbol x))$,其导数由链式法则:

$$ \frac{\partial (g_i(\boldsymbol f))}{\partial \boldsymbol x_j}=\sum_k \frac{\partial g_i}{\partial f_k}\cdot \frac{\partial f_k}{\partial \boldsymbol x_j} $$

  而$\left[\boldsymbol{J}_{\boldsymbol{g} \circ \boldsymbol{f}}\right]_{i j}=\frac{\partial g_{i}(\boldsymbol{f}(\boldsymbol{x}))}{\partial x_{j}}=\sum_{k} \frac{\partial g_{i}}{\partial f_{k}} \cdot \frac{\partial f_{k}}{\partial x_{j}}$,我们希望将这个表达式写成矩阵乘法的形式。

  • 雅可比矩阵$\boldsymbol{J}_{\boldsymbol{f}}(\boldsymbol x)$是一个$m \times n$的矩阵,表示 $\boldsymbol{f}$ 对每个$x_j$的偏导数。
  • 雅可比矩阵$\boldsymbol{J}_{\boldsymbol{g}}(f(\boldsymbol x))$是一个$p \times m$的矩阵,表示$\boldsymbol{g}$对每个$f_k$的偏导数。

因此命题得证。

1.4 Homework

  设函数 $f(x, y, z) \in C^{2}\left(\mathbb{R}^{3}\right), \boldsymbol g(x, y, z) \in C^{2}\left(\mathbb{R}^{3},\mathbb{R}^{3}\right)$,以及$f{'}\left(x{'}, y{'}, z{'}\right)=f(x, y, z),\boldsymbol g{'}\left(x{'}, y{'}, z{'}\right)=\boldsymbol g(x, y, z)$ (这里的$'$和导数无关),其中

$$ \left[\begin{array}{l} x{'} \\ y{'} \\ z{'} \end{array}\right]=R\left[\begin{array}{l} x \\ y \\ z \end{array}\right]+\left[\begin{array}{l} c_{1} \\ c_{2} \\ c_{3} \end{array}\right], R R^\top=I . $$

  请推导出

$$ \Delta' f{'}\left(x{'}, y{'}, z{'}\right)=\frac{\partial^{2} f{'}}{\partial x^{' 2}}+\frac{\partial^{2} f{'}}{\partial y^{' 2}}+\frac{\partial^{2} f{'}}{\partial z^{' 2}} $$

$$ \nabla' \cdot \boldsymbol g{'}\left(x{'}, y{'}, z{'}\right)=\frac{\partial g{'}_{1}}{\partial x{'}}+\frac{\partial g{'}_{2}}{\partial y{'}}+\frac{\partial g{'}_{3}}{\partial z{'}} $$

在 $(x, y, z)$ 坐标系下的表达式。

(Ans.) 我们记$\boldsymbol x=(x,y,z)^\top,\boldsymbol x'=(x',y',z')^\top$,则$\boldsymbol x=R^\top(\boldsymbol x'-\boldsymbol c)$。那么我们有:

$$ \frac{\partial x_i}{\partial x'_j}=R_{ji} $$

  下面我们先来看散度算子,有:

$$ \nabla' \cdot g'=\sum_{i}\frac{\partial g'_i}{\partial x'_i} $$

由于$\boldsymbol g{'}\left(x{'}, y{'}, z{'}\right)=\boldsymbol g(x, y, z)$,则:

$$ \frac{\partial g'_i}{\partial x'_i}=\sum_j\frac{\partial x_i}{\partial x'_j}\cdot\frac{\partial g_i}{\partial x_i}=\sum_j R_{ji}\frac{\partial g_i}{\partial x_i} $$

所以散度为:$\nabla'\cdot g'=\sum_{i}\sum_jR_{ji}\frac{\partial g_i}{\partial x_i}$。

  我们再来看拉普拉斯算子,有

$$ \Delta'f'=\sum_j \frac{\partial^2 f'}{\partial x_j'^2} $$

对于一阶导,有:

$$ \frac{\partial f'}{\partial x'_j}=\frac{\partial x_i}{\partial x'_i}\cdot \frac{\partial f}{\partial x_i}=R_{ji}\frac{\partial f}{\partial x_i} $$

而对于二阶导数,则有:

$$ \frac{\partial ^2f'}{\partial x_j'^2}=\sum_kR_{ji}\frac{\partial^2f}{\partial x_i \partial x_k}\cdot R_{jk} $$

又由$RR^\top =I$,则$\sum_k R_{ji}\cdot R_{jk}$当且仅当$k=i$时为1,则综合有:

$$ \Delta' f'=\Delta f $$

如果觉得我的文章对你有用,请随意赞赏