第三章 概率与信息论
3.1为什么要使用概率
机器学习通常必须处理不确定量,有事也需要处理随机(非确定性的)量。不确定和随机性可能来自多个方面。
不确定性的3中可能来源:
- 被建模系统内在的随机性。
- 不完全观测。
- 不完全建模。
概率可以被看做处理不确定性的逻辑扩展。概率论提供了一套形式化的规则,可以在给定一些命题的似然后,计算其他命题为真的似然。(由已知推未知)
3.2随机变量
随机变量(random variable)是可以随机地取不同值得变量。
随机变量可以是离散的或者连续的。
- 离散随机变量拥有有限或者可数无限多的状态。这些状态不一定非要是整数,可以是一些被命名的状态而没有数值。
- 连续随机变量伴随着实数值。
3.3 概率分布
概率分布(probability distribution)用来描述随机变量或一簇随机变量在每一个可能取到的状态的可能性大小。描述概率分布的方式取决于随机变量是离散的还是连续的。
3.3.1 离散型变量和概率质量函数
离散型变量的概率分布可以用概率质量函数(probability mass function, PMF),或者为概率分布律。
概率质量函数可以同时作用于多个随机变量。这种多个变量的概率分布称为联合概率(joint probability distribution)。
如果一个函数
P
P
P是随机变量
x
x
x的PMF,必须满足以下三个条件:
- P P P的定义必须是 x x x所有可能状态的集合。(全集)
- ∀ x ∈ x \forall x \in\mathtt x ∀x∈x, 0 ≤ P ( x ) ≤ 1 0\leq P(x) \leq 1 0≤P(x)≤1。不可能发生的事件概率为0,而且不存在比这概率更低的状态。类似的,能够确保一定发生的事件概率为1,而且不存在比这概率更高的状态。(最小值为0,最大值为1)
- ∑ x ∈ x P ( x ) = 1 \sum _{x\in \mathtt x}P(x)=1 ∑x∈xP(x)=1,此条件称为归一化(normalized)。
3.3.2 连续型变量和概率密度函数
连续型变量的概率分布可以用概率密度函数(probability density function, PDF)。
如果一个函数
p
p
p是随机变量
x
x
x的PMF,必须满足以下三个条件:
- p p p的定义必须是 x x x所有可能状态的集合。(全集)
- ∀ x ∈ x \forall x \in \mathtt x ∀x∈x , p ( x ) ≥ 0 p(x) \geq 0 p(x)≥0。并不要求 p ( x ) ≤ 1 p(x) \leq 1 p(x)≤1。
- ∫ p ( x ) d x = 1 \int p(x)dx=1 ∫p(x)dx=1。
3.4 边缘概率
已知一组变量的联合概率分布,需要去了解其中一个子集的概率分布。这种定义在子集上的概率分布被称为边缘概率分布(marginal probability distribution)。
假设有离散型随机变量
x
\mathtt x
x和
y
\mathtt y
y,并且知道
P
(
x
,
y
)
P(\mathtt x, \mathtt y)
P(x,y),则可以根据求和法(sum rule)来计算
P
(
x
)
P(\mathtt x)
P(x):
∀
x
∈
x
,
P
(
x
=
x
)
=
∑
y
P
(
x
=
x
,
y
=
y
)
\forall x \in \mathtt x,P(\mathtt x=x)=\sum_yP(\mathtt x=x,\mathtt y=y)
∀x∈x,P(x=x)=y∑P(x=x,y=y)对于连续型变量,需要用积分替代求和:
p
(
x
)
=
∫
p
(
x
,
y
)
d
y
p(x)=\int p(x,y)dy
p(x)=∫p(x,y)dy
3.5 条件概率
条件概率为:某个事件在给定其他事件发生的条件下出现的概率。给定
x
=
x
,
y
=
y
\mathtt x=x,\mathtt y=y
x=x,y=y发生的条件概率记为:
P
(
y
=
y
∣
x
=
x
)
=
P
(
y
=
y
,
x
=
x
)
P
(
x
=
x
)
P(\mathtt y=y|\mathtt x=x)=\frac{P(\mathtt y=y,\mathtt x =x)}{P(\mathtt x=x)}
P(y=y∣x=x)=P(x=x)P(y=y,x=x)条件概率只在
P
(
x
=
x
)
>
0
P(\mathtt x =x)>0
P(x=x)>0时有定义。
计算一个行动的后果称为干预查询(intervention query)。干预查询属于因果模型。
3.6条件概率的链式法则
任何多维随机变量 的联合概率分布,都可以分解成只有一个变量的条件概率相乘的形式:
P
(
x
(
1
)
,
…
,
x
(
n
)
)
=
P
(
x
(
1
)
)
∏
i
=
2
n
P
(
x
(
1
)
∣
x
(
1
)
,
…
,
x
(
i
−
1
)
)
P(\mathtt x^{(1)},\dots,\mathtt x^{(n)})=P(\mathtt x^{(1)})\prod^n_{i=2}P(\mathtt x^{(1)}|\mathtt x^{(1)},\dots,\mathtt x^{(i-1)})
P(x(1),…,x(n))=P(x(1))i=2∏nP(x(1)∣x(1),…,x(i−1))这个规则被称为概率的链式法则(chain rule)或者乘法法则(product rule)。举例说明:
P
(
a
,
b
,
c
)
=
P
(
a
∣
b
,
c
)
P
(
b
,
c
)
P(a,b,c)=P(a|b,c)P(b,c)
P(a,b,c)=P(a∣b,c)P(b,c)
P
(
b
,
c
)
=
P
(
b
∣
c
)
,
P
(
c
)
P(b,c)=P(b|c),P(c)
P(b,c)=P(b∣c),P(c)
⟹
P
(
a
,
b
,
c
)
=
P
(
a
∣
b
,
c
)
P
(
b
∣
c
)
P
(
c
)
\Longrightarrow 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(c)
3.7独立性和条件独立性
两个随机变量
x
\mathtt x
x和
y
\mathtt y
y,如果它们的概率分布可以表示成两个因子的乘积形式,并且一个因子只包含
x
\mathtt x
x,另一个因子只包含
y
\mathtt y
y,则可以称两个随机变量是相互独立(independent):
∀
x
∈
x
,
y
∈
y
,
p
(
x
=
x
,
y
=
y
)
=
p
(
x
=
x
)
p
(
y
=
y
)
\forall x \in \mathtt x,y \in \mathtt y, p(\mathtt x=x,\mathtt y=y)=p(\mathtt x=x)p(\mathtt y=y)
∀x∈x,y∈y,p(x=x,y=y)=p(x=x)p(y=y)
如果关于
x
\mathtt x
x和
y
\mathtt y
y的条件概率分布对于
z
\mathtt z
z的每一个值都可以写成乘积的形式,那么两个随机变量
x
\mathtt x
x和
y
\mathtt y
y在给定随机变量
z
\mathtt z
z时是条件独立(conditionally independent):
∀
x
∈
x
,
y
∈
y
,
z
∈
z
,
p
(
x
=
x
,
y
=
y
∣
z
=
z
)
=
p
(
x
=
x
∣
z
=
z
)
p
(
y
=
y
∣
z
=
z
)
\forall x \in \mathtt x,y \in \mathtt y,z\in \mathtt z, p(\mathtt x=x,\mathtt y=y|\mathtt z=z)=p(\mathtt x=x|\mathtt z=z)p(\mathtt y=y|\mathtt z=z)
∀x∈x,y∈y,z∈z,p(x=x,y=y∣z=z)=p(x=x∣z=z)p(y=y∣z=z)
3.8期望、方差和协方差
函数 f ( x ) f(x) f(x)关于某分布 P ( x ) P(x) P(x)的期望(expectation)或者期望值(expected value)是指,当 x x x由 P P P产生, f f f作用于 x x x时, f ( x ) f(x) f(x)的平均值。
- 离散型随机变量,求和得到: E x − P [ f ( x ) ] = ∑ x P ( x ) f ( x ) \mathbb E_{x-P}[f(x)]=\sum_xP(x)f(x) Ex−P[f(x)]=x∑P(x)f(x)
- 连续型随机变量,求积分得到: E x − p [ f ( x ) ] = ∫ p ( x ) f ( x ) d x \mathbb E_{x-p}[f(x)]=\int p(x)f(x)dx Ex−p[f(x)]=∫p(x)f(x)dx(不会在公式里写入“~”,用“-”代替)
期望是线性的,例如:
E
x
[
α
f
(
x
)
+
β
g
(
x
)
]
=
α
E
x
[
f
(
x
)
]
+
β
E
x
[
g
(
x
)
]
\mathbb E_x[\alpha f(x)+\beta g(x)]=\alpha \mathbb E_x[f(x)]+\beta \mathbb E_x[g(x)]
Ex[αf(x)+βg(x)]=αEx[f(x)]+βEx[g(x)]其中
α
\alpha
α和
β
\beta
β不依赖于
x
x
x。
方差(variance)衡量对
x
x
x以及它的概率分布进行采样时,随机变量
x
x
x的函数值会呈现多大的差异:
V
a
r
(
f
(
x
)
)
=
E
[
(
f
(
x
)
−
E
[
f
(
x
)
]
2
]
Var(f(x))=\mathbb E[(f(x)-\mathbb E[f(x)]^2]
Var(f(x))=E[(f(x)−E[f(x)]2]当方差很小时,
f
(
x
)
f(x)
f(x)的值形成的簇比较接近期望值。方差的平方根称为标准差(standard deviation)。
协方差(covariance)在某种意义上给出了两个变量线性相关性的强度以及这些变量的尺度:
C
o
v
(
f
(
x
)
,
g
(
y
)
)
=
E
[
(
f
(
x
)
−
E
[
f
(
x
)
]
‾
)
(
g
(
y
)
−
E
[
g
(
y
)
]
‾
)
]
Cov(f(x),g(y))=\mathbb E[(\underline{f(x)-\mathbb E[f(x)]})(\underline {g(y)-\mathbb E[g(y)]})]
Cov(f(x),g(y))=E[(f(x)−E[f(x)])(g(y)−E[g(y)])]下划线无任何意义,只是为了标注清楚结构。
另一个衡量相关性的指标,相关系数(correlation)将每个变量的贡献归一化,为了只衡量变量的相关性而不受各个变量尺度大小的影响。
协方差和相关性是有联系的,但实际上是不同的概念。
- 如果两个变量相互独立,那么它们的协方差为零;如果两个变量的协方差不为零,那么它们一定是相关的。
- 独立性又是和协方差完全不同的性质。两个变量如果协方差为零,它们之间一定没有线性关系。
- 独立性是比零协方差的要求更强,因为独立性还排除了非线性的关系。两个变量相互依赖,但是具有零协方差是可能的。
随机向量
x
∈
R
n
x\in \mathbb R^n
x∈Rn的协方差矩阵(covariance matrix)是一个
n
×
n
n \times n
n×n的矩阵,并且满足:
C
o
v
(
x
)
i
,
j
=
C
o
v
(
x
i
,
x
j
)
Cov(\mathtt x)_{i,j}=Cov(\mathtt x_i,\mathtt x_j)
Cov(x)i,j=Cov(xi,xj)协方差的对角元是方差:
C
o
v
(
x
i
,
x
i
)
=
V
a
r
(
x
i
)
Cov(\mathtt x_i,\mathtt x_i)=Var(\mathtt x_i)
Cov(xi,xi)=Var(xi)
3.9 常用概率分布
3.9.1 Bernoulli分布
Bernoulli分布(Bernoulli distribution)是个单个二值随机变量的分布。由单个参数
ϕ
∈
[
0
,
1
]
\phi \in [0,1]
ϕ∈[0,1]控制,
ϕ
\phi
ϕ给出了随机变量等于1的概率。满足的性质如下:
P
(
x
=
1
)
=
ϕ
P(\mathtt x=1)=\phi
P(x=1)=ϕ
P
(
x
=
0
)
=
1
−
ϕ
P(\mathtt x=0)=1-\phi
P(x=0)=1−ϕ
P
(
x
=
x
)
=
ϕ
x
(
1
−
ϕ
)
1
−
x
P(\mathtt x=x)=\phi ^x(1-\phi)^{1-x}
P(x=x)=ϕx(1−ϕ)1−x
E
x
[
x
]
=
ϕ
\mathbb E_x[x]=\phi
Ex[x]=ϕ
V
a
r
x
(
x
)
=
ϕ
(
1
−
ϕ
)
Var_x(x)=\phi (1-\phi)
Varx(x)=ϕ(1−ϕ)
3.9.2 Multinoulli分布
Multinoulli分布(multinoulli distribution)或者范畴分布(categorical distribution)是指在具有
k
k
k个不同状态的单个离散型随机变量上的分布,其中
k
k
k是一个有限值。Multinoulli分布由向量
p
∈
[
0
,
1
]
k
−
1
p\in [0,1]^{k-1}
p∈[0,1]k−1参数化,其中每一个分量
p
i
p_i
pi表示
i
i
i个状态的概率。
Multinoulli分布是**多项式分布*(multinomial distribution)的一个特例。
3.9.3 高斯分布
实数上最常用的分布就是正态分布(normal distribution),也称高斯分布(Gaussian distribution):
N
(
x
;
μ
,
σ
2
)
=
1
2
π
σ
2
e
−
1
2
σ
2
(
x
−
μ
)
2
N(x;\mu,\sigma^2)=\sqrt{\frac{1}{2\pi\sigma^2}}e^{-\frac{1}{2\sigma^2}(x-\mu)^2}
N(x;μ,σ2)=2πσ21e−2σ21(x−μ)2正态分布由两个参数控制,
μ
∈
R
\mu \in \mathbb R
μ∈R和
σ
∈
(
0
,
∞
)
\sigma \in(0,\infty)
σ∈(0,∞)。参数
μ
\mu
μ给出了中心峰值的坐标,
E
[
x
]
=
μ
\mathbb E[x]=\mu
E[x]=μ。分布的标准差用
σ
\sigma
σ表示,方差用
σ
2
\sigma^2
σ2表示。
有时对概率密度函数求值时,需要对
σ
\sigma
σ平方并且取倒数。如若对不同参数下的概率密度函数求值时,使用
β
∈
(
0
,
∞
)
\beta \in (0,\infty)
β∈(0,∞)来控制分部的精度*(precision)(或方差的倒数):
N
(
x
;
μ
,
β
−
1
)
=
β
2
π
e
−
1
2
β
(
x
−
μ
)
2
N(x;\mu,\beta^{-1})=\sqrt{\frac{\beta}{2\pi}}e^{-\frac{1}{2}\beta(x-\mu)^2}
N(x;μ,β−1)=2πβe−21β(x−μ)2如果因缺乏关于某个实数上分布的先验知识而不知道如何选择,正态分布通常为默认的选择。原因如下:
- 建模的很多分布真实情况是比较接近正态分布。中心极限定理(central limit theorem)说明很多狠毒随机变量近似服从正态分布。即在十几种,很多复杂的系统都可以被成功建模成正态分布,也即可以使系统被分解成一些更结构化的部分。
- 在具有相同方差的所有可能的概率分布中,正态分布在实数上具有最大的不确定性。因此,可以认为正态分布是对模型加入的先验知识量最少的分布。
正态分布可以推广到
R
n
\mathbb R^n
Rn空间,即多维正态分布(multivariate normal distribution)。它的参数是一个正定对称矩阵
Σ
\Sigma
Σ:
N
(
x
;
μ
,
Σ
)
=
1
(
2
π
)
n
d
e
t
(
Σ
)
e
−
1
2
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
N(x;\mu,\Sigma)=\sqrt{\frac{1}{(2\pi)^ndet(\Sigma)}}e^{-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)}
N(x;μ,Σ)=(2π)ndet(Σ)1e−21(x−μ)TΣ−1(x−μ)同样可以对
Σ
\Sigma
Σ求逆,使用精度矩阵(precision matrix)
β
\beta
β进行替代:
N
(
x
;
μ
,
β
−
1
)
=
d
e
t
(
β
)
(
2
π
)
n
e
−
1
2
(
x
−
μ
)
T
β
(
x
−
μ
)
N(x;\mu,\beta^{-1})=\sqrt{\frac{det(\beta)}{(2\pi)^n}}e^{-\frac{1}{2}(x-\mu)^T\beta(x-\mu)}
N(x;μ,β−1)=(2π)ndet(β)e−21(x−μ)Tβ(x−μ)经常把协方差矩阵固定成一个对角阵。简化版本是各向同性(isotropic)高斯分布,它的协方差矩阵是一个标量乘以单位阵。
3.9.4 指数分布和Laplace分布
深度学习中,会需要一个在
x
=
0
x=0
x=0点处取得边界点(sharp point)的分布,可以使用指数分布(exponential distribution):
p
(
x
;
λ
)
=
λ
1
x
≥
0
e
x
p
(
−
λ
x
)
p(x;\lambda)=\lambda \bm 1_{x\geq0}exp(-\lambda x)
p(x;λ)=λ1x≥0exp(−λx)
1
c
o
n
d
i
t
i
o
n
\bm 1_{condition}
1condition表示如果条件为真则为1,否则为0。
一个联系紧密的概率分布是Laplace分布(Laplace distribution),它允许在任意一点
μ
\mu
μ处设置概率质量的峰值:
L
a
p
l
a
c
e
(
x
;
μ
,
γ
)
=
1
2
γ
e
−
∣
x
−
μ
∣
γ
Laplace(x;\mu,\gamma)=\frac{1}{2\gamma}e^{-\frac{|x-\mu|}{\gamma}}
Laplace(x;μ,γ)=2γ1e−γ∣x−μ∣
3.9.5 Dirac分布和经验分布
有时希望概率分布中的所有质量都集中在一个点上。可以通过Dirac delta函数(Dirac delta function)
δ
(
x
)
\delta(x)
δ(x)定义概率密度函数来实现:
p
(
x
)
=
δ
(
x
−
μ
)
p(x)=\delta(x-\mu)
p(x)=δ(x−μ)Dirac分布经常作为经验分布(empirical distribution)的一个组成部分出现:
p
^
(
x
)
=
1
m
∑
i
=
1
m
δ
(
x
−
x
(
i
)
)
\hat{p}(x)=\frac{1}{m}\sum_{i=1}^m\delta(x-x^{(i)})
p^(x)=m1i=1∑mδ(x−x(i))
3.9.6 分布的混合
一种通用的组合方法是构造混合分布(mixture distribution)。混合分布由一些组件(component)分布构成。每次实验,样本是由哪个组件分布产生的取决于从一个Multinoulli分布中采样的结果:
P
(
x
)
=
∑
i
P
(
c
=
i
)
P
(
x
∣
c
=
i
)
P(x)=\sum_iP(c=i)P(x|c=i)
P(x)=i∑P(c=i)P(x∣c=i)这里
P
(
c
)
P(c)
P(c)是对各组件的一个Multinoulli分布。
混合模型是组合简单概率分布来生成更丰富的分布的一种简单策略。
一个非常强大且常见的混合模型是高斯混合模型(Gaussian Mixture Model)。除了均值和协方差以外,高斯混合模型的参数指明了给每个组件
i
i
i的先验概率(prior probability)
α
i
=
P
(
c
=
i
)
\alpha_i=P(c=i)
αi=P(c=i)。“先验”表明观测
x
\mathtt x
x之前传递给模型关于
c
c
c的信念。作为对比,
P
(
c
∣
x
)
P(c|x)
P(c∣x)是后验概率(posterior probability),是观测到
x
\mathtt x
x之后进行的计算。
高斯混合模型是概率密度的万能近似器(universal approximator)。
3.10 常用函数的有用性质
logistic sigmoid函数:
σ
(
x
)
=
1
1
+
e
−
x
\sigma(x)=\frac{1}{1+e^{-x}}
σ(x)=1+e−x1sigmoid函数在变量取绝对值非常大的正值或负值时会出现饱和(saturate)现象,意味着函数会变得很平,并且对输入的微小改变会变得不敏感。
softplus函数:
ζ
(
x
)
=
l
o
g
(
1
+
e
x
)
\zeta(x)=log(1+e^x)
ζ(x)=log(1+ex)softplus函数名来源于另一个函数的平滑(或“软化”)形式,函数为
x
+
=
m
a
x
(
0
,
x
)
⇒
R
e
L
U
函
数
x^+=max(0,x)\Rightarrow ReLU函数
x+=max(0,x)⇒ReLU函数。
需要记下来的性质:
σ
(
x
)
=
e
x
e
x
+
e
0
\sigma(x)=\frac{e^x}{e^x+e^0}
σ(x)=ex+e0ex
d
d
x
σ
(
x
)
=
σ
(
x
)
(
1
−
σ
(
x
)
)
\frac{d}{dx}\sigma(x)=\sigma(x)(1-\sigma(x))
dxdσ(x)=σ(x)(1−σ(x))
1
−
σ
(
x
)
=
σ
(
−
x
)
1-\sigma(x)=\sigma(-x)
1−σ(x)=σ(−x)
l
o
g
σ
(
x
)
=
−
ζ
(
−
x
)
log\ \sigma(x)=-\zeta(-x)
log σ(x)=−ζ(−x)
d
d
x
ζ
(
x
)
=
σ
(
x
)
\frac{d}{dx}\zeta(x)=\sigma(x)
dxdζ(x)=σ(x)
∀
x
∈
(
0
,
1
)
,
σ
−
1
(
x
)
=
l
o
g
(
1
1
−
x
)
\forall x \in(0,1),\sigma^{-1}(x)=log(\frac{1}{1-x})
∀x∈(0,1),σ−1(x)=log(1−x1)
∀
x
>
0
,
ζ
−
1
(
x
)
=
l
o
g
(
e
x
−
1
)
\forall x>0,\zeta^{-1}(x)=log(e^x-1)
∀x>0,ζ−1(x)=log(ex−1)
ζ
(
x
)
=
∫
−
∞
x
σ
(
y
)
d
y
\zeta(x)=\int_{-\infty}^x\sigma(y)dy
ζ(x)=∫−∞xσ(y)dy
ζ
(
x
)
−
ζ
(
−
x
)
=
x
\zeta(x)-\zeta(-x)=x
ζ(x)−ζ(−x)=x
3.11 贝叶斯规则
P ( x ∣ y ) = P ( x ) P ( y ∣ x ) P ( y ) P(\mathtt x\ | \ \mathtt y)=\frac{P(\mathtt x)P(\mathtt y\ |\ \mathtt x)}{P(\mathtt y)} P(x ∣ y)=P(y)P(x)P(y ∣ x)
3.12 连续型变量的技术细节
测度论(measure theory)
Jocobian矩阵的行列式:
p
x
(
x
)
=
p
y
(
g
(
x
)
)
∣
d
e
t
(
∂
g
(
x
)
∂
x
)
∣
p_x(x)=p_y(g(x))|det(\frac{\partial g(x)}{\partial x})|
px(x)=py(g(x))∣det(∂x∂g(x))∣
3.13 信息论
量化信息。
- 非常可能发生的时间信息量要比较少,并且极端情况下,确保能发生的时间应该没有信息量。
- 较不可能发生的时间具有更高的信息量。
- 独立事件应具有增量的信息。例如,投掷的硬币两次正面朝上传递的信息量,应该是投掷一次硬币正面朝上的信息量的两倍。
为了满足上述3个性质,定义一个事件
x
=
x
\mathtt x=x
x=x的自信息(self-information)为:
I
(
x
)
=
−
l
o
g
P
(
x
)
I(x)=-log\ P(x)
I(x)=−log P(x)通常情况下,《深度学习》书中用
l
o
g
log
log表示以自然对数
e
e
e为底数,即
l
n
ln
ln。
I
(
x
)
I(x)
I(x)单位是奈特(nats)。一奈特是以
1
/
e
1/e
1/e的概率观测到一个事件时获得的信息量。
自信息只处理单个的输出。可以用香农熵(Shannon entropy)来对整个概率分布中的不确定性总量进行量化:
H
(
x
)
=
E
x
−
P
[
I
(
x
)
]
=
−
E
x
−
P
[
l
o
g
P
(
x
)
]
H(x)=\mathbb E_{x-P}[I(x)]=-\mathbb E_{x-P}[logP(x)]
H(x)=Ex−P[I(x)]=−Ex−P[logP(x)]也记做
H
(
P
)
H(P)
H(P)。一个分布的香农熵是指遵循这个分布的事件所产生的期望信息总量。当
x
\mathtt x
x是连续的,香农熵被称为微分熵。
如果同一个随机变量
x
\mathtt x
x有两个单独的概率分布
P
(
x
)
P(x)
P(x)和
Q
(
x
)
Q(x)
Q(x),可以使用KL散度(Kullback-Leibler(KL) divergence)来衡量两个分布的差异:
D
K
L
(
P
∣
∣
Q
)
=
E
x
−
P
[
l
o
g
P
(
x
)
Q
(
x
)
]
=
E
x
−
P
[
l
o
g
P
(
x
)
−
l
o
g
Q
(
x
)
]
D_{KL}(P||Q)=\mathbb E_{x-P}[log\frac{P(x)}{Q(x)}]=\mathbb E_{x-P}[logP(x)-logQ(x)]
DKL(P∣∣Q)=Ex−P[logQ(x)P(x)]=Ex−P[logP(x)−logQ(x)]KL散度有很多有用的性质,其一为,它是非负的且不对称
⇒
D
K
L
(
P
∣
∣
Q
)
=
̸
D
K
L
(
Q
∣
∣
P
)
\Rightarrow D_{KL}(P||Q)=\not D_{KL}(Q||P)
⇒DKL(P∣∣Q)≠DKL(Q∣∣P)。
交叉熵(cross entropy),即
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
)
=
−
E
x
−
P
l
o
g
Q
(
x
)
H(P,Q)=-\mathbb E_{x-P}\ logQ(x)
H(P,Q)=−Ex−P logQ(x)
0
l
o
g
0
0\ log 0
0 log0在信息论中处理为
lim
x
→
0
x
l
o
g
x
=
0
\lim_{x \rightarrow 0}x\ log x=0
limx→0x logx=0。
3.14 结构化概率模型
结构化概率模型(structured probabilistic model)
图模型(graphical model)
有向图
无向图
第四章 数值计算
4.1 上溢和下溢
下溢(underflow)
⇒
−
∞
\Rightarrow -\infty
⇒−∞
上溢(overflow)
⇒
+
∞
\Rightarrow +\infty
⇒+∞
softmax函数(softmax function):
s
o
f
t
m
a
x
(
x
)
i
=
e
x
i
∑
j
=
1
n
e
x
j
softmax(\bm x)_i=\frac{e^{x_i}}{\sum_{j=1}^ne^{x_j}}
softmax(x)i=∑j=1nexjexi
以数值稳定的方式计算
l
o
g
s
o
f
t
m
a
x
log\ softmax
log softmax,防止上溢下溢。
4.2 病态条件
条件数指的是函数相对于输入的微小变化而变化的快慢程度。倘若输入变化很小,导致输出变化大,则输入端的舍入误差会造成输出结果的不稳定。
考虑
f
(
x
)
=
A
−
1
x
f(x)=A^{-1}x
f(x)=A−1x。当
A
∈
R
n
×
n
A\in \mathbb R^{n\times n}
A∈Rn×n具有特征值分解时,其条件数为:
m
a
x
i
,
j
∣
λ
i
λ
j
∣
max_{i,j}|\frac{\lambda _i}{\lambda _j}|
maxi,j∣λjλi∣这是最大特征和最小特征值的模之比。当该数很大时,矩阵求逆对输入的误差特别敏感。这种敏感性是矩阵本身的固有特征,而不是矩阵求逆期间舍入误差的结果。
4.3 基于梯度的优化方法
优化指的是改变
x
x
x以最小化或最大化某个函数
f
(
x
)
f(x)
f(x)的任务。最大化可通过转换最小化来实现。
要最小化或最大化的函数称为目标函数(objective function)或准则(criterion)。当对其进行最小化操作时,也将它称之为代价函数(cost function)、损失函数(loss function)或误差函数(error function)。
梯度下降(gradient descent):
x
x
x往导数的反方向移动一下步来减小
f
(
x
)
f(x)
f(x)。
当
f
′
(
x
)
=
0
f'(x)=0
f′(x)=0时,这样的点称为临界点(critical point)或驻点(stationary point)。
针对具有多维输入的函数,需要用到偏导数(partial derivative)。偏导数
d
d
x
i
f
(
x
)
\frac{d}{dx_i}f(x)
dxidf(x)衡量点
x
x
x处只有
x
i
x_i
xi增加时
f
(
x
)
f(x)
f(x)如何变化。梯度(gradient)是相对一个向量求导的导数:
f
f
f的梯度是包含所有偏导数的向量,记做
∇
x
f
(
x
)
\nabla_xf(x)
∇xf(x)。梯度的第
i
i
i个元素是
f
f
f关于
x
i
x_i
xi的偏导数。在多维情况下,临界点是梯度中所有元素都为零的点。
方向导数(directional derivative)是函数
f
f
f在
u
u
u(单位向量)方向的斜率。
为了最小化
f
f
f,找到使
f
f
f下降得最快的方向。计算方向导数:
m
i
n
u
,
u
T
u
=
1
u
T
∇
x
f
(
x
)
=
m
i
n
u
,
u
T
u
=
1
∥
u
∥
2
∥
∇
x
f
(
x
)
∥
x
c
o
s
θ
min_{u,u^Tu=1}u^T\nabla_xf(x)=min_{u,u^Tu=1}\parallel u\parallel _2\ \parallel \nabla_xf(x)\parallel _x cos\ \theta
minu,uTu=1uT∇xf(x)=minu,uTu=1∥u∥2 ∥∇xf(x)∥xcos θ其中
θ
\theta
θ是
u
u
u和梯度的夹角。将
∥
u
∥
2
=
1
\parallel u\parallel _2=1
∥u∥2=1代入,并忽略与
u
u
u无关的项,就能简化得到
m
i
n
u
c
o
s
θ
min_u cos\ \theta
minucos θ。这在
u
u
u与梯度方向相反时取得最小。即,==梯度向量指向上坡,负梯度向量指向下坡,在负梯度方向上移动可以减小
f
f
f.==这就是最速下降法(method of steepest descent)或梯度下降(gradient descent)。
最速下降建议新的点为:
x
′
=
x
−
ϵ
∇
x
f
(
x
)
x'=x-\epsilon \nabla_xf(x)
x′=x−ϵ∇xf(x)其中
ϵ
\epsilon
ϵ为学习率(learning rate),是一个确定步长大小的正标量。确定学习率的方式:
- 普遍方式是选择一个小常数。
- 根据几个 ϵ \epsilon ϵ计算 f ( x − ϵ ∇ x f ( x ) ) f(x-\epsilon \nabla_xf(x)) f(x−ϵ∇xf(x)),并选择其中能产生最小目标函数值的 ϵ \epsilon ϵ。这种策略称为线搜索。
4.4.1 梯度之上:Jacobian和Hessian矩阵
Jocabian矩阵:包含计算出输入输出的向量的函数的所有偏导数。
Hessian矩阵:函数具有多维输入时,二阶导数合并成的矩阵。
H
(
f
)
(
x
)
i
,
j
=
∂
2
∂
x
i
∂
x
j
f
(
x
)
H(f)(x)_{i,j}=\frac{\partial ^2}{\partial x_i\partial x_j}f(x)
H(f)(x)i,j=∂xi∂xj∂2f(x)Hessian等价于梯度的Jacobian矩阵。
可以使用Hessian矩阵的信息来指导搜索步长和方向的选择问题。其中最简单的方法是牛顿法(Newton’s method)。牛顿法基于一个二阶泰勒展开来近似
x
(
0
)
x^{(0)}
x(0)附近的
f
(
x
)
f(x)
f(x):
f
(
x
)
≈
f
(
x
(
0
)
)
+
(
x
−
x
(
0
)
)
T
∇
x
f
(
x
(
0
)
)
+
1
2
(
x
−
x
(
0
)
)
T
H
(
x
)
(
x
(
0
)
)
(
x
−
x
(
0
)
)
f(x)\approx f(x^{(0)})+(x-x^{(0)})^T\nabla_xf(x^{(0)})+\frac{1}{2}(x-x^{(0)})^TH(x)(x^{(0)})(x-x^{(0)})
f(x)≈f(x(0))+(x−x(0))T∇xf(x(0))+21(x−x(0))TH(x)(x(0))(x−x(0))通过计算,可以得到函数的临界点:
x
∗
=
x
(
0
)
−
H
(
f
)
(
x
(
0
)
)
−
1
∇
x
f
(
x
(
0
)
)
x^*=x^{(0)}-H(f)(x^{(0)})^{-1}\nabla_xf(x^{(0)})
x∗=x(0)−H(f)(x(0))−1∇xf(x(0))仅使用梯度信息的优化算法称为一阶优化算法(first-order optimization algorithms),如梯度下降。使用Hessian矩阵的优化算法称为二阶优化算法(second-order optimization algorithms),如牛顿法。
4.4 约束优化
Karush-Kuhn-Tucker(KKT)方法是针对约束优化非常通用的解决方案。(拉格朗日极值法)
可以使用一组简单的性质来描述约束优化问题的最优点。这些性质称为KKT条件。这些是确定一个点事最优点的必要条件,但不一定是充分条件。这些条件是:
- 广义Lagrangian的梯度为零。
- 所有关于 x x x和KKT乘子的约束都满足。
- 不等式约束显示的“互补松弛性”: α ⊙ h ( x ) = 0 \alpha \odot h(x)=0 α⊙h(x)=0
4.5 实例:线性最小二乘
假设希望找到最小化下式的
x
x
x值
f
(
x
)
=
1
2
∥
A
x
−
b
∥
2
2
f(x)=\frac{1}{2}\parallel Ax-b\parallel ^2_2
f(x)=21∥Ax−b∥22
首先计算梯度:
∇
x
f
(
x
)
=
A
T
(
A
x
−
b
)
=
A
T
A
x
−
A
t
b
\nabla_xf(x)=A^T(Ax-b)=A^TAx-A^tb
∇xf(x)=AT(Ax−b)=ATAx−Atb然后,采用小的步长,按照这个梯度下降:1
将步长( ϵ \epsilon ϵ)和容差( δ \delta δ)设为小的整数。
while ∥ A T A x − A T b ∥ 2 > δ \parallel A^TAx-A^Tb\parallel _2 >\delta \quad ∥ATAx−ATb∥2>δ do
x ← x − ϵ ( A T A x − A T b ) \quad \quad x\leftarrow x-\epsilon ( A^TAx-A^Tb) x←x−ϵ(ATAx−ATb)
end while
参考文献
《深度学习》 ↩︎