第6章 贝叶斯学习
6.1 概述
- 贝叶斯推理对机器学习十分重要,它
- 为衡量多个假设的置信度提供了定量的方法,
- 为直接操作概率的学习算法提供了基础,
- 也为其他算法的分析提供了理论框架。
- 贝叶斯学习方法的特性包括:
- 观察到的每个训练样例可以增量地降低或升高某假设的估计概率;
- 先验知识可以和观察数据一起决定假设的最终概率;
- 允许假设做出不确定的预测;
- 新的实例分类可由多个假设以概率加权的形式一起做出预测;
- 即使在贝叶斯方法计算复杂度较高时,仍可以作为一个最优的决策的标准来衡量其他方法。
- 实践中运用贝叶斯方法的难点在于:
- 需要概率的初始知识;
- 一般情况下确定贝叶斯最优假设的计算代价比较大(同候选假设的数量成线性关系)。
6.2 贝叶斯法则
- 先验概率(Prior Probaility)
P(h) 反映了我们所拥有的关于 h 是一个正确假设的机会的背景知识。若没有这一先验知识可以简单地将所有候选假设赋予相同的先验概率。
P(D) 反映了我们将要观察的训练数据 D 的先验概率,即在没有确定某一假设成立时 D 的概率。
- P(D│h) 代表假设 h 成立的情况下观察到数据 D 的概率。
- 后验概率(Posterior Probability)
P(h|D) 反映了观察到数据 D 后,假设 h 成立的置信度。
- 贝叶斯公式:
P(h|D)=P(D|h)P(h)P(D)
6.3 极大后验假设和极大似然假设
- 极大后验(Maximum A Posteriori , MAP)假设:学习器考虑候选假设集合 H 并在其中寻找给定数据 D 时可能性最大的假设 h∈H (或者存在多个这样的假设时选择其中之一)。这种具有最大可能性的假设成为极大后验假设。更精确地说,当下式成立时,称 hMAP 为MAP假设:
hMAP≡argmaxh∈HP(h|D)=argmaxh∈HP(D|h)P(h)P(D)=argmaxh∈HP(D|h)P(h)
- 极大似然(Maximum Likehood,ML)假设:在某些情况下,可假定中的每个假设有相同的先验概率(即对 H 中任意 hi 和 hj , P(hi)=P(hj) ) ,此时,只需考虑 P(D│h) 。 P(D│h) 常被称为给定 h 时数据 D 的似然度,使 P(D│h) 最大的假设被称为极大似然假设 hML :
hML≡argmaxh∈HP(D|h)
若所有假设有相等的先验概率,则ML假设等同于MAP假设。
6.4 贝叶斯法则和概念学习
6.4.1 Brute-Force贝叶斯概念学习
Brute-Force MAP学习算法
对H中每个假设 h ,计算后验概率:
P(h|D)=P(D|h)P(h)P(D)
输出有最高后验概率的假设
hMAP :
hMAP=argmaxh∈HP(h|D)
若满足:
- 训练数据 D 是无噪声的;
- 目标概念 c 包含在假设空间 H 中;
- 没有任何理由认为某假设比其他假设的可能性大。
则与 D 一致的每个假设都是MAP假设。
6.4.2 MAP假设和一致学习器
一致学习器:若学习算法输出的假设在训练样例上有零错误率。
如果假设空间 H 上有均匀的先验概率(即对 H 中任意 hi 和 hj , P(hi)=P(hj) ),且训练数据是确定性的和无噪声的(即当 D 和 h 一致时, P(D│h)=1 ,否则为 0 ),任意一致学习器将输出一个MAP假设。
贝叶斯框架提出一种刻画学习算法行为的方法,即使该学习算法不进行概率操作。通过确定算法输出最优假设时使用的概率分布 P(h) 和 P(D│h)$ ,可以刻画出算法具有最优行为时的隐含假定。这与揭示学习器中的归纳偏置在思想上是类似的。
6.5 极大似然与最小误差平方假设
学习器 L 工作在实例空间 X 和假设空间 H 上, H 中的假设为 X 上定义的某种实数值函数。 L 面临的问题是学习一个从 H 中抽取出的未知目标函数 f:X→R 。给定 m 个训练样例的集合,每个训练样例是序偶 ⟨xi,di⟩ ,其中 di=f(xi)+ei ,若随机噪声 ei 是独立抽取的,且服从零均值的正态分布,那么学习器使输出的假设预测和训练数据之间的误差平方最小化,它将输出一个极大似然假设。
hML=argmaxh∈HP(D|h)=argmaxh∈H∏i=1m12πσ2−−−−√e−12σ2(di−f(xi))2=argmaxh∈H∏i=1me−12σ2(di−h(xi))2
取对数得
hML=argmaxh∈H∑i=1mln12πσ2−−−−√−12σ2(di−h(xi))2=argminh∈H∑i=1m(di−h(xi))2
可见,误差平方项是从正态分布定义中的指数项中得到的。如果假定噪声分布有另外的形式,可进行类似的推导得到不同的结果。
该问题框架只考虑了训练样例的目标值中的噪声,没有考虑实例属性中的噪声。
6.6 极大似然与最小交叉熵假设
假定训练数据 D 的形式为 D={⟨x1,d1⟩,…,⟨xm,dm⟩} ,其中 di 为观察到的 f(xi) 的0或1值。学习器要输出一个概率函数 f'(xi)=P(f(xi)=1) 。将 xi 和 di 都看作随机变量,且假定每个训练样例是独立抽取的,则
P(D|h)=∏i=1mP(xi,di|h)=∏i=1mP(di|h,xi)P(xi)
P(di|h,xi)={h(xi),1−h(xi),di=1di=0=h(xi)di(1−h(xi))1−di
P(D|h)=∏i=imh(xi)di(1−h(xi))1−diP(xi)
hML=argmaxh∈HP(D|h)=argmaxh∈H∏i=imh(xi)di(1−h(xi))1−diP(xi)=argmaxh∈H∏i=imh(xi)di(1−h(xi))1−di=argmaxh∈H∑i=imdilnh(xi)+(1−di)ln(1−h(xi))
以上量的负值称为交叉熵(Cross Entropy)。
6.7 最小描述长度准则
最小描述长度准则(Minimum Description Length,MDL): 使用代码 C1 和 C2 来表示假设和给定假设下的数据,可将MDL准则陈述为:选择 hMDL 使得
hMDL=argminh∈HLC1(h)+LC2(D|h)
提出最小描述长度准则的目的是为了根据信息论中的基本概念来解释 hMAP 的定义。
hMAP=argmaxh∈HP(D|h)P(h)=argmaxh∈Hlog2P(D|h)+log2P(h)=argminh∈H−log2P(D|h)−log2P(h)
若选择 LC1(h)=−log2P(h) 表示在假设空间 H 的最优编码下 h 的描述长度, LC2(D|h) 表示在给定假设时训练数据的描述长度(在此最优编码下),则 hMDL=hMAP 。
MDL准则提供了一种方法以在假设的复杂性和假设产生错误的数量之间进行折中,它可能选择一个较短的产生少量错误的假设,而不是能完美分类训练数据的较长的假设。
注意MDL准则是有前提的,没有理由相信MDL假设对任意编码 C1 和 C2 都是最好的。
6.8 贝叶斯最优分类器与Gibbs算法
6.8.1 贝叶斯最优分类器
如果新实例的最可能分类可取某集合 V 中的任一值 vj ,那么概率 P(vj│D) 表示新实例的正确分类为的概率,其值为:
P(vj|D)=∑hi∈HP(vj|hi)P(hi|D)
贝叶斯最优分类器(Bayes Optimal Classifier):
argmaxvj∈V∑hi∈HP(vj|hi)P(hi|D)
使用相同的假设空间和相同的先验概率,没有其他方法能比贝叶斯最优分类器的平均性能更好。该方法在给定可用数据、假设空间及这些假设的先验概率的情况下,使得新实例被正确分类的可能性达到最大。贝叶斯最优分类器的一个有趣的属性是,它所做的分类可以对应于 H 中不存在的假设。
6.8.2 Gibbs算法
贝叶斯最优分类器的计算开销很大,原因在于它需要计算 H 中每个假设的后验概率,然后合并每个假设的预测来分类新实例。
Gibbs算法:
1. 按照 H 上的后验概率分布,从 H 中随机选择假设 h ;
2. 使用 h 来预测新实例 x 的分类。
若期望值是在随机抽取的目标概念上作出的,且抽取过程按照学习器假定的先验概率,那么,此条件下Gibbs算法的错误率期望最差为贝叶斯最优分类器的两倍。
6.9 朴素贝叶斯分类器与m-估计
6.9.1 朴素贝叶斯分类器
朴素贝叶斯分类器(Naive Bayes Classifier)基于一个简单的假定:在给定目标值时属性值之间相互条件独立,即:
P(a1,a2,…,an|vj)=∏iP(ai|vj)
朴素贝叶斯分类器:
vNB=vMAP=argmaxvj∈VP(vj|a1,a2,…,an)=argmaxvj∈VP(a1,a2,…,an|vj)P(vj)P(a1,a2,…,an)=argmaxvj∈VP(a1,a2,…,an|vj)P(vj)=argmaxvj∈VP(vj)∏iP(ai|vj)
P(vj) 和 P(ai|vj) 基于它们在训练数据上的频率。
朴素贝叶斯分类器没有明确的搜索假设空间的过程。
当条件独立性满足时,朴素贝叶斯分类等于MAP分类。
6.9.2 m-估计
- m-估计:
nc+mpn+m
其中, p 是将要确定的概率的先验估计,在缺少其他信息时,选择 p 的一种典型方法是假定均匀的先验概率,即如果某属性有 k 个可能值,那么设置 p=1/k 。 m 称为等效样本大小,因为它相当于将 n 个实际的观察扩大,加上 m 个按 p 分布的虚拟样本。
- Laplace平滑(加1平滑):每个属性上的计数结果加1,使得估计概率变化可以忽略不计,以避免零概率问题。
6.10 贝叶斯信念网简介
朴素贝叶斯分类器假定所有变量在给定目标变量值时为条件独立的,而贝叶斯信念网可以表述变量的一个子集上的条件独立性假设。
6.10.1 条件独立性
当下述条件成立时,称变量集合 X={x1,…,xl} 在给定变量集合 Z={z1,…,zn} 时条件独立于变量集合 Y={y1,…,ym} :
P(X|Y,Z)=P(X|Z)
6.10.2 贝叶斯信念网的表示
贝叶斯信念网表示一组变量的联合概率分布,方法是指定一组条件独立性假定(表示为一个有向无环图DAG)和一组局部条件概率集合。每个随机变量在此DAG中表示为一个节点,节点间的边表示变量间的概率关系。贝叶斯信念网就是通过贝叶斯链式法则表示变量间的联合概率分布。
6.11 EM算法
6.11.1 EM算法的一般表述
设 X 为已观察到的数据, Z 为未观察到的数据, Y=X⋃Z ,
1. E步骤:使用当前假设 h 和 X 来估计 Y 上的概率分布,来计算 Q(h′|h) :
Q(h′|h)←E[lnp(Y|h′)|h,X]
2. M步骤:将当前假设
h 替换为使
Q 函数最大化的假设
h′ :
h←argmaxh′Q(h′|h)
重复以上两个步骤直至算法收敛。
当函数
Q 连续时,EM算法收敛到似然函数
p(Y|h′) 的一个不动点。若此似然函数有单个最大值,则EM算法可以收敛到对
h′ 的全局极大似然估计,否则它只能保证收敛到一个局部最大值。
6.11.2 k-均值算法的推导
k-均值算法是为了估计 k 个正太分布的均值 θ=⟨μ1,…,μk⟩ 。已有的数据为观察到的 X={⟨xi⟩} ,这里的隐藏变量 Z={⟨zi1,…,zik⟩} (必须注意只有一个 zij 的值为1,其他为0)表示 k 个正态分布中哪一个用于生成 xi 。
每个实例 yi=⟨xi,zi,1,…,zik⟩ 的概率 p(yi|h′) 可被写作:
p(yi|h′)=p(xi,zi,1,…,zik|h′)=12πσ2−−−−√e−12σ2∑kj=1zij(xi−μ′j)2
于是有:
lnP(Y|h′)=ln∏i=1mp(yi|h′)=∑i=1mlnp(yi|h′)=∑i=1m(ln12πσ2−−−−√−12σ2∑j=1kzij(xi−μ′j)2)
因为 lnP(Y|h′) 是 zij 的线性函数,所以有:
E[lnP(Y|h′)]=E⎡⎣∑i=1m⎛⎝ln12πσ2−−−−√−12σ2∑j=1kzij(xi−μ′j)2⎞⎠⎤⎦=∑i=1m⎛⎝ln12πσ2−−−−√−12σ2∑j=1kE[zij](xi−μ′j)2⎞⎠
即,k-均值问题中函数 Q(h′|h) 为:
Q(h′|h)=∑i=1m⎛⎝ln12πσ2−−−−√−12σ2∑j=1kE[zij](xi−μ′j)2⎞⎠
其中, h′=⟨μ′1,…,μ′k⟩ ,而 E[zij] 基于当前假设 h 和观察到的数据 X 计算得出。而
E[zij]=e−12σ2(xi−uj)2∑kn=1e−12σ2(xi−un)2
接下来,
argmaxh′Q(h′|h)=argmaxh′∑i=1m⎛⎝ln12πσ2−−−−√−12σ2∑j=1kE[zij](xi−μ′j)2⎞⎠=argminh′∑i=1m∑j=1kE[zij](xi−μ′j)2
令
∂∂μ′∑i=1m∑j=1kE[zij](xi−μ′j)2=−2∑i=1mE[zij](xi−μ′j)=0
得
μj←∑mi=1E[zij]xi∑mi=1E[zij]