1 绪论
近年人工智能异常火热,它虽然是一门新兴的学科,但是在图像、自然语言、语音等领域大放异彩。而各行各业也积极拥抱AI,使得机器学习技术炙手可热。深度学习作为机器学习的一部分也获得了大量的关注,特别是卷积神经网络在图像识别竞赛中获得巨大优势,以及DeepMind应用强化学习战胜世界围棋高手李世石,使得深度学习万众瞩目。
深度学习的发展离不开数学,概率法则告诉我们AI系统如何推理,信息论使我们能够量化概率分布中的不确定性总量,对于算法以及AI框架的实现又离不开工程性极强的线性代数。因此我们在学习深度学习之前,首先要掌握好相关的数学基础,这样才能在后续的学习中游刃有余。
2 概率论
-
随机变量
随机变量是随机事件的数量表现,对随机事件进行数量量化的好处就是可以用数学分析的方法来进行分析研究。
随机变量可以是离散的也可以是连续的,离散随机变量拥有有限或者无限多的状态;连续随机变量伴随着实数值。 -
边缘概率和条件概率
当我们知道了一组变量的联合概率分布,但是想要了解其中一个子集的概率分布,这一定义在子集上的概率分布被称为边缘概率分布。还有很多时候我们感兴趣的是某个事件在给定其他事件发生时出现的概率,这种概率称为条件概率。
假设有离散变量x和y,我们知道其联合概率分布P(x,y),每行表示不同的x值、每列表示不同的y值。对于边缘概率可表示为:
∀ x i ∈ x , P ( x i ) = ∑ y P ( x = x i , y = y j ) \forall x_i \in x, P(x_i)=\sum_y P(x=x_i,y=y_j) ∀xi∈x,P(xi)=y∑P(x=xi,y=yj)
而对于连续变量可用积分替换求和: P ( x i ) = ∫ P ( x , y ) d y P(x_i)=\int P(x,y)dy P(xi)=∫P(x,y)dy
条件概率则表示为:
P ( y = y j ∣ x = x i ) = P ( y = y j , x = x i ) P ( x = x i ) P(y=y_j|x=x_i)=\frac{P(y=y_j,x=x_i)}{P(x=x_i)} P(y=yj∣x=xi)=P(x=xi)P(y=yj,x=xi) -
条件概率的链式法则
任何多维随机变量的联合概率分布,都可以分解为只有一个变量的条件概率相乘的形式:
P ( x ( 1 ) , … , x ( n ) ) = P ( x ( n ) ) ∏ i = 2 n P ( x ( i ) ∣ x ( i + 1 ) , … , x ( n ) ) P(x^{(1)},\dots,x^{(n)})=P(x^{(n)})\prod _{i=2}^n P(x^{(i)}|x^{(i+1)},\dots,x^{(n)}) P(x(1),…,x(n))=P(x(n))i=2∏nP(x(i)∣x(i+1),…,x(n))
这就是条件概率的链式法则,例如:
P ( a , b , c ) = P ( a ∣ b , c ) P ( b , c ) P ( b , c ) = P ( b ∣ c ) P ( c ) P ( a , b , c ) = P ( a ∣ b , c ) P ( b ∣ c ) P ( c ) P(a,b,c)=P(a|b,c)P(b,c) \\ P(b,c)=P(b|c)P(c) \\ P(a,b,c)=P(a|b,c)P(b|c)P(c) P(a,b,c)=P(a∣b,c)P(b,c)P(b,c)=P(b∣c)P(c)P(a,b,c)=P(a∣b,c)P(b∣c)P(c) -
贝叶斯公式
全概率公式: P ( B ) = ∑ i = 1 n P ( A i ) P ( B ∣ A i ) P(B)=\sum_{i=1}^nP(A_i)P(B|A_i) P(B)=∑i=1nP(Ai)P(B∣Ai)
先验概率:根据以往经验和分析得到的概率
后验概率:得到“结果”的信息修正后的概率
贝叶斯公式:计算后验概率 P ( A i ∣ B ) = P ( B ∣ A i ) P ( A i ) P ( B ) = P ( B ∣ A i ) P ( A i ) ∑ j = 1 n P ( A j ) P ( B ∣ A j ) P(A_i|B)=\frac{P(B|A_i)P(A_i)}{P(B)}=\frac{P(B|A_i)P(A_i)}{\sum_{j=1}^nP(A_j)P(B|A_j)} P(Ai∣B)=P(B)P(B∣Ai)P(Ai)=∑j=1nP(Aj)P(B∣Aj)P(B∣Ai)P(Ai) -
常见概率分布
5.1. 伯努利分布(0-1分布):只有两种结果的单次随机实验。 P ( x = 1 ) = p , P ( x = 0 ) = 1 − p P(x=1)=p, \; P(x=0)=1-p P(x=1)=p,P(x=0)=1−p
5.2 二项分布:有两种结果的多次重复实验。 P ( x = k ) = C n k p k ( 1 − p ) n − k P(x=k)=\textrm{C}_n^kp^k(1-p)^{n-k} P(x=k)=Cnkpk(1−p)n−k
5.3 均匀分布(矩形分布):给定长的间隔 [ a , b ] [a,b] [a,b]内的分布概率是等可能的。 P ( x ) = 1 b − 1 P(x)=\frac{1}{b-1} P(x)=b−11
5.4 高斯分布(正态分布): P ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 P(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}} P(x)=2πσ1e−2σ2(x−μ)2
5.5 指数分布:常用来表示独立随机事件发生的时间间隔,重要特征是无记忆性。参数为 λ > 0 \lambda>0 λ>0的指数的概率密度函数为: P ( x ) = λ e − λ x , x ⩾ 0 P(x)=\lambda e^{-\lambda x},\;x\geqslant 0 P(x)=λe−λx,x⩾0 -
常见统计量
6.1 期望:当x由概率 P P P产生时, x x x的平均值。 E ( x ) = ∑ x x P ( x ) E(x)=\sum_x xP(x) E(x)=∑xxP(x)或 E ( x ) = ∫ x P ( x ) d x E(x)=\int xP(x)dx E(x)=∫xP(x)dx
6.2 方差:衡量随机变量与其数学期望之间的偏离程度。 V a r ( x ) = E ( [ x − E ( x ) ] 2 ) = E ( x ) 2 − [ E ( x ) ] 2 Var(x)=E([x-E(x)]^2)=E(x)^2-[E(x)]^2 Var(x)=E([x−E(x)]2)=E(x)2−[E(x)]2
6.3 协方差:衡量两个随机变量 X X X和 Y Y Y直接的总体误差。 C o v ( X , Y ) = E ( [ x − E ( x ) ] [ y − E ( y ) ] ) = E ( x y ) − E ( x ) E ( y ) Cov(X,Y)=E([x-E(x)][y-E(y)])=E(xy)-E(x)E(y) Cov(X,Y)=E([x−E(x)][y−E(y)])=E(xy)−E(x)E(y)
3 信息论
-
一维变量的熵
- 自信息
信息论主要研究的是对一个信号包含信息的多少进行量化。信息论的基本想法是一个不太可能发生的事情居然发生了,要比一个必然发生的事件发生了,能够提供更多的信息。
我们定义一个事件 x = x i x=x_i x=xi,其自信息为: I ( x i ) = − l o g P ( x i ) I(x_i)=-logP(x_i) I(xi)=−logP(xi)自信息只处理单个的输出。 - 香农熵
我们可以用香农熵来对整体的概率分布的不确定性总量进行量化: H ( x ) = − ∑ i = 1 n P ( x i ) l o g P ( x i ) H(x)=-\sum_{i=1}^nP(x_i)logP(x_i) H(x)=−i=1∑nP(xi)logP(xi) H ( x ) H(x) H(x)的值越小,则 x x x的纯度越高,蕴含的不确定性越小。当 x x x是连续的,香农熵也被称为微分熵。 - 散度(KL)
一个随机变量 x x x有两个单独的概率分布 P ( x ) P(x) P(x)和 Q ( x ) Q(x) Q(x),可以用散度衡量这两个分布的差异: D K L ( P ∣ ∣ Q ) = ∑ i = 1 n P ( x i ) l o g P ( x i ) Q ( x i ) D_{KL}(P||Q)=\sum_{i=1}^n P(x_i)log\frac{P(x_i)}{Q(x_i)} DKL(P∣∣Q)=i=1∑nP(xi)logQ(xi)P(xi) - 交叉熵
一般用来求目标与预测值之间的差距,深度学习中常用于分类任务作为损失函数, H ( P , Q ) = H ( P ) + D K L ( P ∣ ∣ Q ) H(P,Q)=H(P)+D_{KL}(P||Q) H(P,Q)=H(P)+DKL(P∣∣Q),则表示为: H ( P , Q ) = ∑ i = 1 n P ( x i ) l o g P ( x i ) − ∑ i = 1 n P ( x i ) l o g P ( x i ) Q ( x i ) = − ∑ i = 1 n P ( x i ) l o g Q ( x i ) H(P,Q)=\sum_{i=1}^n P(x_i)logP(x_i)-\sum_{i=1}^n P(x_i)log\frac{P(x_i)}{Q(x_i)}=-\sum_{i=1}^nP(x_i)logQ(x_i) H(P,Q)=i=1∑nP(xi)logP(xi)−i=1∑nP(xi)logQ(xi)P(xi)=−i=1∑nP(xi)logQ(xi)
- 自信息
-
二维变量的熵
两个随机变量 X X X和 Y Y Y的联合分布为 P ( X , Y ) P(X,Y) P(X,Y)- 联合熵
用来度量二维随机变量 X Y XY XY的不确定性: H ( X , Y ) = − ∑ i = 1 n ∑ j = 1 n P ( x i , y j ) l o g P ( x i , y j ) H(X,Y)=-\sum_{i=1}^n\sum_{j=1}^nP(x_i,y_j)logP(x_i,y_j) H(X,Y)=−i=1∑nj=1∑nP(xi,yj)logP(xi,yj) - 条件熵
在随机变量 X X X发生的前提下,随机变量 Y Y Y带来的熵,用来衡量 Y Y Y的不确定性。定义为 Y Y Y的条件熵: H ( Y ∣ X ) = ∑ i = 1 n P ( x i ) H ( Y ∣ X = x i ) = − ∑ i = 1 n P ( x i ) ∑ j = 1 n P ( y j ∣ x i ) l o g P ( y j ∣ x i ) = − ∑ i = 1 n ∑ j = 1 n P ( x i , y j ) l o g P ( y j ∣ x i ) H(Y|X)=\sum_{i=1}^n P(x_i)H(Y|X=x_i) \\ =-\sum_{i=1}^n P(x_i)\sum_{j=1}^nP(y_j|x_i)logP(y_j|x_i) \\ =-\sum_{i=1}^n\sum_{j=1}^nP(x_i,y_j)logP(y_j|x_i) H(Y∣X)=i=1∑nP(xi)H(Y∣X=xi)=−i=1∑nP(xi)j=1∑nP(yj∣xi)logP(yj∣xi)=−i=1∑nj=1∑nP(xi,yj)logP(yj∣xi)
有 H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(Y|X)=H(X,Y)-H(X) H(Y∣X)=H(X,Y)−H(X) - 互信息
I ( X ; Y ) = H ( X ) + H ( Y ) − H ( X , Y ) I(X;Y)=H(X)+H(Y)-H(X,Y) I(X;Y)=H(X)+H(Y)−H(X,Y)
- 联合熵
4 线性代数
线性代数广泛应用于科学和工中,掌握好线性代数对于理解和从事机器学习算法相关的工作很有必要。
- 基础
- 标量:一个单独的数。
- 向量:一列数。
- 矩阵:二维数组。
- 张量:超过两维的数组。在pytorch和TF中用张量(tensor)来表示向量、矩阵、张量
- 相关运算
- 相乘: C = AB , C i , j = ∑ k A i , k B k , j \textrm{C}=\textrm{A}\textrm{B},\;C_{i,j}=\sum_kA_{i,k}B_{k,j} C=AB,Ci,j=∑kAi,kBk,j
- 逆矩阵: A − 1 A = I n \textrm{A}^{-1}\textrm{A}=\textrm{I}_n A−1A=In,其中 I n \textrm{I}_n In为单位矩阵
- 特征分解
将矩阵分解成一组特征向量和特征值,即 A v = λ v \textrm{A}v=\lambda v Av=λv - 范数
机器学习中经常使用范数来衡量向量的大小,对于 L p L^p Lp范数定义如下: L p = ∣ ∣ x ∣ ∣ p = ( ∑ i ∣ x i ∣ p ) 1 p L^p=||x||_p=(\sum_i|x_i|^p)^{\frac{1}{p}} Lp=∣∣x∣∣p=(i∑∣xi∣p)p1- 1范数: ∣ ∣ x ∣ ∣ 1 = ∑ i ∣ x i ∣ ||x||_1=\sum_i |x_i| ∣∣x∣∣1=∑i∣xi∣
- 2范数: ∣ ∣ x ∣ ∣ 2 = ∑ i ∣ x i ∣ 2 ||x||_2=\sqrt{\sum_i |x_i|^2} ∣∣x∣∣2=∑i∣xi∣2
- 最大范数: ∣ ∣ x ∣ ∣ ∞ = m a x i ∣ x i ∣ ||x||_{\infty}=\underset{i}{max}|x_i| ∣∣x∣∣∞=imax∣xi∣
参考
- Datawhale相关资料《水很深的深度学习》
- 图书《深度学习》(花书)