矩阵论:矩阵函数和矩阵求导

矩阵函数介绍

矩阵函数与通常的函数类似,但是因变量和自变量都为 $n$ 阶矩阵。定义如下:

定义

设一元函数 $f(z)$ 能展开为 $z$ 的幂级数:
$$
f(z) = \sum_{k = 0}^{\infty} c_k z^k, \quad (|z| < r)
$$
其中 $r > 0$ 表示该幂级数的收敛半径。当 $n$ 阶矩阵 $A$ 的谱半径 $\rho (A) < r$ 时,把收敛矩阵幂级数 $\sum_{k = 0}^{\infty} c_k A^k$ 的和称为 矩阵函数,记为 $f(A)$,即:
$$
f(A) = \sum_{k = 0}^{\infty} c_k A^k
$$

通过以上定义和一些基本函数,可以导出 矩阵指数函数矩阵三角函数,并推得一系列等式。


函数矩阵对矩阵的导数

我们已经在上一节中引入了矩阵函数的概念,类似地,也有微分和导数的定义。相较于标量导数,对矩阵函数的求导和微分较为复杂。在具体应用中,如梯度下降等算法,这部分内容具有重要意义,因此需要深入理解。

首先,我们将标量求导拓展到向量,对于 $\frac{\partial y}{\partial x}$,存在以下几种情况:

  1. $y$ 是标量:
    • $x$ 是标量
    • $\boldsymbol{x}$ 是向量(默认为列向量,即 $\boldsymbol{x} = (x_1, x_2, x_3)^\top$)
    • $\boldsymbol{X}$ 是矩阵
  2. $\boldsymbol{y}$ 是向量,例如 $f_{3\times 1}(x) = (f_1, f_2, f_3)^\top$:
    • 标量变元
    • 向量变元
    • 矩阵变元
  3. $\boldsymbol{Y}$ 是矩阵,同样有三种变元。

简单理解:

  • 分子布局:分子是列向量形式,分母是行向量形式
  • 分母布局:分子是行向量形式,分母是列向量形式

向量化操作

在具体分析之前,先介绍矩阵的 向量化操作。例如,对矩阵 $\boldsymbol{X} \in \mathbb{R}^{m \times n}$ 进行列优先展开:
$$
\text{vec}(\boldsymbol{X}) =
\begin{bmatrix}
x_{11} & x_{21} & \dots & x_{m1} & \dots & x_{1n} & x_{2n} & \dots & x_{mn}
\end{bmatrix}^\top
$$

向量变元的实值标量函数

  1. 行向量偏导(分子布局)
    $$
    \boldsymbol{D}_{\boldsymbol{x}} f = \frac{\partial f}{\partial \boldsymbol{x}^\top} =
    \begin{bmatrix}
    \frac{\partial f}{\partial x_1} & \frac{\partial f}{\partial x_2} & \dots & \frac{\partial f}{\partial x_n}
    \end{bmatrix}
    $$
  2. 梯度向量偏导(分母布局)
    $$
    \nabla_{\boldsymbol{x}} f = \frac{\partial f}{\partial \boldsymbol{x}} =
    \begin{bmatrix}
    \frac{\partial f}{\partial x_1} \
    \frac{\partial f}{\partial x_2} \
    \vdots \
    \frac{\partial f}{\partial x_n}
    \end{bmatrix}
    $$

矩阵变元的实值标量函数

从标量求导到矩阵求导,就是分子的 转置、向量化 和分母的 转置、向量化 的各种组合。

对于 分子布局

  • 分子:标量、列向量、矩阵向量化后的列向量
  • 分母:标量、列向量转置后的行向量、矩阵的转置矩阵、矩阵向量化后的列向量转置后的行向量

对于 分母布局

  • 分子:标量、列向量转置后的行向量、矩阵向量化后的列向量转置后的行向量
  • 分母:标量、列向量、矩阵自身、矩阵向量化后的列向量

在机器学习领域,常见的主要有以下三种形式:

  1. 梯度
    $$
    \nabla_{\boldsymbol{x}} \overset{\mathrm{def}}{=} \left[\frac{\partial}{\partial x_{1}},\frac{\partial}{\partial x_{2}},\cdots,\frac{\partial}{\partial x_{n}}\right]^{T}=\frac{\partial}{\partial\boldsymbol{x}}
    $$
  2. Hesse矩阵
    $$
    H(f) =
    \begin{bmatrix}
    \frac{\partial^2f}{\partial x_1^2} & \frac{\partial^2f}{\partial x_1\partial x_2} & \cdots & \frac{\partial^2f}{\partial x_1\partial x_n} \
    \frac{\partial^2f}{\partial x_2\partial x_1} & \frac{\partial^2f}{\partial x_2^2} & \cdots & \frac{\partial^2f}{\partial x_2\partial x_n} \
    \vdots & \vdots & \ddots & \vdots \
    \frac{\partial^2f}{\partial x_n\partial x_1} & \frac{\partial^2f}{\partial x_n\partial x_2} & \cdots & \frac{\partial^2f}{\partial x_n^2}
    \end{bmatrix}
    $$
  3. Jacobi矩阵
    $$
    \begin{bmatrix}
    \frac{\partial y_1}{\partial x_1} & \cdots & \frac{\partial y_1}{\partial x_n} \
    \vdots & \ddots & \vdots \
    \frac{\partial y_m}{\partial x_1} & \cdots & \frac{\partial y_m}{\partial x_n}
    \end{bmatrix}
    $$

不难发现:

  • 若 $f(x)$ 是一个标量函数,则 Jacobi矩阵是一个向量,等于 $f(x)$ 的梯度,Hesse矩阵是一个二维矩阵
  • 若 $f(x)$ 是一个向量值函数,则 Jacobi矩阵是一个二维矩阵,Hesse矩阵是一个三维矩阵
  • 梯度是 Jacobi 矩阵的特例,梯度的 Jacobi 矩阵就是 Hesse 矩阵,这其实就是 一阶偏导与二阶偏导的关系

自动求导与链式法则

在实际应用问题中,标量求导中的 链式法则 也可以拓展到向量乃至矩阵。在使用程序计算时,库函数一般采用 自动求导 方式,而不是一般的符号求导或数值求导。自动求导应用了链式法则,并将整个计算过程表示成一个 无环图,其中包括两种模式:

  1. 正向积累
    $$
    \frac{\partial \boldsymbol{z}^{(i)}}{\partial \boldsymbol{x}} =
    \frac{\partial \boldsymbol{z}^{(i-1)}}{\partial \boldsymbol{x}} \cdot
    \frac{\partial \boldsymbol{z}^{(i)}}{\partial \boldsymbol{z}^{(i-1)}}
    $$
  2. 反向传递
    $$
    \frac{\partial f}{\partial \boldsymbol{z}^{(i-1)}} =
    \frac{\partial f}{\partial \boldsymbol{z}^{(i)}} \cdot
    \frac{\partial \boldsymbol{z}^{(i)}}{\partial \boldsymbol{z}^{(i-1)}}
    $$

反向传递过程需要存储中间变量,导致内存复杂度比正向积累高。

其在实际场景中的主要应用就是神经网络,在神经网络的正向传播中,我们将输入数据通过网络层逐层传递,计算出最终的输出值。我们的目标是计算神经网络的输出$\hat{y}$和损失函数$\mathcal{L}$的值。而反向传播用于计算损失函数对所有网络参数的梯度。

在实际应用问题中,由于反向传播的链路过长,涉及到多次激活函数关于净输入的偏导数矩阵、当前层输入关于净输入的偏导数矩阵的连乘,如果这个矩阵的谱半径小于一,那么随着反向传播的进行,回传的梯度信号衰减地越厉害,这使得越是网络浅层的参数地梯度越微弱,那么其越难得到很好地更新。这就是梯度消失问题。


矩阵论:矩阵函数和矩阵求导
https://blog.yokumi.cn/2025/01/15/矩阵论:矩阵函数和矩阵求导/
作者
Yokumi
发布于
2025年1月15日
许可协议
CC BY-NC-SA 4.0