贝叶斯决策论(Bayesian decision theory)是概率框架下实施决策的基本方法。具体来说,在分类任务中,贝叶斯决策论基于概率和误判损失选择出最优的类别标记。
以多分类任务为例,假设有 种标记,即
,用
表示把一个真实标记为
的样本误分类为
所产生的损失。那么将样本
分类为
的期望损失(expected loss)或者说,在样本
s上的条件风险(conditional risk):
%20%3D%20%5Csum%7Bj%3D1%7D%5EN%20%5Clambda%7Bij%7D%20P(cj%20%7C%20%5Cmathbf%7Bx%7D)%0A#card=math&code=R%28c_i%20%7C%20%5Cmathbf%7Bx%7D%29%20%3D%20%5Csum%7Bj%3D1%7D%5EN%20%5Clambda_%7Bij%7D%20P%28c_j%20%7C%20%5Cmathbf%7Bx%7D%29%0A&id=l0gAh)
它描述的是,给定一个样本 ,把它分类为
需要冒多大的风险。或者说,当样本真实标记不是
时,会有多大的损失。这个损失是一个求和,每一个求和项都是某一类别的后验概率和对应误分类损失的积。(注:书中这个地方不够细致,求和项的下标是要排除
本身的)
在单个样本条件风险的基础上,可以定义总体风险:
%20%3D%20%5Cmathbb%7BE%7D%7B%5Cmathbf%7Bx%7D%7D%5BR(h(%5Cmathbf%7Bx%7D)%5C%20%7C%5C%20%5Cmathbf%7Bx%7D)%5D%0A#card=math&code=R%28h%29%20%3D%20%5Cmathbb%7BE%7D%7B%5Cmathbf%7Bx%7D%7D%5BR%28h%28%5Cmathbf%7Bx%7D%29%5C%20%7C%5C%20%5Cmathbf%7Bx%7D%29%5D%0A&id=Uoz7u)
它描述的是,所有样本的条件风险的数学期望。其中 是一种用于产生分类结果的判断准则。
那么我们的目标就是找出能最小化总体风险 #card=math&code=R%28h%29&id=EKEzl) 的判断准则。怎样的判断准则能满足这个要求呢?很直观地,如果一个判断准则
能最小化所有样本
的条件风险,那它对应的总体风险必然也是最小的。由此,可以得到贝叶斯判定准则(Bayes decision rule):要最小化总体风险,只需在每个样本上选择能使对应的条件风险
#card=math&code=R%28c%5C%20%7C%5C%20%5Cmathbf%7Bx%7D%29&id=A6Lvv) 最小的标记。即:
%20%3D%20%5Carg%20%5Cmin%7Bc%20%5Cin%20%5Cmathcal%7BY%7D%7D%20R(c%5C%20%7C%5C%20%5Cmathbf%7Bx%7D)%0A#card=math&code=h%5E%2A%28%5Cmathbf%7Bx%7D%29%20%3D%20%5Carg%20%5Cmin%7Bc%20%5Cin%20%5Cmathcal%7BY%7D%7D%20R%28c%5C%20%7C%5C%20%5Cmathbf%7Bx%7D%29%0A&id=oheHK)
这个判断准则 称为贝叶斯最优分类器(Bayes optimal classifier),对应的总体风险
#card=math&code=R%28h%5E%2A%29&id=Sy0oe) 称为贝叶斯风险(Bayes risk),而
#card=math&code=1-R%28h%5E%2A%29&id=fpNzJ) 则反映了分类器所能达到的最好性能,也即模型精度的理论上限。
进一步地,如果学习模型的目标是令分类错误率最小,那么分类正确时误分类损失 为0,反之为1。这是条件风险就是:
%20%3D%201-P(c%5C%20%7C%5C%20%5Cmathbf%7Bx%7D)%0A#card=math&code=R%28c%5C%20%7C%5C%20%5Cmathbf%7Bx%7D%29%20%3D%201-P%28c%5C%20%7C%5C%20%5Cmathbf%7Bx%7D%29%0A&id=xwVb2)
要令风险最小,我们只需要选择使样本 后验概率最大的一个类别标记就可以了。
问题在于,怎样获取后验概率呢?
事实上,从概率的角度来理解,机器学习的目标就是基于有限的训练样本集尽可能准确地估计出后验概率(当然,大多数机器学习技术无需准确估计出后验概率)。要实现这个目标,主要有两种策略:
- 构建判别式模型(discriminative models):给定样本
,直接对后验概率
#card=math&code=P%28%5Cmathbf%7Bx%7D%5C%20%7C%5C%20c%29&id=quErt) 建模来预测
。这类模型包括决策树、BP神经网络、支持向量机等等。
- 构建生成式模型(generative models) :给定样本
,先对联合概率分布
#card=math&code=P%28%5Cmathbf%7Bx%7D%2Cc%29&id=sMHFB) 建模,然后再利用联合概率计算出后验概率
#card=math&code=P%28c%5C%20%7C%5C%20%5Cmathbf%7Bx%7D%29&id=BHtgP),也即
%20%3D%20%5Cfrac%7BP(%5Cmathbf%7Bx%7D%2Cc)%7D%7BP(%5Cmathbf%7Bx%7D)%7D#card=math&code=P%28c%5C%20%7C%5C%20%5Cmathbf%7Bx%7D%29%20%3D%20%5Cfrac%7BP%28%5Cmathbf%7Bx%7D%2Cc%29%7D%7BP%28%5Cmathbf%7Bx%7D%29%7D&id=EIwtS)。
又因为联合概率 %20%3D%20P(c%5C%20%7C%5C%20%5Cmathbf%7Bx%7D)%20%5Ctimes%20P(%5Cmathbf%7Bx%7D)%20%3D%20P(%5Cmathbf%7Bx%7D%5C%20%7C%5C%20c)%20%5Ctimes%20P(c)#card=math&code=P%28%5Cmathbf%7Bx%7D%2Cc%29%20%3D%20P%28c%5C%20%7C%5C%20%5Cmathbf%7Bx%7D%29%20%5Ctimes%20P%28%5Cmathbf%7Bx%7D%29%20%3D%20P%28%5Cmathbf%7Bx%7D%5C%20%7C%5C%20c%29%20%5Ctimes%20P%28c%29&id=AGLLA),由此,能得到贝叶斯定理:
%20%3D%20%5Cfrac%7BP(%5Cmathbf%7Bx%7D%5C%20%7C%5C%20c)%20%5Ctimes%20P(c)%7D%7BP(%5Cmathbf%7Bx%7D)%7D%0A#card=math&code=P%28c%5C%20%7C%5C%20%5Cmathbf%7Bx%7D%29%20%3D%20%5Cfrac%7BP%28%5Cmathbf%7Bx%7D%5C%20%7C%5C%20c%29%20%5Ctimes%20P%28c%29%7D%7BP%28%5Cmathbf%7Bx%7D%29%7D%0A&id=RraxK)
在贝叶斯定理中,每个概率都有约定俗成的名称:
#card=math&code=P%28c%5C%20%7C%5C%20%5Cmathbf%7Bx%7D%29&id=l4iMY) 是类标记
相对于样本
的条件概率,也由于得自
的取值而被称作
的后验概率。
#card=math&code=P%28%5Cmathbf%7Bx%7D%5C%20%7C%5C%20c%29&id=XwKtm) 是样本
相对于类标记
的类条件概率(class-conditional probability),或称为似然(likelihood),也由于得自
的取值而被称作
的后验概率。
#card=math&code=P%28c%29&id=AYlL8) 是
的先验概率(也称为边缘概率),之所以称为”先验”是因为它不考虑任何
方面的因素。在这里又称为类先验(prior)概率。
#card=math&code=P%28%5Cmathbf%7Bx%7D%29&id=U8Qc8) 是
的先验概率。在这里是用作归一化的证据(evidence)因子,与类标记无关。
有了贝叶斯定理,如何估计后验概率 #card=math&code=P%28c%5C%20%7C%5C%20%5Cmathbf%7Bx%7D%29&id=KFlVu) 的问题就转化为如何计算类先验概率
#card=math&code=P%28c%29&id=PNeku) 和类条件概率
#card=math&code=P%28%5Cmathbf%7Bx%7D%5C%20%7C%5C%20c%29&id=lF9rA) 了。
类先验概率 #card=math&code=P%28c%29&id=hUHMJ) 表示的是样本空间中各类样本的比例,根据大数定律,当训练集包含足够多的独立同分布样本时,类先验概率可以直接通过训练集中各类样本出现的频率进行估计。
类条件概率 #card=math&code=P%28%5Cmathbf%7Bx%7D%5C%20%7C%5C%20c%29&id=NaRSD) 的情况就复杂多了,它涉及到类
中样本
所有属性的联合概率,假设每个样本有
个二值属性,那么可能的取值组合就多达
个,这个数目可能远多于训练集的规模,也就意味着很多样本的取值没有在训练集中出现,所以直接用训练集出现的频率进行估计是不可行的。必须注意未被观测到和出现概率为0的区别。
注意,上述讨论中,均假设属性是离散型,对于连续型属性,只需把概率质量函数 #card=math&code=P%28%5Ccdot%29&id=Q5XIU) 换为概率密度函数
#card=math&code=p%28%5Ccdot%29&id=x6XVB) 就可以了。