Skip to content

Lecture 2:数学基础-Extra

一些机器学习需要用到的前置数学知识

这里是上课没讲过的但是课后作业需要用到的,同时因为和 AI 专业课程设置差异我没有学过的知识点

矩阵求导

事实上这是凸优化基础的基础内容,因为 AI 学院的先进的课程设置(有最优化导论的前置课程),所以默认为已知知识点,但是 CS 大班应该是没有教过这一块的

或者是我太菜了

定义常用符号:

  • \(\mathbf{x}, \mathbf{y} \in \R^{n}\) 是标量变元
  • \(\mathbf{x}, \mathbf{y} \in \R^{n}\) 是列向量变元
  • \(X \in \R^{m\times n}\) 是矩阵变元
  • \(f:\R^{n} \to \R\) 是标量函数,\(f:\R^{n} \to \R^{m}\) 是向量函数

(变元的意思是,展开后每个元素都是变量而不是已知量)

分母布局 or 分子布局

矩阵求导有两种布局,分母布局与分子布局

  • 分母布局即:结果形状 = 分母形状 × 分子形状
  • 分子布局即:结果形状 = 分子形状 × 分母形状

举一个标量对向量求导的例子:\(\dfrac{\partial y}{\partial \mathbf{x}}\),其中 \(\mathbf{x} = [x_{1}, x_{2}, x_{3}]^{T}\)

在分母布局下 $$ \frac{\partial y}{\partial \mathbf{x}} = \begin{bmatrix} \frac{\partial y}{\partial x_1} \newline \frac{\partial y}{\partial x_2} \newline \frac{\partial y}{\partial x_3} \end{bmatrix} $$ 在分子布局下 $$ \frac{\partial y}{\partial x} = \begin{bmatrix} \frac{\partial y}{\partial x_1} & \frac{\partial y}{\partial x_2} & \frac{\partial y}{\partial x_3} \end{bmatrix} $$ 我们将 \(\mathbf{x}\) 看成 \(3\times 1\) 的矩阵,将 \(y\) 看成 \(1\times 1\) 的矩阵,那么:

分母布局为 \((3\times 1) \times (1\times 1) = 3\times 1\)

分子布局为 \((1\times 1) \times (3\times 1) = 1\times 3\)

因为机器学习使用分母布局,所以以下的所有例子均基于分母布局给出

标量对向量求导

\(f:\R^{n} \to \R\),则 $$ \frac{\partial f}{\partial x} = \begin{bmatrix} \frac{\partial f}{\partial x_1} \newline \frac{\partial f}{\partial x_2} \newline \vdots \newline \frac{\partial f}{\partial x_n} \end{bmatrix} $$

向量对向量求导

\(f:\R^{n} \to \R^{m}\),记 \(f(x) = (f_{1}(x), \cdots, f_{m}(x))^{T}\),则

\[ \frac{\partial f^{T}_{1\times m}}{\partial x_{n\times 1}} = \begin{bmatrix} \frac{\partial f_1}{\partial x_1} & \frac{\partial f_2}{\partial x_1} & \cdots & \frac{\partial f_m}{\partial x_1} \newline \frac{\partial f_1}{\partial x_2} & \frac{\partial f_2}{\partial x_2} & \cdots & \frac{\partial f_m}{\partial x_2} \newline \vdots & \vdots & \ddots & \vdots \newline \frac{\partial f_1}{\partial x_n} & \frac{\partial f_2}{\partial x_n} & \cdots & \frac{\partial f_m}{\partial x_n} \end{bmatrix}_{n\times m} \]

\(f^{T}\) 的写法是为了表示分母布局下,分子显式表示为行向量,否则维度不匹配)

注意这和常见的雅各比行列式(分子布局)的写法不同

标量对矩阵求导

\(f:\R^{m\times n} \to \R\)\(X \in \R^{m\times n}\),则 \(f\) 关于 \(X\) 的矩阵是一个与 \(X\) 相同结构的 \(m\times n\) 矩阵,其每个元素定义为

\[ \left( \dfrac{\partial f}{\partial X} \right)_{ij} = \dfrac{\partial f}{\partial X_{ij}} \]

即对 \(X\) 的每个分量求偏导。这个矩阵称为梯度矩阵

通常会使用微分 + 迹的方式来解决常规的矩阵求导:

已知 $$ \text{d}f = \sum_{i, j} \dfrac{\partial f}{\partial X_{ij}} \text{d}X_{ij} $$ 而迹运算的一个恒等式有:对于同形状矩阵 \(A, B\),有 $$ \text{tr}(A^{T}B) = \sum_{i, j} A_{ij}B_{ij} $$ 结合一下就有 $$ \text{d}f = \text{tr} \left( \left( \dfrac{\partial f}{\partial X} \right)^{T} \text{d}X\right) $$ 也就是说,如果能找到 \(\text{d}f\) 恒等变换为 \(\text{tr} \left( B^{T} \text{d}X\right)\) 的形式,则求导结果为 \(B\)

迹运算的性质
  • \(\text{tr}(a) = a\)
  • \(\text{tr}(\alpha A + \beta B) = \alpha \text{tr}(A) + \beta \text{tr}(B)\)
  • \(\text{tr} (A) = \text{tr} (A^{T})\)
  • \(\text{tr} (ABC) = \text{tr} (BCA) = \text{tr} (CAB)\)
微分运算的性质
  • \(\text{d}(\alpha A + \beta B) = \alpha \text{d}(A) + \beta \text{d}(B)\)
  • \(\text{d}(AB) = (\text{d}A)B + A(\text{d}B)\)
  • \(\text{d} (A^{T}) = (\text{d} A)^{T}\)
  • \(\text{d} (A^{-1}) = -A^{-1}(\text{d} A) A^{-1}\)
  • \(\text{d} (\text{tr}(A) )= \text{tr}(\text{d} A)\)
  • \(\text{d} (\text{det}(A) )= \text{det} A \cdot \text{tr}(X^{-1}\text{d}X)\)

链式法则

标量对向量的链式法则

我们记 \(\mathbf{x} \in \R^{n}\)\(\mathbf{z} = \mathbf{g}(\mathbf{x}) \in \R^{m}\)\(h(\mathbf{x}) = f(\mathbf{g}(\mathbf{x}))\),则: $$ \dfrac{\partial h}{\partial \mathbf{x}} = \left( \dfrac{\partial \mathbf{z}}{\partial \mathbf{x}} \right)^{T} \dfrac{\partial f}{\partial \mathbf{z}} $$

而不是

$$ \dfrac{\partial h}{\partial \mathbf{x}} = \dfrac{\partial f}{\partial \mathbf{z}}\dfrac{\partial \mathbf{z}}{\partial \mathbf{x}} $$ 分母维度下,这种直觉式的写法会导致乘法维度不匹配


向量对向量的链式法则

我们记 \(\mathbf{x} \in \R^{n}\)\(\mathbf{u} = \mathbf{g}(\mathbf{x}) \in \R^{q}\)\(\mathbf{y} = \mathbf{f}(\mathbf{u}) \in \R^{p}\),则: $$ \dfrac{\partial \mathbf{y}}{\partial \mathbf{x}} = \dfrac{\partial \mathbf{y}}{\partial \mathbf{u}}\dfrac{\partial \mathbf{u}}{\partial \mathbf{x}} $$ 这个是符合直觉的