一、线性代数
1、标量(Scalar):
实数,只有大小,没有方向。
2、向量(Vector):
向量:一组实数组成的有序数组,同时具有大小和方向。
点积:a T b = ∑ i a i b i \boldsymbol{a}^{T} \boldsymbol{b}=\sum_{i} a_{i} b_{i} a T b = ∑ i a i b i 。
3、范数
满足以下条件的函数 f : R n → R f: \mathbb{R}^{n} \rightarrow \mathbb{R} f : R n → R , dom f = R n \operatorname{dom} f=\mathbb{R}^{n} d o m f = R n 称为范数:
f f f 是非负的:对所有的 x ∈ R n \boldsymbol{x} \in \mathbb{R}^{n} x ∈ R n 成立 f ( x ) ≥ 0 f(\boldsymbol{x}) \geq 0 f ( x ) ≥ 0 ;
f f f 是正定的:仅对 x = 0 \boldsymbol{x}=\mathbf{0} x = 0 成立 f ( x ) = 0 f(\boldsymbol{x})=0 f ( x ) = 0 ;
f f f 是齐次的:对所有的 x ∈ R n \boldsymbol{x} \in \mathbb{R}^{n} x ∈ R n 和 t ∈ R t \in \mathbb{R} t ∈ R 成立 f ( t x ) = ∣ t ∣ f ( x ) f(t \boldsymbol{x})=|t| f(\boldsymbol{x}) f ( t x ) = ∣ t ∣ f ( x ) ;
f f f 满足三角不等式:对所有的 x , y ∈ R n \boldsymbol{x}, \boldsymbol{y} \in \mathbb{R}^{n} x , y ∈ R n 成立 f ( x + y ) ≤ f ( x ) + f ( y ) f(\boldsymbol{x}+\boldsymbol{y}) \leq f(\boldsymbol{x})+f(\boldsymbol{y}) f ( x + y ) ≤ f ( x ) + f ( y ) ;
ℓ ∞ \ell_{\infty} ℓ ∞ -范数:∥ x ∥ ∞ = max { ∣ x 1 ∣ , … , ∣ x n ∣ } \|\boldsymbol{x}\|_{\infty}=\max \left\{\left|x_{1}\right|, \ldots,\left|x_{n}\right|\right\} ∥ x ∥ ∞ = max { ∣ x 1 ∣ , … , ∣ x n ∣ } ;
更一般地:∥ x ∥ p = ( ∣ x 1 ∣ p + ⋯ + ∣ x n ∣ p ) 1 p \|x\|_{p}=\left(\left|x_{1}\right|^{p}+\cdots+\left|x_{n}\right|^{p}\right)^{\frac{1}{p}} ∥ x ∥ p = ( ∣ x 1 ∣ p + ⋯ + ∣ x n ∣ p ) p 1 。
4、矩阵(Matrix)
A = [ a 11 a 12 ⋯ a 1 N a 21 a 22 ⋯ a 2 N ⋮ ⋮ ⋱ ⋮ a M 1 a M 2 ⋯ a M N ] \boldsymbol{A}=\left[\begin{array}{cccc}a_{11} & a_{12} & \cdots & a_{1 N} \\ a_{21} & a_{22} & \cdots & a_{2 N} \\ \vdots & \vdots & \ddots & \vdots \\ a_{M 1} & a_{M 2} & \cdots & a_{M N}\end{array}\right]
A = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ a 1 1 a 2 1 ⋮ a M 1 a 1 2 a 2 2 ⋮ a M 2 ⋯ ⋯ ⋱ ⋯ a 1 N a 2 N ⋮ a M N ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
A \boldsymbol{A} A 是一个由 M M M 行 N N N 列个元素排列成的矩形阵列,称为 M × N M \times N M × N 的矩阵。
5、线性变换
矩阵 A \boldsymbol{A} A 定义了一个从空间 R N \mathbb{R}^{N} R N 到空间 R M \mathbb{R}^{M} R M 的线性映射(线性变换)。
两个有限维欧氏空间的映射函数f : R N → R M f:\mathbb{R}^{N} \rightarrow \mathbb{R}^{M} f : R N → R M 可以表示为:
y = A x ≜ [ a 11 x 1 + a 12 x 2 + ⋯ + a 1 N x N a 21 x 1 + a 22 x 2 + ⋯ + a 2 N x N ⋮ a M 1 x 1 + a M 2 x 2 + ⋯ + a M N x N ] \boldsymbol{y}=\boldsymbol{A} \boldsymbol{x} \triangleq\left[\begin{array}{c}
a_{11} x_{1}+a_{12} x_{2}+\cdots+a_{1 N} x_{N} \\
a_{21} x_{1}+a_{22} x_{2}+\cdots+a_{2 N} x_{N} \\
\vdots \\
a_{M 1} x_{1}+a_{M 2} x_{2}+\cdots+a_{M N} x_{N}
\end{array}\right] y = A x ≜ ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ a 1 1 x 1 + a 1 2 x 2 + ⋯ + a 1 N x N a 2 1 x 1 + a 2 2 x 2 + ⋯ + a 2 N x N ⋮ a M 1 x 1 + a M 2 x 2 + ⋯ + a M N x N ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
6、Hadamard积
矩阵 A \boldsymbol{A} A 和矩阵 B \boldsymbol{B} B 的Hadamard积 也称为逐点乘积,为 A \boldsymbol{A} A 和 B \boldsymbol{B} B 中对应的元素相乘。
[ A ⊙ B ] m n = a m n b m n [\boldsymbol{A} \odot \boldsymbol{B}]_{m n}=a_{m n} b_{m n}
[ A ⊙ B ] m n = a m n b m n
7、矩阵范数
算子范数:算子范数是衡量线性算子或矩阵对向量放大作用的最大倍数 的范数。$$|A|=\max \left{\frac{|A x|}{|x|}: x \in \mathbb{R}^{n}, x \neq \mathbf{0}\right}=\max \left{|A x|: x \in \mathbb{R}^{n},|x|=1\right}$$
常见算子范数:
∥ A ∥ p = max x ≠ 0 ∥ A x ∥ p ∥ x ∥ p \|\boldsymbol{A}\|_{p}=\max _{\boldsymbol{x} \neq \mathbf{0}} \frac{\|\boldsymbol{A} \boldsymbol{x}\|_{p}}{\|\boldsymbol{x}\|_{p}}
∥ A ∥ p = x = 0 max ∥ x ∥ p ∥ A x ∥ p
最大绝对列和:∥ A ∥ 1 = max 1 ≤ j ≤ n ∑ i = 1 m ∣ a i j ∣ \|\boldsymbol{A}\|_{1}=\max _{1 \leq j \leq n} \sum_{i=1}^{m}\left|a_{i j}\right| ∥ A ∥ 1 = max 1 ≤ j ≤ n ∑ i = 1 m ∣ a i j ∣ ;
A \boldsymbol{A} A 的最大奇异值:∥ A ∥ 2 = λ max ( A T A ) \|\boldsymbol{A}\|_{2}=\sqrt{\lambda_{\max }\left(\boldsymbol{A}^{T} \boldsymbol{A}\right)} ∥ A ∥ 2 = λ m a x ( A T A ) ;
最大绝对行和:∥ A ∥ ∞ = max 1 ≤ i ≤ m ∑ j = 1 n ∣ a i j ∣ \|\boldsymbol{A}\|_{\infty}=\max _{1 \leq i \leq m} \sum_{j=1}^{n}\left|a_{i j}\right| ∥ A ∥ ∞ = max 1 ≤ i ≤ m ∑ j = 1 n ∣ a i j ∣ ;
Frobenius 范数:∥ A ∥ Frob = [ ∑ i j A i j 2 ] 1 2 \|A\|_{\text {Frob }}=\left[\sum_{i j} A_{i j}^{2}\right]^{\frac{1}{2}} ∥ A ∥ Frob = [ ∑ i j A i j 2 ] 2 1 。
8、特征值和特征向量
对于一个给定的线性变换 A \boldsymbol{A} A ,它的特征向量 x \boldsymbol{x} x ,经过这个线性变换之后,得到的新向量仍然与原来的 x \boldsymbol{x} x 保持在同一条直线上,但其长度或方向也许会改变。A x = λ x \boldsymbol{A} x=\lambda x A x = λ x ,λ \lambda λ 为特征值。对称矩阵总会有相应的特征向量和特征值。
正定性: $$|x|{2}=x {T} x \geq 0$$
一般化: ∀ x ≠ 0 , x T A x > 0 \forall x \neq 0, x^{T} A x>0 ∀ x = 0 , x T A x > 0 ,称 A \boldsymbol{A} A 为正定矩阵。设 A \boldsymbol{A} A 是 n × n n \times n n × n 对称矩阵,当且仅当 A \boldsymbol{A} A 的特征值均为非负数,称 A \boldsymbol{A} A 为半正定矩阵。
正交矩阵:
所有的列向量都是单位正交向量
所有的行向量都是单位正交向量
可以写为:U U T = I \boldsymbol{U} \boldsymbol{U}^{T}=\boldsymbol{I} U U T = I
置换矩阵:
矩阵的每一行和每一列的元素中只有一个 1 ,其余元素都为 0。置换矩阵是正交矩阵。
9、张量(Tensor)
一个数组中的元素分布在若干维坐标的规则网格中。
二、微积分
1、标量求导
y y y
a a a
x n x^{n} x n
e x e^x e x
log ( x ) \log (x) log ( x )
sin ( x ) \sin (x) sin ( x )
d y d x \frac{d y}{d x} d x d y
0 0 0
n x n − 1 n x^{n-1} n x n − 1
e x e^x e x
1 x \frac{1}{x} x 1
cos ( x ) \cos (x) cos ( x )
y y y
u + v u+v u + v
u v u v u v
y = f ( u ) , u = g ( x ) y=f(u), u=g(x) y = f ( u ) , u = g ( x )
d y d x \frac{d y}{d x} d x d y
d u d x + d v d x \frac{d u}{d x}+\frac{d v}{d x} d x d u + d x d v
d u d x v + d v d x u \frac{d u}{d x} v+\frac{d v}{d x} u d x d u v + d x d v u
d y d u d u d x \frac{d y}{d u} \frac{d u}{d x} d u d y d x d u
2、矢量求导
若x = [ x 1 x 2 ⋮ x n ] \boldsymbol{x}=\left[\begin{array}{c}x_{1} \\x_{2} \\\vdots \\x_{n}\end{array}\right] x = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ x 1 x 2 ⋮ x n ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ ,则∂ y ∂ x = [ ∂ y ∂ x 1 , ∂ y ∂ x 2 , … , ∂ y ∂ x n ] \frac{\partial y}{\partial \boldsymbol{x}}=\left[\frac{\partial y}{\partial x_{1}}, \frac{\partial y}{\partial x_{2}}, \ldots, \frac{\partial y}{\partial x_{n}}\right] ∂ x ∂ y = [ ∂ x 1 ∂ y , ∂ x 2 ∂ y , … , ∂ x n ∂ y ]
若y = [ y 1 y 2 ⋮ y n ] \boldsymbol{y}=\left[\begin{array}{c}y_{1} \\y_{2} \\\vdots \\y_{n}\end{array}\right] y = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ y 1 y 2 ⋮ y n ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ ,则∂ y ∂ x = [ ∂ y 1 ∂ x ∂ y 2 ∂ x ⋮ ∂ y m ∂ x ] \frac{\partial \boldsymbol{y}}{\partial x}=\left[\begin{array}{c}\frac{\partial y_{1}}{\partial x} \\\frac{\partial y_{2}}{\partial x} \\\vdots \\\frac{\partial y_{m}}{\partial x}\end{array}\right] ∂ x ∂ y = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ ∂ x ∂ y 1 ∂ x ∂ y 2 ⋮ ∂ x ∂ y m ⎦ ⎥ ⎥ ⎥ ⎥ ⎤
若x = [ x 1 x 2 ⋮ x n ] \boldsymbol{x}=\left[\begin{array}{c}x_{1} \\x_{2} \\\vdots \\x_{n}\end{array}\right] x = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ x 1 x 2 ⋮ x n ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ ,y = [ y 1 y 2 ⋮ y n ] \boldsymbol{y}=\left[\begin{array}{c}y_{1} \\y_{2} \\\vdots \\y_{n}\end{array}\right] y = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ y 1 y 2 ⋮ y n ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ ,则∂ y ∂ x = [ ∂ y 1 ∂ x ∂ y 2 ∂ x ⋮ ∂ y m ∂ x ] = [ ∂ y 1 ∂ x 1 , ∂ y 1 ∂ x 2 , … , ∂ y 1 ∂ x n ∂ y 2 ∂ x 1 , ∂ y 2 ∂ x 2 , … , ∂ y 2 ∂ x n ⋮ ∂ y m ∂ x 1 , ∂ y m ∂ x 2 , … , ∂ y m ∂ x n ] m × n \frac{\partial \boldsymbol{y}}{\partial \boldsymbol{x}}=\left[\begin{array}{c}\frac{\partial y_{1}}{\partial \boldsymbol{x}} \\\frac{\partial y_{2}}{\partial \boldsymbol{x}} \\\vdots \\\frac{\partial y_{m}}{\partial \boldsymbol{x}}\end{array}\right]=\left[\begin{array}{c}\frac{\partial y_{1}}{\partial x_{1}}, \frac{\partial y_{1}}{\partial x_{2}}, \ldots, \frac{\partial y_{1}}{\partial x_{n}} \\\frac{\partial y_{2}}{\partial x_{1}}, \frac{\partial y_{2}}{\partial x_{2}}, \ldots, \frac{\partial y_{2}}{\partial x_{n}} \\\vdots \\\frac{\partial y_{m}}{\partial x_{1}}, \frac{\partial y_{m}}{\partial x_{2}}, \ldots, \frac{\partial y_{m}}{\partial x_{n}}\end{array}\right]_{m \times n} ∂ x ∂ y = ⎣ ⎢ ⎢ ⎢ ⎢ ⎡ ∂ x ∂ y 1 ∂ x ∂ y 2 ⋮ ∂ x ∂ y m ⎦ ⎥ ⎥ ⎥ ⎥ ⎤ = ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎡ ∂ x 1 ∂ y 1 , ∂ x 2 ∂ y 1 , … , ∂ x n ∂ y 1 ∂ x 1 ∂ y 2 , ∂ x 2 ∂ y 2 , … , ∂ x n ∂ y 2 ⋮ ∂ x 1 ∂ y m , ∂ x 2 ∂ y m , … , ∂ x n ∂ y m ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤ m × n
3、矢量和矩阵求导
求导的分母形状不变,分子的形状变成倒数,最后形状按照分子加分母的形状拼接,将形状为1的部分舍弃。
x ( 1 , ) x(1,) x ( 1 , )
x ( n , 1 ) \boldsymbol{x}(n,1) x ( n , 1 )
X ( n , k ) \boldsymbol{X}(n,k) X ( n , k )
y ( 1 , ) y(1,) y ( 1 , )
∂ y ∂ x ( 1 , ) \frac{\partial y}{\partial x}(1,) ∂ x ∂ y ( 1 , )
∂ y ∂ x ( 1 , n ) \frac{\partial y}{\partial \boldsymbol{x}}(1, n) ∂ x ∂ y ( 1 , n )
∂ y ∂ X ( k , n ) \frac{\partial y}{\partial \boldsymbol{X}}(k, n) ∂ X ∂ y ( k , n )
y ( m , 1 ) \boldsymbol{y}(m,1) y ( m , 1 )
∂ y ∂ x ( m , 1 ) \frac{\partial \boldsymbol{y}}{\partial x}(m, 1) ∂ x ∂ y ( m , 1 )
∂ y ∂ x ( m , n ) \frac{\partial \boldsymbol{y}}{\partial \boldsymbol{x}}(m, n) ∂ x ∂ y ( m , n )
∂ y ∂ X ( m , k , n ) \frac{\partial \boldsymbol{y}}{\partial \boldsymbol{X}}(m, k, n) ∂ X ∂ y ( m , k , n )
Y ( m , l ) \boldsymbol{Y}(m,l) Y ( m , l )
∂ Y ∂ x ( m , l ) \frac{\partial \boldsymbol{Y}}{\partial x}(m, l) ∂ x ∂ Y ( m , l )
∂ Y ∂ x ( m , l , n ) \frac{\partial \boldsymbol{Y}}{\partial \boldsymbol{x}}(m, l, n) ∂ x ∂ Y ( m , l , n )
∂ Y ∂ X ( m , l , k , n ) \frac{\partial \boldsymbol{Y}}{\partial \boldsymbol{X}}(m, l, k, n) ∂ X ∂ Y ( m , l , k , n )
4、自动微分
深度学习框架通过自动计算导数,即自动微分(automatic differentiation)来加快求导。根据设计好的模型,系统会构建⼀个计算图(computational graph),来跟踪计算是哪些数据通过哪些操作组合起来产生输出。
1 2 3 4 5 6 import torchx=torch.arange(4.0 ) x.requires_grad_(True ) y=2 *torch.dot(x,x) y.backward() x.grad
正向传播
∂ y ∂ x = ∂ y ∂ u n ( ∂ u n ∂ u n − 1 ( … ( ∂ u 2 ∂ u 1 ∂ u 1 ∂ x ) ) ) \frac{\partial y}{\partial x}=\frac{\partial y}{\partial u_{n}}\left(\frac{\partial u_{n}}{\partial u_{n-1}}\left(\ldots\left(\frac{\partial u_{2}}{\partial u_{1}} \frac{\partial u_{1}}{\partial x}\right)\right)\right)
∂ x ∂ y = ∂ u n ∂ y ( ∂ u n − 1 ∂ u n ( … ( ∂ u 1 ∂ u 2 ∂ x ∂ u 1 ) ) )
反向传播
∂ y ∂ x = ( ( ( ∂ y ∂ u n ∂ u n ∂ u n − 1 ) … ) ∂ u 2 ∂ u 1 ) ∂ u 1 ∂ x \frac{\partial y}{\partial x}=\left(\left(\left(\frac{\partial y}{\partial u_{n}} \frac{\partial u_{n}}{\partial u_{n-1}}\right) \ldots\right) \frac{\partial u_{2}}{\partial u_{1}}\right) \frac{\partial u_{1}}{\partial x}
∂ x ∂ y = ( ( ( ∂ u n ∂ y ∂ u n − 1 ∂ u n ) … ) ∂ u 1 ∂ u 2 ) ∂ x ∂ u 1
三、信息论
1、熵
信息论的核心思想是量化数据中的信息内容。在信息论中,该数值被称为分布 P P P 的熵(entropy)。可以通过以下方程得到:
H [ P ] = ∑ j − P ( j ) log P ( j ) H[P]=\sum_{j}-P(j) \log P(j)
H [ P ] = j ∑ − P ( j ) log P ( j )
信息论的基本定理之一指出,为了对从分布 p p p 中随机抽取的数据进行编码 ,我们至少需要 H [ P ] H[P] H [ P ] "纳特(nat)"对其进行编码。"纳特"相当于比特(bit),但是对数底为 e e e 而不是 2 2 2 。因此,一个纳特是 1 log ( 2 ) ≈ 1.44 \frac{1}{\log (2)} \approx 1.44 l o g ( 2 ) 1 ≈ 1 . 4 4 比特。
2、交叉熵
交叉熵是按照概率分布 q q q 的最优编码对真实分布为 p p p 的信息进行编码的长度。
H(p, q) =E_{p}[-\log q(x)] =-\sum_{x} p(x) \log q(x)$$在给定 $q$ 的情况下,如果 $p$ 和 $q$ 越接近,交叉熵越小;如果 $p$ 和 $q$ 越远,交叉熵就越大。
##### 3、KL散度
KL散度是用概率分布 $q$ 来近似 $p$ 时所造成的信息损失量。
KL散度是按照概率分布 $q$ 的最优编码对真实分布为 $p$ 的信息进行编码,其平均编码长度(即交叉熵) $H(p, q)$ 和 $p$ 的最优平均编码长度(即熵) $H(p)$ 之间的差异。
$$\operatorname{KL}(p, q)= H(p, q)-H(p) = \sum_{x} p(x) \log \frac{p(x)}{q(x)}
KL ( p , q ) = H ( p , q ) − H ( p ) = ∫ p ( x ) log p ( x ) q ( x ) d x \operatorname{KL}(p, q)= H(p, q)-H(p) =\int p(x) \log \frac{p(x)}{q(x)} d x
K L ( p , q ) = H ( p , q ) − H ( p ) = ∫ p ( x ) log q ( x ) p ( x ) d x
4、交叉熵损失
在分类任务中,最小化 KL 散度等价于最小化交叉熵,而当真实标签是 one-hot 时,交叉熵进一步简化为负对数似然。
KL 散度衡量两个分布的差异,最小化 KL 散度等价于让模型分布逼近真实分布。
D K L ( p r ( y ∣ x ) ∣ ∣ p θ ( y ∣ x ) ) = ∑ y = 0 k p r ( y ∣ x ) log p r ( y ∣ x ) p θ ( y ∣ x ) = ∑ y p r ( y ∣ x ) log p r ( y ∣ x ) − ∑ y p r ( y ∣ x ) log p θ ( y ∣ x ) \mathrm{D}_{K L}\left(p_{r}(y \mid x)| | p_{\theta}(y \mid x)\right) =\sum_{y=0}^{k} p_{r}(y \mid x) \log \frac{p_{r}(y \mid x)}{p_{\theta}(y \mid x)} =\sum_{y} p_{r}(y \mid x) \log p_{r}(y \mid x)-\sum_{y} p_{r}(y \mid x) \log p_{\theta}(y \mid x)
D K L ( p r ( y ∣ x ) ∣ ∣ p θ ( y ∣ x ) ) = y = 0 ∑ k p r ( y ∣ x ) log p θ ( y ∣ x ) p r ( y ∣ x ) = y ∑ p r ( y ∣ x ) log p r ( y ∣ x ) − y ∑ p r ( y ∣ x ) log p θ ( y ∣ x )
化简后第一项为常数,第二项为交叉熵,即 KL 散度正比于交叉熵,最小化 KL 散度等价于最小化交叉熵。
p r ( y ∣ x ) p_{r}(y \mid x) p r ( y ∣ x ) :真实的条件分布(ground truth),给定输入 x x x 时,输出为 y y y 的真实概率。
p θ ( y ∣ x ) p_{\theta}(y \mid x) p θ ( y ∣ x ) :模型预测的条件分布,由参数 θ \theta θ 决定。