机器学习 第7章-贝叶斯分类器
7.1 贝叶斯决策论
贝叶斯决策论(Bayesian decision theory)是概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。下面我们以多分类任务为例来解释其基本原理。
假设有N种可能的类别标记,即
Y
=
{
c
1
,
c
2
,
.
.
.
,
c
N
}
,
λ
i
j
Y =\{c_1,c_2,...,c_N\},λ_{ij}
Y={c1,c2,...,cN},λij是将一个真实标记为
c
j
c_{j}
cj的样本误分类为
c
i
c_i
ci所产生的损失。
基于后验概率
P
(
c
i
∣
x
)
P(c_i|x)
P(ci∣x)可获得将样本
x
x
x分类为
c
i
c_i
ci所产生的期望损失(expected loss),即在样本
x
x
x上的“条件风险”(conditional risk)
R
(
c
i
∣
x
)
=
∑
j
=
1
N
λ
i
j
P
(
c
j
∣
x
)
R(c_i|x)=∑^N_{j=1}λ_{ij}P(c_j|x)
R(ci∣x)=j=1∑NλijP(cj∣x)
所以我们需要寻找一个判定准则使得总体风险最小化。
显然,对每个样本,若h能最小化条件风险
R
(
h
(
x
)
∣
x
)
R(h(x)|x)
R(h(x)∣x),则总体风险
R
(
h
)
R(h)
R(h)也将被最小化。这就产生了贝叶斯判定准则(Bayes decisionrule):为最小化总体风险,只需在每个样本上选择那个能使条件风险
R
(
c
∣
x
)
R(c|x)
R(c∣x)最小的类别标记,即
h
∗
(
x
)
=
a
r
g
m
i
n
c
∈
Y
R
(
c
∣
x
)
h^*(x)=argmin_{c∈Y}\quad R(c|x)
h∗(x)=argminc∈YR(c∣x)
此时,
h
∗
h^*
h∗称为贝叶斯最优分类器(Bayes optimal classifer),与之对应的总体风险
R
(
h
∗
)
R(h^*)
R(h∗)称为贝叶斯风险(Bayes risk)。
1 − R ( h ∗ ) 1-R(h^*) 1−R(h∗)反映了分类器所能达到的最好性能,即通过机器学习所能产生的模型精度的理论上限。
想要使用贝叶斯判定准则来最小化决策风险,首先要获得后验概率 P ( c ∣ x ) P(c|x) P(c∣x)。然而,在现实任务中这通常难以直接获得。从这个角度来看,机器学习所要实现的是基于有限的训练样本集尽可能准确地估计出后验概率 P ( c ∣ x ) P(c|x) P(c∣x)。
大体来说,主要有两种策略: 给定 x x x,可通过直接建模 P ( c ∣ x ) P(c|x) P(c∣x)来预测 c c c,这样得到的是“判别式模型”(discriminative models);也可先对联合概率分布 P ( x , c ) P(x,c) P(x,c)建模,然后再由此获得 P ( c ∣ x ) P(c|x) P(c∣x),这样得到的是“生成式模型”(generative models)。
对生成式模型来说,必然考虑
P
(
c
∣
x
)
P(c|x)
P(c∣x)。基于贝叶斯模型,
P
(
c
∣
x
)
P(c|x)
P(c∣x)可写为:
P
(
c
∣
x
)
=
P
(
c
)
P
(
x
∣
c
)
P
(
x
)
P(c|x)={P(c)P(x|c)\over P(x)}
P(c∣x)=P(x)P(c)P(x∣c)
7.2 极大似然估计
估计类条件概率的一种常用策略是先假定其具有某种确定的概率分布形式,再基于训练样本对概率分布的参数进行估计。
事实上,概率模型的训练过程就是参数估计(parameter estimation)过程对于参数估计,统计学界的两个学派分别提供了不同的解决方案:
频率主义学派(Frequentist)认为参数虽然未知,但却是客观存在的固定值,因此,可通过优化似然函数等准则来确定参数值;
贝叶斯学派(Bayesian)则认为参数是未观察到的随机变量,其本身也可有分布,因此,可假定参数服从一个先验分布,然后基于观测到的数据来计算参数的后验分布。
极大似然估计(MLE)来自于频率主义学派。
令
D
c
D_c
Dc表示训练集
D
D
D中第
c
c
c类样本组成的集合,假设这些样本是独立同分布的,则参数
θ
c
θ_c
θc。对于数据集
D
c
D_c
Dc的似然是
P
(
D
c
∣
θ
c
)
=
∏
x
∈
D
c
P
(
x
∣
θ
c
)
P(D_c|θ_c)=∏_{x∈D_c}P(x|θ_c)
P(Dc∣θc)=x∈Dc∏P(x∣θc)
对
θ
c
θ_c
θc进行最大似然估计,就是寻找能最大化似然的参数
θ
^
c
\hat θ_c
θ^c。
通常使用对数似然来替代公式中的连乘,以避免出现溢出。在连续属性情形下,假设概率密度函数
p
(
x
∣
c
)
∼
N
(
μ
c
,
σ
c
2
)
p(x|c)∼N(μ_c,σ^2_c)
p(x∣c)∼N(μc,σc2),那么可得两个参数的极大似然估计为:
μ
^
c
=
1
∣
D
c
∣
∑
x
∈
D
c
x
\hat μ_c={1\over |D_c|}∑_{x∈D_c}x
μ^c=∣Dc∣1x∈Dc∑x
σ
^
c
2
=
1
∣
D
c
∣
∑
x
∈
D
c
(
x
−
μ
^
c
)
(
x
−
μ
^
c
)
T
\hat σ^2_c={1\over |D_c|}∑_{x∈D_c}(x-\hat μ_c)(x-\hat μ_c)^T
σ^c2=∣Dc∣1x∈Dc∑(x−μ^c)(x−μ^c)T
需注意的是,这种参数化的方法虽能使类条件概率估计变得相对简单,但估计结果的准确性严重依赖于所假设的概率分布形式是否符合潜在的真实数据分布。在现实应用中,欲做出能较好地接近潜在真实分布的假设,往往需在一定程度上利用关于应用任务本身的经验知识,否则若仅凭“猜测”来假设概率分布形式,很可能产生误导性的结果。
7.3 朴素贝叶斯分类器
不难发现,基于贝叶斯公式来估计后验概率 P ( c ∣ x ) P(c|x) P(c∣x)的主要困难在于:类条件概率 P ( x ∣ c ) P(x|c) P(x∣c)是所有属性上的联合概率,难以从有限的训练样本直接估计而得。为避开这个障碍,朴素贝叶斯分类器(naive Bayes classifer)采用了“属性条件独立性假设”(attribute conditional independence assumption):对已知类别,假设所有属性相互独立。换言之,假设每个属性独立地对分类结果发生影响。
基于属性条件独立性假设,可重写为:
P
(
c
∣
x
)
=
P
(
c
)
P
(
x
)
∏
i
=
1
d
P
(
x
i
∣
c
)
P(c|x)={P(c)\over P(x)}∏^d_{i=1}P(x_i|c)
P(c∣x)=P(x)P(c)i=1∏dP(xi∣c)
其中d为属性数目,
x
i
x_i
xi为
x
x
x在第
i
i
i个属性上的取值。
其训练过程就是基于训练集 D D D来估计类先验概率 P ( c ) P(c) P(c),并为每个属性估计条件概率。
为了避免其他属性携带的信息被训练集中未出现的属性值“抹去”在估计概率值时通常要进行“平滑”(smoothing),常用“拉普拉斯修正”(Laplaciancorrection)。
7.4 半朴素贝叶斯分类器
为了降低贝叶斯公式中估计后验概率P(c|x)的困难,朴素贝叶斯分类器采用了属性条件独立性假设,但在现实任务中这个假设往往很难成立。于是,人们尝试对属性条件独立性假设进行一定程度的放松,由此产生了一类称为“半朴素贝叶斯分类器”(semi-naive Bayes classifers)的学习方法。
半朴素贝叶斯分类器的基本想法是适当考虑一部分属性间的相互依赖信息,从而既不需进行完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系。
“独依赖估计”(One-Dependent Estimator,简称 ODE)是半朴素贝叶斯分类器最常用的一种策略。顾名思议,所谓“独依赖”就是假设每个属性在类别之外最多仅依赖于一个其他属性,即
其中
p
a
i
pa_i
pai为属性
x
i
x_i
xi所依赖的属性,称为
x
i
x_i
xi的父属性。不同的做法产生不同的独依赖分类器。
最直接的做法是假设所有属性都依赖于同一个属性,称为“超父”(super-parent),然后通过交叉验证等模型选择方法来确定超父属性,由此形成了SPODE(Super-Parent ODE)方法。例如,在图 7.1(b)中,
x
1
x_1
x1是超父属性
AODE(Averaged One-Dependent Estimator)是一种基于集成学习机制、更为强大的独依赖分类器。与SPODE通过模型选择确定超父属性不同,AODE 尝试将每个属性作为超父来构建 SPODE,然后将那些具有足够训练数据支撑的SPODE集成起来作为最终结果,即
其中 $D_{x_i}是在第
i
i
i个属性上取值为
x
i
x_i
xi的样本的集合,
m
′
m'
m′ 为阔值常数。
7.5 贝叶斯网
贝叶斯网(Bayesian network)亦称“信念网”(belief network),它借助有向无环图(Directed Acyclic Graph,简称 DAG)来刻画属性之间的依赖关系,并使用条件概率表(Conditional Probability Table,简称 CPT)来描述属性的联合概率分布。
7.5.1 结构
贝叶斯网结构有效地表达了属性间的条件独立性。给定父结点集,贝叶斯网假设每个属性与它的非后裔属性独立,于是
B
=
(
G
,
Θ
)
B=(G,Θ)
B=(G,Θ)将属性
x
1
,
x
2
,。。。,
x
d
x_1,x_2,。。。,x_d
x1,x2,。。。,xd的联合概率分布定义为
P
B
(
x
1
,
x
2
,
.
.
.
,
x
d
)
=
∏
i
=
1
d
P
B
(
x
i
∣
π
i
)
=
∏
i
=
1
d
θ
x
i
∣
π
i
P_B(x_1,x_2,...,x_d)=∏^d_{i=1}P_B(x_i|π_i)=∏^d_{i=1}θ_{x_i|π_i}
PB(x1,x2,...,xd)=i=1∏dPB(xi∣πi)=i=1∏dθxi∣πi
图 7.3 显示出贝叶斯网中三个变量之间的典型依赖关系
在“同父”(common parent)结构中,给定父结点
x
1
x_1
x1的取值,则
x
3
x_3
x3与
x
4
x_4
x4条件独立。在“顺序”结构中,给定
x
x
x的值,则
y
y
y与
z
z
z条件独立。V型结构(Vstructure)亦称“冲撞”结构,给定子结点
x
4
x_4
x4的取值,
x
1
x_1
x1与
x
2
x_2
x2必不独立;奇妙的是,若
x
4
x_4
x4的取值完全未知,则V型结构下
x
1
x_1
x1与
x
2
x_2
x2却是相互独立的。
7.5.2 学习
若网络结构已知,即属性间的依赖关系已知,则贝叶斯网的学习过程相对简单,只需通过对训练样本“计数”,估计出每个结点的条件概率表即可。但在现实应用中我们往往并不知晓网络结构,于是,贝叶斯网学习的首要任务就是根据训练数据集来找出结构最“恰当”的贝叶斯网。“评分搜索”是求解这一问题的常用办法。具体来说,我们先定义一个评分函数(score function),以此来评估贝叶斯网与训练数据的契合程度,然后基于这个评分函数来寻找结构最优的贝叶斯网。显然,评分函数引入了关于我们希望获得什么样的贝叶斯网的归纳偏好。
常用评分函数通常基于信息论准则,此类准则将学习问题看作一个数据压缩任务,学习的目标是找到一个能以最短编码长度描述训练数据的模型,此时编码的长度包括了描述模型自身所需的字节长度和使用该模型描述数据所需的字节长度。对贝叶斯网学习而言,模型就是一个贝叶斯网,同时,每个贝叶斯网描述了一个在训练数据上的概率分布,自有一套编码机制能使那些经常出现的样本有更短的编码。于是,我们应选择那个综合编码长度(包括描述网络和编码数据)最短的贝叶斯网,这就是“最小描述长度”(Minimal DescriptionLength,简称 MDL)准则。
7.5.3 推断
贝叶斯网训练好之后就能用来回答“查询”(query),即通过一些属性变量的观测值来推测其他属性变量的取值。例如在西瓜问题中,若我们观测到西瓜色泽青绿、敲声浊响、根蒂蜷缩,想知道它是否成熟、甜度如何。这样通过已知变量观测值来推测待查询变量的过程称为“推断”(inference),已知变量观测值称为“证据”(evidence)。
最理想的是直接根据贝叶斯网定义的联合概率分布来精确计算后验概率不幸的是,这样的“精确推断”已被证明是NP难的[Cooper,1990];换言之当网络结点较多、连接稠密时,难以进行精确推断,此时需借助“近似推断”通过降低精度要求,在有限时间内求得近似解。在现实应用中,贝叶斯网的近似推断常使用吉布斯采样(Gibbs sampling)来完成,这是一种随机采样方法。
7.6 EM算法
未观测变量的学名是“隐变量”(latent variable)。令
X
X
X表示已观测变量集,
Z
Z
Z 表示隐变量集,
Θ
Θ
Θ 表示模型参数。若欲对
Θ
Θ
Θ做极大似然估计,则应最大化对数似然
L
L
(
Θ
∣
X
,
Z
)
=
l
n
P
(
X
,
Z
∣
Θ
)
LL(Θ|X,Z)=ln P(X,Z|Θ)
LL(Θ∣X,Z)=lnP(X,Z∣Θ)
然而由于
Z
Z
Z是隐变量,上式无法直接求解。此时我们可通过
Z
Z
Z对计算期望,来最大化己观测数据的对数"边际似然"
L
L
(
Θ
∣
X
)
=
l
n
P
(
X
∣
Θ
)
=
l
n
∑
z
P
(
X
,
Z
∣
Θ
)
LL(Θ|X)=ln P(X|Θ)=ln∑_z P(X,Z|Θ)
LL(Θ∣X)=lnP(X∣Θ)=lnz∑P(X,Z∣Θ)
EM (Expectation-Maximization)算法是常用的估计参数隐变量的利器,它是一种迭代式的方法,
其基本想法是:若参数 Θ Θ Θ已知,则可根据训练数据推断出最优隐变量 Z Z Z的值(E 步);反之,若么的值已知,则可方便地对参数 Θ Θ Θ做极大似然估计(M步)。新得到的参数值重新应用于E步,直到收敛到局部最优解。