11.2. 数学基础¶
本节总结了本书中涉及的有关线性代数、微分和概率的基础知识。为避免赘述本书未涉及的数学背景知识,本节中的少数定义稍有简化。
11.2.1. 线性代数¶
下面分别概括了向量、矩阵、运算、范数、特征向量和特征值的概念。
11.2.1.1. 向量¶
本书中的向量指的是列向量。一个\(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}\)。
11.2.1.2. 矩阵¶
一个\(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}\)。不难发现,向量是特殊的矩阵。
11.2.1.3. 运算¶
设\(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\)表示两个矩阵按元素乘法的运算,即阿达玛(Hadamard)积:
定义一个标量\(k\)。标量与矩阵的乘法也是按元素做乘法的运算:
其他诸如标量与矩阵按元素相加、相除等运算与上式中的相乘运算类似。矩阵按元素开根号、取对数等运算也就是对矩阵每个元素开根号、取对数等,并得到和原矩阵形状相同的矩阵。
矩阵乘法和按元素的乘法不同。设\(\boldsymbol{A}\)为\(m\)行\(p\)列的矩阵,\(\boldsymbol{B}\)为\(p\)行\(n\)列的矩阵。两个矩阵相乘的结果
是一个\(m\)行\(n\)列的矩阵,其中第\(i\)行第\(j\)列(\(1 \leq i \leq m, 1 \leq j \leq n\))的元素为
11.2.1.4. 范数¶
设\(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\)列的元素。
11.2.1.5. 特征向量和特征值¶
对于一个\(n\)行\(n\)列的矩阵\(\boldsymbol{A}\),假设有标量\(\lambda\)和非零的\(n\)维向量\(\boldsymbol{v}\)使
那么\(\boldsymbol{v}\)是矩阵\(\boldsymbol{A}\)的一个特征向量,标量\(\lambda\)是\(\boldsymbol{v}\)对应的特征值。
11.2.2. 微分¶
我们在这里简要介绍微分的一些基本概念和演算。
11.2.2.1. 导数和微分¶
假设函数\(f: \mathbb{R} \rightarrow \mathbb{R}\)的输入和输出都是标量。函数\(f\)的导数
且假定该极限存在。给定\(y = f(x)\),其中\(x\)和\(y\)分别是函数\(f\)的自变量和因变量。以下有关导数和微分的表达式等价:
其中符号\(\text{D}\)和\(\text{d}/\text{d}x\)也叫微分运算符。常见的微分演算有\(\text{D}C = 0\)(\(C\)为常数)、\(\text{D}x^n = nx^{n-1}\)(\(n\)为常数)、\(\text{D}e^x = e^x\)、\(\text{D}\ln(x) = 1/x\)等。
如果函数\(f\)和\(g\)都可导,设\(C\)为常数,那么
如果\(y=f(u)\)和\(u=g(x)\)都是可导函数,依据链式法则,
11.2.2.2. 泰勒展开¶
函数\(f\)的泰勒展开式是
其中\(f^{(n)}\)为函数\(f\)的\(n\)阶导数(求\(n\)次导数),\(n!\)为\(n\)的阶乘。假设\(\epsilon\)是一个足够小的数,如果将上式中\(x\)和\(a\)分别替换成\(x+\epsilon\)和\(x\),可以得到
由于\(\epsilon\)足够小,上式也可以简化成
11.2.2.3. 偏导数¶
设\(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\)的导数。
11.2.2.4. 梯度¶
假设函数\(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}\)是一个矩阵,那么
11.2.2.5. 海森矩阵¶
假设函数\(f: \mathbb{R}^n \rightarrow \mathbb{R}\)的输入是一个\(n\)维向量\(\boldsymbol{x} = [x_1, x_2, \ldots, x_n]^\top\),输出是标量。假定函数\(f\)所有的二阶偏导数都存在,\(f\)的海森矩阵\(\boldsymbol{H}\)是一个\(n\)行\(n\)列的矩阵:
其中二阶偏导数为
11.2.3. 概率¶
最后,我们简要介绍条件概率、期望和均匀分布。
11.2.3.1. 条件概率¶
假设事件\(A\)和事件\(B\)的概率分别为\(P(A)\)和\(P(B)\),两个事件同时发生的概率记作\(P(A \cap B)\)或\(P(A, B)\)。给定事件\(B\),事件\(A\)的条件概率
也就是说,
当满足
时,事件\(A\)和事件\(B\)相互独立。
11.2.3.3. 均匀分布¶
假设随机变量\(X\)服从\([a, b]\)上的均匀分布,即\(X \sim U(a, b)\)。随机变量\(X\)取\(a\)和\(b\)之间任意一个数的概率相等。
11.2.4. 小结¶
- 本附录总结了本书中涉及的有关线性代数、微分和概率的基础知识。
11.2.5. 练习¶
- 求函数\(f(\boldsymbol{x}) = 3x_1^2 + 5e^{x_2}\)的梯度。