线性代数、微分和概率基础知识

数学基础

本节总结了本书中涉及到的有关线性代数、微分和概率的基础知识。为避免赘述本书未涉及的数学背景知识,本节中的少数定义稍有简化。

线性代数

以下分别概括了向量、矩阵、运算、范数、特征向量和特征值的概念。

向量

本书中的向量指的是列向量。一个 $n$ 维向量 $\boldsymbol{x}$ 的表达式可写成

其中 $x_1, \ldots, x_n$ 是向量的元素。我们将各元素均为实数的 $n$ 维向量 $\boldsymbol{x}$ 记作 $\boldsymbol{x} \in \mathbb{R}^{n}$ 或 $\boldsymbol{x} \in \mathbb{R}^{n \times 1}$。

矩阵

一个 $m$ 行 $n$ 列矩阵的表达式可写成

其中 $x_{ij}$ 是矩阵 $\boldsymbol{X}$ 中第 $i$ 行第 $j$ 列的元素($1 \leq i \leq m, 1 \leq j \leq n$)。我们将各元素均为实数的 $m$ 行 $n$ 列矩阵 $\boldsymbol{X}$ 记作 $\boldsymbol{X} \in \mathbb{R}^{m \times n}$。不难发现,向量是特殊的矩阵。

运算

设 $n$ 维向量 $\boldsymbol{a}$ 中的元素为 $a_1, \ldots, a_n$,$n$ 维向量 $\boldsymbol{b}$ 中的元素为 $b_1, \ldots, b_n$。向量 $\boldsymbol{a}$ 与 $\boldsymbol{b}$ 的点乘(内积)是一个标量:

设两个 $m$ 行 $n$ 列矩阵

矩阵 $\boldsymbol{A}$ 的转置是一个 $n$ 行 $m$ 列矩阵,它的每一行其实是原矩阵的每一列:

两个相同形状的矩阵的加法实际上是按元素做加法:

我们使用符号 $\odot$ 表示两个矩阵按元素做乘法的运算:

定义一个标量 $k$。标量与矩阵的乘法也是按元素做乘法的运算:

其它例如标量与矩阵按元素相加、相除等运算与上式中的相乘运算类似。矩阵按元素开根号、取对数等运算也即对矩阵每个元素开根号、取对数等,并得到和原矩阵形状相同的矩阵。

矩阵乘法和按元素的乘法不同。设 $\boldsymbol{A}$ 为 $m$ 行 $p$ 列的矩阵,$\boldsymbol{B}$ 为 $p$ 行 $n$ 列的矩阵。两个矩阵相乘的结果

是一个 $m$ 行 $n$ 列的矩阵,其中第 $i$ 行第 $j$ 列($1 \leq i \leq m, 1 \leq j \leq n$)的元素为

范数

设 $n$ 维向量 $\boldsymbol{x}$ 中的元素为 $x_1, \ldots, x_n$。向量 $\boldsymbol{x}$ 的 $L_p$ 范数为

例如,$\boldsymbol{x}$ 的 $L_1$ 范数是该向量元素绝对值的和:

而 $\boldsymbol{x}$ 的 $L_2$ 范数是该向量元素平方和的平方根:

我们通常用 $|\boldsymbol{x}|$ 指代 $|\boldsymbol{x}|_2$。

设 $\boldsymbol{X}$ 是一个 $m$ 行 $n$ 列矩阵。矩阵 $\boldsymbol{X}$ 的 Frobenius 范数为该矩阵元素平方和的平方根:

其中 $x_{ij}$ 为矩阵 $\boldsymbol{X}$ 在第 $i$ 行第 $j$ 列的元素。

特征向量和特征值

对于一个 $n$ 行 $n$ 列的矩阵 $\boldsymbol{A}$,假设有标量 $\lambda$ 和非零的 $n$ 维向量 $\boldsymbol{v}$ 使

那么 $\boldsymbol{v}$ 是矩阵 $\boldsymbol{A}$ 的一个特征向量,标量 $\lambda$ 是 $\boldsymbol{v}$ 对应的特征值。

微分

我们在这里简要介绍微分的一些基本概念和演算。

导数和微分

假设函数 $f: \mathbb{R} \rightarrow \mathbb{R}$ 的输入和输出都是标量。函数 $f$ 的导数

且假定该极限存在。给定 $y = f(x)$,其中 $x$ 和 $y$ 分别是函数 $f$ 的自变量和因变量。以下有关导数和微分的表达式等价:

其中符号 $D$ 和 $d/dx$ 也叫微分运算符。常见的微分演算有 $DC = 0$($C$ 为常数)、$Dx^n = nx^{n-1}$($n$ 为常数)、$De^x = e^x$、$D\ln(x) = 1/x$ 等。

如果函数 $f$ 和 $g$ 都可导,设 $C$ 为常数,那么

如果 $y=f(u)$ 和 $u=g(x)$ 都是可导函数,依据链式法则,

泰勒展开

函数 $f$ 的泰勒展开式是

其中 $f^{(n)}$ 为函数 $f$ 的 $n$ 阶导数(求 $n$ 次导数),$n!$ 为 $n$ 的阶乘。假设 $\epsilon$ 是个足够小的数,如果将上式中 $x$ 和 $a$ 分别替换成 $x+\epsilon$ 和 $x$,我们可以得到

由于 $\epsilon$ 足够小,上式也可以简化成

偏导数

设 $u$ 为一个有 $n$ 个自变量的函数,$u = f(x_1, x_2, \ldots, x_n)$,它有关第 $i$ 个变量 $x_i$ 的偏导数为

以下有关偏导数的表达式等价:

为了计算 $\partial u/\partial x_i$,我们只需将 $x_1, \ldots, x_{i-1}, x_{i+1}, \ldots, x_n$ 视为常数并求 $u$ 有关 $x_i$ 的导数。

梯度

假设函数 $f: \mathbb{R}^n \rightarrow \mathbb{R}$ 的输入是一个 $n$ 维向量 $\boldsymbol{x} = [x_1, x_2, \ldots, x_n]^\top$,输出是标量。函数 $f(\boldsymbol{x})$ 有关 $\boldsymbol{x}$ 的梯度是一个由 $n$ 个偏导数组成的向量:

为表示简洁,我们有时用 $\nabla f(\boldsymbol{x})$ 代替 $\nabla_{\boldsymbol{x}} f(\boldsymbol{x})$。

假设 $\boldsymbol{x}$ 是一个向量,常见的梯度演算包括

类似地,假设 $\boldsymbol{X}$ 是一个矩阵,那么

黑塞矩阵

假设函数 $f: \mathbb{R}^n \rightarrow \mathbb{R}$ 的输入是一个 $n$ 维向量 $\boldsymbol{x} = [x_1, x_2, \ldots, x_n]^\top$,输出是标量。假定函数 $f$ 所有的二阶偏导数都存在,$f$ 的黑塞矩阵 $\boldsymbol{H}$ 是一个 $n$ 行 $n$ 列的矩阵:

其中二阶偏导数

概率

最后,我们简要介绍条件概率、期望和均匀分布。

条件概率

假设事件 $A$ 和事件 $B$ 的概率分别为 $\mathbb{P}(A)$ 和 $\mathbb{P}(B)$,两个事件同时发生的概率记作 $\mathbb{P}(A \cap B)$ 或 $\mathbb{P}(A, B)$。给定事件 $B$,事件 $A$ 的条件概率

也就是说,

当满足

时,事件 $A$ 和事件 $B$ 相互独立。

期望

随机变量 $X$ 的期望(或平均值)

均匀分布

假设随机变量 $X$ 服从 $[a, b]$ 上的均匀分布,即 $X \sim U(a, b)$。随机变量 $X$ 取 $a$ 和 $b$ 之间任意一个数的概率相等。

小结

  • 本节总结了本书中涉及到的有关线性代数、微分和概率的基础知识。
NEXTnumpy基本使用用例