贝叶斯决策论(Bayesian decision theory) 是在概率论框架下实施决策的基本方法。对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记
假设有N种可能的类别标记,即 y = { c 1 , c 2 , ⋯ , c N } y=\{c_1,c_2,\cdots,c_N\} y={c1,c2,⋯,cN}, λ i j \lambda_{ij} λij是将一个真实标记为 c j c_j cj的样本误分类为 c i c_i ci所产生的损失。基于后验概率 P ( c i ∣ x ) P(c_i|\pmb x) P(ci∣xxx)可获得将样本 x \pmb x xxx分类为 c i c_i ci所产生的 期望损失(expected loss),即在样本 x \pmb x xxx上的 “条件风险”(conditional risk)
R ( c i ∣ x ) = ∑ j = 1 N λ i j P ( c j ∣ x ) R(c_i|\pmb x) = \sum_{j=1}^N \lambda_{ij}P(c_j|\pmb x) R(ci∣xxx)=j=1∑NλijP(cj∣xxx)
我们的任务是寻找一个判定准则 h : χ ↦ y h:\chi\mapsto y h:χ↦y以最小化总体风险
R ( h ) = E x [ R ( h ( x ) ∣ x ] R(h)=E_x[R(h(\pmb x)|\pmb x] R(h)=Ex[R(h(xxx)∣xxx]
显然,对每个样本 x \pmb x xxx,若h能最小化条件风险 R ( h ( x ) ∣ x R(h(\pmb x)|\pmb x R(h(xxx)∣xxx,则总体风险 R ( h ) R(h) R(h)也能被最小化,这就产生了 贝叶斯判定准则(Bayes decision rule):为最小化总体风险,只需要在每个样本上选择那个使能使条件风险 R ( c ∣ x ) R(c|\pmb x) R(c∣xxx)最小化的类别标记
h ∗ ( x ) = argmin c ∈ y R ( c ∣ x ) h^*(\pmb x) = \underset{c\in y}{\operatorname {argmin}}R(c|\pmb x) h∗(xxx)=c∈yargminR(c∣xxx)
h ∗ h^* h∗称为贝叶斯最优分类器(Bayes optimal classifier),与之对应的总体风险 R ( h ∗ ) R(h^*) R(h∗)称为贝叶斯风险(Bayes risk)。 1 − R ( h ∗ ) 1-R(h^*) 1−R(h∗)反映了分类器所能达到的最好性能,即通过机器学习所能产生的模型的精度的理论上限
欲使用贝叶斯判定准则来最小化决策风险,首先要获得后验概率,然而,在现实任务中这通常难以直接获取。从这个角度来看,机器学习所要实现的是基于有限的训练样本集尽可能准确地估计出后验概率。大体来说,主要有两种策略:给定 x \pmb x xxx,可通过直接建模 P ( c ∣ x ) P(c|\pmb x) P(c∣xxx)来预测c,这样得到的是 “判别式模型”(discriminative models);也可先对联合概率密度分布 P ( x , c ) P(\pmb x,c) P(xxx,c)建模,然后再由此获得 P ( c ∣ x ) P(c|\pmb x) P(c∣xxx),这样得到的是 “生成式模型”(generative models)。
决策树、BP神经网络、支持向量机,都可以归入判别式模型
对生成式模型来说,必然考虑
P ( c ∣ x ) = P ( x , c ) P ( x ) P(c|\pmb x)=\frac{P(\pmb x,c)}{P(\pmb x)} P(c∣xxx)=P(xxx)P(xxx,c)
基于贝叶斯定理,可写为
P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) P(c|\pmb x)=\frac{P(c)P(\pmb x|c)}{P(\pmb x)} P(c∣xxx)=P(xxx)P(c)P(xxx∣c)
其中 P ( c ) P(c) P(c)是 类“先验”(prior)概率, P ( x ∣ c ) P(\pmb x|c) P(xxx∣c)是样本 x \pmb x xxx相对于类别标记c的 类条件概率(class-conditional probability),或者称为 “似然”(likelihood); P ( x ) P(\pmb x) P(xxx)是用于归一化的 “证据”(evidence)因子。对给定样本 x \pmb x xxx,证据因子 P ( x ) P(\pmb x) P(xxx)与类别无关,因此估计 P ( x ∣ c ) P(\pmb x|c) P(xxx∣c)的问题转化为如何基于训练数据D来估计先验概率 P ( c ) P(c) P(c)和似然 P ( c ∣ x ) P(c|\pmb x) P(c∣xxx)
这里概念很多,引用大量整段原文
联合概率分布
P B ( x 1 , x 2 , ⋯ , x d ) = ∏ i = 1 d P B = ∏ i = 1 d θ x i ∣ π i P_B(x_1,x_2,\cdots,x_d)=\prod_{i=1}^dP_B=\prod_{i=1}^d\theta_{x_i|\pi_i} PB(x1,x2,⋯,xd)=i=1∏dPB=i=1∏dθxi∣πi
以上图为例,联合概率分布定义为
P ( x 1 , x 2 , x 3 , x 4 , x 5 ) = P ( x 1 ) P ( x 2 ) P ( x 3 ∣ x 1 ) P ( x 4 ∣ x 1 , x 2 ) P ( x 5 ∣ x 2 ) P(x_1,x_2,x_3,x_4,x_5)=P(x_1)P(x_2)P(x_3|x_1)P(x_4|x_1,x_2)P(x_5|x_2) P(x1,x2,x3,x4,x5)=P(x1)P(x2)P(x3∣x1)P(x4∣x1,x2)P(x5∣x2)
“同父”(common parent) 结构中,给定父节点 x 1 x_1 x1的取值,则 x 3 x_3 x3与 x 4 x_4 x4相互条件独立
“顺序”结构 中,给定x的值,则y与z相互独立
V型结构(V-structure) 亦称“冲撞”结构,给定子节点 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却是相互独立的,这种独立性称为“边际独立性”(marginal independence)
为了分析有向图中变量间的条件独立性,可使用“有向分离”(D-separation)。我们先将有向图转变为一个无向图:
(1)找出有向图中的所有V型结构,在V型结构的两个父结点之间加上一条无向边;
(2)将所有有向边改为无向边
由此产生的无向图称为**“道德图”(moral graph)**,令父结点相连的过程称为 “道德化”(moralization)
有向分离,从图中能偶容易地找出所有条件独立关系: x 3 ⊥ x 4 ∣ x 1 , x 4 ⊥ x 5 ∣ x 2 , x 3 ⊥ x 2 ∣ x 1 , x 3 ⊥ x 5 ∣ x 1 , x 3 ⊥ x 5 ∣ x 2 , x_3\perp x_4|x_1,x_4\perp x_5|x_2,x_3\perp x_2|x_1,x_3\perp x_5|x_1,x_3\perp x_5|x_2, x3⊥x4∣x1,x4⊥x5∣x2,x3⊥x2∣x1,x3⊥x5∣x1,x3⊥x5∣x2,
网络结构往往未知,贝叶斯网学习的首要任务就是根据训练数据集来找出结构最“恰当”的贝叶斯网
“评分搜索” 是求解这一问题的常用办法,我们先定义一个 评分函数(score function),以此评估贝叶斯网与训练数据的契合程度,然后基于这个评分函数来寻找结构最优的贝叶斯网。显然,评分函数引入了关于我们想要什么样的贝叶斯网的归纳偏好
对贝叶斯网学习而言,模型就是一个贝叶斯网,同时,每个贝叶斯网描述了一个训练数据上的概率分布,自有一套编码机制能使那些经常出现的样本有更短的编码,我们选择那个综合编码长度(包括描述网络和编码数据)最短的贝叶斯网,这就是 “最小描述长度”(Minimal Description Length,简称MDL)准则
给定训练集 D = { x 1 , x 2 , ⋯ , x m } D=\{\pmb x_1, \pmb x_2,\cdots,\pmb x_m\} D={xxx1,xxx2,⋯,xxxm},贝叶斯网 B = ⟨ G , Θ ⟩ B=\langle G,\Theta \rangle B=⟨G,Θ⟩在D上的评分函数可写为
s ( B ∣ D ) = f ( θ ) ∣ B ∣ − L L ( B ∣ D ) s(B|D)=f(\theta)|B|-LL(B|D) s(B∣D)=f(θ)∣B∣−LL(B∣D)
其中|B|是贝叶斯网的参数个数; f ( θ ) f(\theta) f(θ)表示描述每个参数 θ \theta θ所需字节数;而
L L ( B ∣ D ) = ∑ i = 1 m log P B ( x i ) LL(B|D)=\sum_{i=1}^m\operatorname{log}P_B(\pmb x_i) LL(B∣D)=i=1∑mlogPB(xxxi)
是贝叶斯网B的对数似然
若 f ( θ ) = 1 f(\theta)=1 f(θ)=1,即每个参数用1字节描述,则得到 AIC(Akaike Information Criterion)评分系统
A I C ( B ∣ D ) = ∣ B ∣ − L L ( B ∣ D ) AIC(B|D)=|B|-LL(B|D) AIC(B∣D)=∣B∣−LL(B∣D)
若 f ( θ ) = 1 2 log m f(\theta)=\frac{1}{2}\operatorname {log}m f(θ)=21logm,即每个参数用 1 2 log m \frac{1}{2}\operatorname {log}m 21logm字节描述,则得到BIC(Bayesian Information Criterion)评分函数
B I C ( B ∣ D ) = log m 2 ∣ B ∣ − L L ( B ∣ D ) BIC(B|D)=\frac{\operatorname{log}m}{2}|B|-LL(B|D) BIC(B∣D)=2logm∣B∣−LL(B∣D)
若G固定,则评分函数 s ( B ∣ D ) s(B|D) s(B∣D)的第一项为常数,此时最小化 s ( B ∣ D ) s(B|D) s(B∣D)等价于对参数 Θ \Theta Θ的极大似然估计,参数 θ x i ∣ π i \theta_{x_i}|\pi_i θxi∣πi能直接在训练集D上通过经验估计获得,即
θ x i ∣ π i = P ^ D ( x i ∣ π i ) \theta_{x_i|\pi_i} = \hat P_D(x_i|\pi_i) θxi∣πi=P^D(xi∣πi)
其中 P ^ D ( ⋅ ) \hat P_D(\cdot) P^D(⋅)是D上的经验分布,为了最小化评分函数,只需要对网络结构进行搜索,而候选结构的最优参数直接在训练集上计算得到
从所有可能的网络结构空间搜索最优贝叶斯网络是一个NP难问题,难以快速求解,有两种常用的策略求得近似解:
(1)贪心法,例如从某个网络结构出发,每个调整一条边(增加、删除或调整方向)直至评分不再降低为止
(2)通过给网络结构施加约束来削减搜索空间,例如将网络结构限定为树结构等
贝叶斯网训练好之后就能用来回答“查询”(query),通过已知变量观测值来推测待查询变量的过程称为 “推断”(inference),已知变量观测值称为 “证据”(evidence)
最理想的是直接根据贝叶斯网定义的联合概率分布来精确计算后验概率,但当网络结点较多、连接稠密时,难以进行精确推断,此时需通过降低精度要求,在有限的时间内求得近似解。
贝叶斯网的近似推断常使用吉布斯采样(Gibbs sampling)来完成
令 Q = { Q 1 , Q 2 , ⋯ , Q n } \pmb Q=\{Q_1,Q_2,\cdots,Q_n\} QQQ={Q1,Q2,⋯,Qn}表示查询变量, E = { E 1 , E 2 , ⋯ , E k } \pmb E=\{E_1,E_2,\cdots,E_k\} EEE={E1,E2,⋯,Ek}为证据变量,已知其取值 e = { e 1 , e 2 , ⋯ , e k } \pmb e=\{e_1,e_2,\cdots,e_k\} eee={e1,e2,⋯,ek}.目标是计算后验概率 P ( Q = q ∣ E = e ) P(\pmb Q = \pmb q|\pmb E = \pmb e) P(QQQ=qqq∣EEE=eee)
吉布斯采样法先随机产生一个与证据 E = e \pmb E=\pmb e EEE=eee一致的样本 q 0 \pmb q^0 qqq0作为起始点,然后每步从当前样本出发产生下一样本。具体来说,在第t次采样中,算法先假设 q t = q t − 1 \pmb q^t = \pmb q^{t-1} qqqt=qqqt−1,然后对非证据变量逐个进行采样改变其取值,采样概率通过贝叶斯网络B和其他变量的当前取值(即 Z = z \pmb Z = \pmb z ZZZ=zzz)计算获得。假定经过T次采样得到与q一致的样本共有 n q n_q nq个,则可近似估算出后验概率
P ( Q = q ∣ E = e ) ≃ n q T P(\pmb Q=\pmb q|\pmb E=\pmb e)\simeq \frac{n_q}{T} P(QQQ=qqq∣EEE=eee)≃Tnq
实质上,吉布斯采样是在贝叶斯网所有变量的联合状态空间中与证据 E = e \pmb E=\pmb e EEE=eee一致的子空间中进行 “随机漫步”(random walk),每一步仅依赖于前一步的状态,这是一个 “马尔科夫链”(Markov chain)
这里需要补充
未观测变量的学名是 “隐变量”(latent variable)。
令 X \pmb X XXX表示已观测变量集, Z \pmb Z ZZZ表示隐变量集, Θ \Theta Θ表示模型参数。若欲对 Θ \Theta Θ做极大似然估计,则应最大化对数似然
L L ( Θ ∣ X , Z ) = ln P ( X , Z ∣ Θ ) LL(\Theta|\pmb X,\pmb Z) = \operatorname{ln}P(\pmb X,\pmb Z|\Theta) LL(Θ∣XXX,ZZZ)=lnP(XXX,ZZZ∣Θ)
可通过对 Z \pmb Z ZZZ计算期望,来最大化已观测数据的对数 “边际似然”(marginal likelihood)
L L ( Θ ∣ X ) = ln P ( X ∣ Θ ) = ln ∑ z P ( X , Z ∣ Θ ) LL(\Theta|\pmb X)=\operatorname{ln}P(\pmb X|\Theta)=\operatorname{ln}\sum_{\pmb z}P(\pmb X,\pmb Z|\Theta) LL(Θ∣XXX)=lnP(XXX∣Θ)=lnzzz∑P(XXX,ZZZ∣Θ)
EM(Expectation-Maximization)算法 是常用的估计参数隐变量的利器,它是一种迭代的方法
其基本思想是:若参数 Θ \Theta Θ已知,则可根据训练数据推断出最优隐变量 Z \pmb Z ZZZ的值(E步);反之,若 Z \pmb Z ZZZ的值已知,则可方便地对参数 Θ \Theta Θ做出极大似然估计(M步)
以初始值 Θ 0 \Theta^0 Θ0为起点,可迭代执行以下步骤直至收敛:
(1)基于 Θ t \Theta^t Θt推断隐变量 Z \pmb Z ZZZ的期望,记为 Z t \pmb Z^t ZZZt;
(2)基于已观测变量 X \pmb X XXX和 Z t \pmb Z^t ZZZt对参数 Θ \Theta Θ做极大似然估计,记为 Θ t + 1 \Theta^{t+1} Θt+1
如果是基于 Θ t \Theta^{t} Θt计算隐变量的概率分布 P ( Z ∣ X , Θ t ) P(\pmb Z|\pmb X, \Theta^t) P(ZZZ∣XXX,Θt),则EM算法的两个步骤是
(1)E步(Expectation):以当前参数 Θ t \Theta^{t} Θt推断隐变量 P ( Z ∣ X , Θ t ) P(\pmb Z|\pmb X, \Theta^t) P(ZZZ∣XXX,Θt),并计算对数似然 L L ( Θ ∣ X , Z ) LL(\Theta|\pmb X,\pmb Z) LL(Θ∣XXX,ZZZ)关于 Z \pmb Z ZZZ的期望
Q ( Θ ∣ Θ t ) = E Z ∣ X , Θ t L L ( Θ ∣ Z , X ) Q(\Theta|\Theta^t)=\mathbb{E}_{\pmb Z|\pmb X,\Theta^t}LL(\Theta|\pmb Z,\pmb X) Q(Θ∣Θt)=EZZZ∣XXX,ΘtLL(Θ∣ZZZ,XXX)
(2)M步(Maximization):寻找参数最大化期望似然
Θ t + 1 = argmax Θ Q ( Θ ∣ Θ t ) \Theta^{t+1}=\underset{\Theta}{\operatorname{argmax}}Q(\Theta|\Theta^t) Θt+1=ΘargmaxQ(Θ∣Θt)
这一章还需要加强理解