接上一篇文章:DeepLearning深度学习(花书)读书笔记——概率与信息论(一)
10、常用函数的有用性质
深度学习中有一些常用的处理概率分布的函数。其中一个是logistic sigmoid函数:
σ
(
x
)
=
1
1
+
exp
(
−
x
)
(3.30)
\sigma(x)=\frac{1}{1+\exp{(-x)}} \tag{3.30}
σ(x)=1+exp(−x)1(3.30)
sigmoid函数通常用来产生Bernoulli分布中的参数
ϕ
\phi
ϕ,因为它的范围是
(
0
,
1
)
(0,1)
(0,1),处在
ϕ
\phi
ϕ的有效范围内。sigmoid函数在变量取绝对值非常大的正值或负值时会出现饱和现象,此时对输入的微小改变会变得不敏感。如下图所示:
另一个非常有用的函数是softplus函数:
ζ
(
x
)
=
log
(
1
+
exp
(
x
)
)
(3.31)
\zeta(x)=\log{(1+\exp{(x)})} \tag{3.31}
ζ(x)=log(1+exp(x))(3.31)
softplus函数可以用来产生正态分布的
β
\beta
β和
σ
\sigma
σ参数,因为它的范围是
(
0
,
∞
)
(0,\infty)
(0,∞)。softplus函数名称来源于它是另外一个函数的平滑形式:
x
+
=
max
(
0
,
x
)
(3.32)
x^+=\max(0,x) \tag{3.32}
x+=max(0,x)(3.32)
softplus函数如下图所示:
另外,这两个函数有一些非常有用的性质:
σ
(
x
)
=
exp
(
x
)
exp
(
x
)
+
exp
(
0
)
(3.33)
\sigma(x)=\frac{\exp(x)}{\exp(x)+\exp(0)} \tag{3.33}
σ(x)=exp(x)+exp(0)exp(x)(3.33)
d
d
x
σ
(
x
)
=
σ
(
x
)
(
1
−
σ
(
x
)
)
(3.34)
\frac{d}{dx}\sigma(x)=\sigma(x)(1-\sigma(x)) \tag{3.34}
dxdσ(x)=σ(x)(1−σ(x))(3.34)
1
−
σ
(
x
)
=
σ
(
−
x
)
(3.35)
1-\sigma(x)=\sigma(-x) \tag{3.35}
1−σ(x)=σ(−x)(3.35)
log
σ
(
x
)
=
−
ζ
(
−
x
)
(3.36)
\log\sigma(x)=-\zeta(-x) \tag{3.36}
logσ(x)=−ζ(−x)(3.36)
d
d
x
ζ
(
x
)
=
σ
(
x
)
(3.37)
\frac{d}{dx}\zeta(x)=\sigma(x) \tag{3.37}
dxdζ(x)=σ(x)(3.37)
函数
σ
−
1
(
x
)
\sigma^{-1}(x)
σ−1(x)称为分对数,在机器学习中不常用。如下式:
∀
x
∈
(
0
,
1
)
,
σ
−
1
(
x
)
=
log
(
x
1
−
x
)
(3.38)
\forall{x\in(0,1)},\sigma^{-1}(x)=\log\Big(\frac{x}{1-x}\Big) \tag{3.38}
∀x∈(0,1),σ−1(x)=log(1−xx)(3.38)
∀
x
∈
(
0
,
1
)
,
ζ
−
1
(
x
)
=
log
(
exp
(
x
)
−
1
)
(3.39)
\forall{x\in(0,1)},\zeta^{-1}(x)=\log(\exp(x)-1) \tag{3.39}
∀x∈(0,1),ζ−1(x)=log(exp(x)−1)(3.39)
ζ
(
x
)
=
∫
−
∞
x
σ
(
y
)
d
y
(3.40)
\zeta(x)=\int_{-\infty}^{x}\sigma(y)dy \tag{3.40}
ζ(x)=∫−∞xσ(y)dy(3.40)
softplus函数是正部函数
x
+
=
max
(
0
,
x
)
x^+=\max(0,x)
x+=max(0,x)的平滑版本,相对的,负部函数
x
−
=
max
(
0
,
−
x
)
x^-=\max(0,-x)
x−=max(0,−x)的平滑版本可以用
ζ
(
−
x
)
\zeta(-x)
ζ(−x)表示。就像
x
x
x可以通过正部和负部等式
x
+
−
x
−
=
x
x^+-x^-=x
x+−x−=x恢复一样,softplus函数也可以这样操作:
ζ
(
x
)
−
ζ
(
−
x
)
=
x
(3.41)
\zeta(x)-\zeta(-x)=x \tag{3.41}
ζ(x)−ζ(−x)=x(3.41)
11、贝叶斯规则
机器学习中经常会需要在已知
P
(
y|x
)
P(\text{y|x})
P(y|x)时计算
P
(
x|y
)
P(\text{x|y})
P(x|y),如果还知道
P
(
x
)
P(\text{x})
P(x),则可以用贝叶斯规则(或称为贝叶斯定理)来实现:
P
(
x|y
)
=
P
(
y|x
)
P
(
y
)
(3.42)
P(\text{x|y})=\frac{P(\text{y|x})}{P(\text{y})} \tag{3.42}
P(x|y)=P(y)P(y|x)(3.42)
注意到
P
(
y
)
P(\text{y})
P(y)通常使用
P
(
y
)
=
∑
x
P
(
y|x
)
P
(
x
)
P(\text{y})=\sum_xP(\text{y|x})P(\text{x})
P(y)=∑xP(y|x)P(x)来计算,无需事先已知。
贝叶斯定理是概率论中的一个定理,描述在已知一些条件下,某事件的发生概率。通常,事件
A
A
A在事件
B
B
B已发生的条件下发生的概率,与事件
B
B
B在事件
A
A
A已发生的条件下发生的概率是不一样的。但是,这两者是有确定的关系的,贝叶斯定理就是这种关系的陈述。贝叶斯定理跟随机变量的条件概率以及边际概率分布有关。
12、连续型变量的技术细节
连续型变量和概率密度函数的深入理解需要用到测度论来扩展概率论的知识。前面的章节中介绍到,连续型向量值随机变量
x
\bf{x}
x落在某个集合
S
\Bbb{S}
S中的概率是通过
p
(
x
)
p(\bm{x})
p(x)对集合
S
\Bbb{S}
S积分得到的。但是,这种方式对于一些集合
S
\Bbb{S}
S的选择可能会引起悖论。例如:构造两个集合
S
1
\Bbb{S}_1
S1和
S
2
\Bbb{S}_2
S2,使得它们发生的概率
p
(
x
∈
S
1
)
+
p
(
x
∈
S
2
)
>
1
p(\bm{x}\in\Bbb{S}_1)+p(\bm{x}\in\Bbb{S}_2)>1
p(x∈S1)+p(x∈S2)>1并且它们的交集
S
1
∩
S
2
=
∅
\Bbb{S}_1\cap\Bbb{S}_2=\empty
S1∩S2=∅这种现象是可能存在的。测试论提供了一些特征,使得在计算概率时不会遇到悖论。
在机器学习中,测度论更多的作用是用来描述那些适用于
R
n
\R^n
Rn上的大多数点,确不适用于一些边界情况的定理。测度论提供了一种严格的方式来描述那些非常微小的点集,这类点集称为零测度的。即,零测度集在数据的度量空间中不占任何体积。
测度论中另外一个有用的术语是几乎处处。某个性质如果几乎处处成立,那么它在整个空间中,除了一个测度为零的集合以外都是成立的。这样描述是因为在概率论中,一些重要结果对离散型随机变量成立,但对连续型随机变量只能是“几乎处处”成立的。
连续型随机变量的另一技术细节涉及处理那种相互之间有确定性函数关系的连续型随机变量。假设有两个随机变量
x
\bf{x}
x和
y
\bf{y}
y满足
y
=
g
(
x
)
\bm{y}=g(\bm{x})
y=g(x),其中
g
g
g是可逆的、连续可微的函数。但是,
p
y
(
y
)
=
p
x
(
g
−
1
(
y
)
p_y(y)=p_x(g^{-1}(y)
py(y)=px(g−1(y)是不成立的。这是因为没有考虑到引入函数
g
g
g后造成的空间变形。如果
x
\bm{x}
x落在无穷小的体积为
δ
x
\delta\bm{x}
δx的区域内的概率为
p
(
x
)
δ
x
p(\bm{x})\delta\bm{x}
p(x)δx,引入函数
g
g
g后可能会扩展或者压缩空间,在
x
\bm{x}
x空间内的包围着
x
\bm{x}
x的无穷小体积在
y
\bm{y}
y空间中不一定无穷小。
例如,假设有两个标量随机变量
x
\text{x}
x和
y
\text{y}
y,并且满足
y
=
x
2
\text{y}=\frac{\text{x}}{2}
y=2x以及
x
∼
U
(
0
,
1
)
\text{x}\sim{U(0,1)}
x∼U(0,1)。如果假设
p
y
(
y
)
=
p
x
(
2
y
)
p_y(y)=p_x(2y)
py(y)=px(2y)成立,那么根据均匀分布的概率密度函数(
x
\text{x}
x的概率密度函数除区间
(
0
,
1
)
(0,1)
(0,1)之外值都为
0
0
0,且在这个区间上的值为
1
1
−
0
=
1
\frac{1}{1-0}=1
1−01=1)可以得到,
y
\text{y}
y的概率密度函数
p
y
p_y
py在区间
(
0
,
1
2
)
(0,\frac{1}{2})
(0,21)上的值为
1
1
1,其它都为
0
0
0。此时,对该函数进行积分则有:
∫
p
y
(
y
)
d
y
=
∫
0
1
2
1
d
y
=
1
2
(3.43)
\int{p_y(y)}dy=\int^{\frac{1}{2}}_{0}{1dy}=\frac{1}{2} \tag{3.43}
∫py(y)dy=∫0211dy=21(3.43)
而这违背了概率密度定义中积分为
1
1
1的性质。因此这个假设不成立。
那么,如何解决这个问题实现随机变量的函数的分布计算,需要应用以下性质(因为函数
g
g
g可微可导,两个变量在无穷小区间内的概率是一样的,
d
x
dx
dx表示
x
x
x上无穷小的一段):
∣
p
y
(
y
)
d
y
∣
=
∣
p
y
(
g
(
x
)
)
d
y
∣
=
∣
p
x
(
x
)
d
x
∣
(3.44)
|p_y(y)dy|=|p_y(g(x))dy|=|p_x(x)dx| \tag{3.44}
∣py(y)dy∣=∣py(g(x))dy∣=∣px(x)dx∣(3.44)
求解上式,可以得到:
p
y
(
y
)
=
p
x
(
g
−
1
(
y
)
)
∣
∂
x
∂
y
∣
(3.45)
p_y(y)=p_x(g^{-1}(y))\Big|\frac{\partial{x}}{\partial{y}}\Big| \tag{3.45}
py(y)=px(g−1(y))
∂y∂x
(3.45)
或者:
p
x
(
x
)
=
p
y
(
g
(
x
)
)
∣
∂
g
(
x
)
∂
x
∣
(3.46)
p_x(x)=p_y(g(x))\Big|\frac{\partial{g(x)}}{\partial{x}}\Big| \tag{3.46}
px(x)=py(g(x))
∂x∂g(x)
(3.46)
在高维空间中,微分运算扩展到Jacobian矩阵的行列式(
J
i
,
j
=
∂
x
i
∂
y
j
J_{i,j}=\frac{\partial{x_i}}{\partial{y_j}}
Ji,j=∂yj∂xi)。因此,对于实值向量:
p
x
(
x
)
=
p
y
(
g
(
x
)
)
∣
det
(
∂
g
(
x
)
∂
x
)
∣
(3.47)
p_x(\bm{x})=p_y(g(\bm{x}))\Big|\det\Big(\frac{\partial{g(\bm{x})}}{\partial{\bm{x}}}\Big)\Big| \tag{3.47}
px(x)=py(g(x))
det(∂x∂g(x))
(3.47)
根据概率论教材中的定理可知
随机变量函数的分布求法,如果已知 X X X的概率分布,有 Y = g ( X ) Y=g(X) Y=g(X),求 Y Y Y的概率分布过程为:先给出 Y Y Y的可能取值;再利用等价事件来求出概率分布。
设随机变量 X ∼ f x ( x ) , − ∞ < x < + ∞ , Y = g ( X ) , g ′ ( x ) > 0 ( 或 g ′ ( x ) < 0 ) X\sim{f_{\text{x}}(x)},-\infty<x<+\infty,Y=g(X),g'(x)>0(或g'(x)<0) X∼fx(x),−∞<x<+∞,Y=g(X),g′(x)>0(或g′(x)<0),则 Y Y Y的概率密度为:
f y ( y ) = { f x ( h ( y ) ) ⋅ ∣ h ′ ( y ) ∣ , α < y < β 0 其它 (z3.1) f_y(y)= \begin{cases} f_x(h(y))\cdot|h'(y)|,&\alpha<y<\beta \\ 0 &其它 \end{cases} \tag{z3.1} fy(y)={fx(h(y))⋅∣h′(y)∣,0α<y<β其它(z3.1)
其中, ( α , β ) (\alpha,\beta) (α,β)是 Y Y Y的取值范围, α = g ( − ∞ ) , β = g ( + ∞ ) , 当 g ′ ( x ) < 0 时 , α = g ( + ∞ ) , β = g ( − ∞ ) \alpha=g(-\infty),\beta=g(+\infty),当g'(x)<0时,\alpha=g(+\infty),\beta=g(-\infty) α=g(−∞),β=g(+∞),当g′(x)<0时,α=g(+∞),β=g(−∞)。 h h h是 g g g的反函数,即 h ( y ) = x ⇔ y = g ( x ) h(y)=x\;{\hArr}\;y=g(x) h(y)=x⇔y=g(x)。
13、信息论
信息论是应用数学的一个分支,主要研究的是对一个信号包含的信息多少进行量化。它告诉我们如何对消息设计最优编码以及计算消息的期望长度。在机器学习中,主要使用信息论的一些关键思想来描述概率分布或者量化概率分布之间的相似性。
信息论的基本想法是,一个不太可能的事件居然发生了,要比一个非常可能的事件发生,能提供更多的信息。即信息论需要具备以下三个性质:
- 非常可能发生的事件信息量比较少,甚至没有信息量。
- 较不可能发生的事件具有更高的信息量。
- 独立事件应具有增量的信息。
定义一个事件
x
=
x
\text{x}=x
x=x的自信息为:
I
(
x
)
=
−
log
P
(
x
)
(3.48)
I(x)=-\log{P(x)} \tag{3.48}
I(x)=−logP(x)(3.48)
特别说明,在本书中,
log
\log
log表示自然对数,其底数为
e
e
e。因此,这里定义的
I
(
x
)
I(x)
I(x)的单位是奈特。一奈特是以
1
e
\frac{1}{e}
e1的概率观测到的一个事件时获得的信息量。
自信息只是处理单个的输出。可以用香农熵来对整个概率分布中的不确定性总量进行量化,也记作
H
(
P
)
H(P)
H(P):
H
(
x
)
=
E
x
∼
P
[
I
(
x
)
]
=
−
E
x
∼
P
[
log
P
(
x
)
]
(3.49)
H(\text{x})=\Bbb{E}_{\text{x}\sim{P}}[I(x)]=-\Bbb{E}_{\text{x}\sim{P}}[\log{P(x)}] \tag{3.49}
H(x)=Ex∼P[I(x)]=−Ex∼P[logP(x)](3.49)
一个分布的香农熵是指遵循这个分布的事件所产生的期望信息总量。它给出了对依据某概率分布生成的符号进行编码所需的比特数在平均意义上的下界(当底数不是
2
2
2时,单位也不同)。当
x
\text{x}
x是连续型随机变量时,香农熵被称为微分熵。
如果对同一个随机变量
x
\text{x}
x有两个单独的概率分布
P
(
x
)
P(\text{x})
P(x)和
Q
(
x
)
Q(\text{x})
Q(x),可以使用KL散度来衡量这个分布的差异:
D
K
L
(
P
∣
∣
Q
)
=
E
x
∼
P
[
log
P
(
x
)
Q
(
x
)
]
=
E
x
∼
P
[
log
P
(
x
)
−
log
Q
(
x
)
]
(3.50)
D_{KL}(P||Q)=\Bbb{E}_{\text{x}\sim{P}}\Big[\log\frac{P(x)}{Q(x)}\Big]=\Bbb{E}_{\text{x}\sim{P}}[\log{P(x)}-\log{Q(x)}] \tag{3.50}
DKL(P∣∣Q)=Ex∼P[logQ(x)P(x)]=Ex∼P[logP(x)−logQ(x)](3.50)
在离散型变量情况下,KL散度衡量的是,当使用一种被设计成能够使得概率分布
Q
Q
Q产生的消息的长度最小的编码,发送包含由概率分布
P
P
P产生的符号的消息时,所需要的额外的信息量。
KL散度是非负的,且只有在
P
P
P和
Q
Q
Q是相同分布的情况下,它的值才为
0
0
0。因为KL散度是非负的并且衡量的是两个分布之间的差异,所以它经常被用作分布之间的某种距离,但是它并不是真的距离,因为它不是对称的:
D
K
L
(
P
∣
∣
Q
)
≠
D
K
L
(
Q
∣
∣
P
)
D_{KL}(P||Q)\not=D_{KL}(Q||P)
DKL(P∣∣Q)=DKL(Q∣∣P)。
一个和KL散度很像的是交叉熵,即
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),它和KL散度很像,但缺少左边一项:
H
(
P
,
Q
)
=
−
E
x
∼
P
log
Q
(
x
)
(3.51)
H(P,Q)=-\Bbb{E}_{\text{x}\sim{P}}\log{Q(x)} \tag{3.51}
H(P,Q)=−Ex∼PlogQ(x)(3.51)
针对
Q
Q
Q最小化交叉熵等价于最小化KL散度,因为
Q
Q
Q并不参与被省略的那一项。
14、结构化概率模型
机器学习算法经常会涉及在非常多的随机变量上的概率分布。但是,这些概率分布只有少量之间有相互作用关系。因此,可以把概率分布分解成多个因子的乘积形式,而不是使用单一的函数来表示概率分布。比如:
p
(
a
,
b
,
c
)
=
p
(
a
)
p
(
b
∣
a
)
p
(
c
∣
b
)
(3.52)
p(a,b,c)=p(a)p(b|a)p(c|b) \tag{3.52}
p(a,b,c)=p(a)p(b∣a)p(c∣b)(3.52)
这种分解可以极大地减少用来描述一个分布的参数数量。只要找到一种使每个因子分布具有更少变量的分解方法,就能极大地降低表示联合分布的成本 。
可以用图来描述这种分解。“图”是由一些可以通过边互相连接的项点的集合构成。当用图来表示这种概率分布的分解时,把它称为结构化概率模型或者图模型。有两种主要的结构化概率模型:有向的和无向的。其中图的每个节点对应着一个随机变量,连接两个随机变量的边意味着概率分布可以表示成这两个随机变量之间的直接作用。
有向模型使用带有有向边的图,它们用条件概率分布来表示分解。有向模型对于分布中的每一个随机变量
x
i
\text{x}_i
xi都包含着一个影响因子,这个组成
x
i
\text{x}_i
xi的条件概率的影响因子被称为
x
i
\text{x}_i
xi的父节点,记为
P
a
G
(
x
i
)
Pa_\mathcal{G}(\text{x}_i)
PaG(xi)。
p
(
x
)
=
∏
i
p
(
x
i
∣
P
a
G
(
x
i
)
)
(3.53)
p(\text{x})=\prod_ip(\text{x}_i|Pa_\mathcal{G}(\text{x}_i)) \tag{3.53}
p(x)=i∏p(xi∣PaG(xi))(3.53)
无向模型使用带有无向边的图,它们将分解表示成一组函数,这些函数通常不是任何类型的概率分布。图中任何满足两两之间有边连接的顶点的集合被称为团。无向模型中的每个团
C
(
i
)
\mathcal{C}^{(i)}
C(i)都伴随着一个因子
ϕ
(
i
)
(
C
(
i
)
)
\phi^{(i)}(\mathcal{C}^{(i)})
ϕ(i)(C(i))。这些因子都是非负的,但并不要求和或者积分为
1
1
1。
随机变量的联合概率分布与所有这些因子的乘积成比例,但不保证它们的和为
1
1
1。所以要除以一个归一化常数
Z
Z
Z来得到归一化的概率分布,归一化常数
Z
Z
Z通常被定义为
ϕ
\phi
ϕ函数乘积的所有状态的求和或积分。概率分布为:
p
(
x
)
=
1
Z
∏
i
ϕ
(
i
)
(
C
(
i
)
)
(3.55)
p(\text{x})=\frac{1}{Z}\prod_i\phi^{(i)}(\mathcal{C}^{(i)}) \tag{3.55}
p(x)=Z1i∏ϕ(i)(C(i))(3.55)
特别的,这些图模型表示的分解仅仅是描述概率分布的一种语言。有向性和无向性是概率分布的一种特殊描述所具有的特性,任何概率分布都可以用这两种方式进行描述。