学习笔记|机器学习入门-西瓜书总结笔记第七章


西瓜书第七章-贝叶斯分类器

  • 一、贝叶斯决策论
  • 二、极大似然估计
  • 三、朴素贝叶斯分类器
  • 四、半朴素贝叶斯分类器
  • 五、贝叶斯网(Bayesian network)
    • 1.结构
    • 2.学习
    • 3.推断
  • 六、EM算法
  • 总结

一、贝叶斯决策论
  • 贝叶斯决策论(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?λij?P(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∈yargmin?R(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)
    这里概念很多,引用大量整段原文
二、极大似然估计
  • 估计类条件概率的一种常用策略是先假设其具有某种确定的概率分布形式,再基于训练样本对概率密度的参数进行估计。
  • 事实上,概率模型的训练过程就是 参数估计(parameter estimation) 过程
  • 统计学界两种不同的解决方案:
    频率派(Frequentist) 认为参数虽然未知,但却是客观存在的固定值,可通过优化似然函数等准则来确定参数
    贝叶斯派(Bayesian)则认为参数是未观察到的随机变量,其本身也可有分布,可假定参数服从一个先验分布,然后基于观测到的数据来计算参数的后验分布
  • 源自频率主义学派的 极大似然估计(Maximum Likelihood Estimation,简称MLE)
    令 D c D_c Dc?表示训练集 D D D中第c类样本组成的集合,假设这些样本是独立同分布的,则参数 θ c \pmb \theta_c θθθc?对于数据集 D c D_c Dc?的似然是
    P ( D c ∣ θ c ) = ∏ x ∈ D c P ( x ∣ θ c ) P(D_c|\pmb \theta_c)=\prod_{x\in D_c}P(\pmb x|\pmb \theta_c) P(Dc?∣θθθc?)=x∈Dc?∏?P(xxx∣θθθc?)
    直观来看,极大似然估计是试图再 θ c \pmb \theta_c θθθc?所有可能的取值中,找到一个能使数据出现“可能性”最大的值
  • 连乘易造成下溢,通常使用 对数似然(log-likelihood)
    L L ( θ c ) = log ? P ( D c ∣ θ c ) = ∑ x ∈ D c log ? P ( x ∣ θ c ) \begin{aligned} LL(\pmb \theta_c) &= \operatorname{log} P(D_c|\pmb \theta_c)\\ & =\sum_{x\in D_c}\operatorname{log} P(\pmb x|\pmb \theta_c) \end{aligned} LL(θθθc?)?=logP(Dc?∣θθθc?)=x∈Dc?∑?logP(xxx∣θθθc?)?
    此时参数 θ c \pmb \theta_c θθθc?的极大似然估计 θ ^ c \hat {\pmb \theta}_c θθθ^c?为
    θ ^ c = argmax ? θ c L L ( θ c ) \hat {\pmb \theta}_c = \underset{\theta_c}{\operatorname {argmax}}LL(\pmb \theta_c) θθθ^c?=θc?argmax?LL(θθθc?)
    例如,在连续属性情形下,假设概率密度函数 p ( x ∣ c ) ~ N ( μ c , σ c 2 ) p(\pmb x|c)\sim\mathcal{N}(\pmb \mu_c,\pmb \sigma_c^2) p(xxx∣c)~N(μ?μ??μc?,σσσc2?),则参数 μ c \pmb \mu_c μ?μ??μc?和 σ c 2 \pmb \sigma_c^2 σσσc2?的极大似然估计为
    μ ^ c = 1 ∣ D c ∣ ∑ x ∈ D c x σ c 2 = 1 ∣ D c ∣ ∑ x ∈ D c ( x ? μ ^ c ) ( x ? μ ^ c ) T \begin{aligned} &\hat {\pmb \mu}_c=\frac{1}{|D_c|}\sum_{x\in D_c}\pmb x\\ &\pmb \sigma_c^2 = \frac{1}{|D_c|}\sum_{x\in D_c}(\pmb x-\hat {\pmb \mu}_c)(\pmb x-\hat {\pmb \mu}_c)^T \end{aligned} ?μ?μ??μ^?c?=∣Dc?∣1?x∈Dc?∑?xxxσσσc2?=∣Dc?∣1?x∈Dc?∑?(xxx?μ?μ??μ^?c?)(xxx?μ?μ??μ^?c?)T?
    取决于假设的概率密度分布形式是否符合潜在真实数据分布,需要结合关于任务本身的经验知识
三、朴素贝叶斯分类器
  • 基于贝叶斯公式来估计后验概率 P ( c ∣ x ) P(c|\pmb x) P(c∣xxx)的主要困难在于:类条件概率 P ( x ∣ c ) P(\pmb x|c) P(xxx∣c)是所有属性上的联合概率,难以从有限的训练样本直接估计而得
  • 为此,朴素贝叶斯分类器(naive Bayes classifier) 采用了 “属性条件独立性假设”(attribute conditional independence assumption)。假设每个属性独立地对分类结果发生影响
  • 基于属性条件独立性假设,
    P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) = P ( c ) P ( x ) ∏ i = 1 d P ( x i ∣ c ) P(c|\pmb x)=\frac{P(c)P(\pmb x|c)}{P(\pmb x)}=\frac{P(c)}{P(\pmb x)}\prod_{i=1}^dP(x_i|c) P(c∣xxx)=P(xxx)P(c)P(xxx∣c)?=P(xxx)P(c)?i=1∏d?P(xi?∣c)
    其中d为属性数目, x i x_i xi?为 x \pmb x xxx在第i个属性上的取值
    h n b ( x ) = argmax ? c ∈ y P ( c ) ∏ i = 1 d P ( x i ∣ c ) h_{nb}(\pmb x) = \underset{c\in y}{\operatorname{argmax}}P(c)\prod_{i=1}^dP(x_i|c) hnb?(xxx)=c∈yargmax?P(c)i=1∏d?P(xi?∣c)
    上式就是朴素贝叶斯分类器的表达式
    容易估计出类先验概率:
    P ( c ) = ∣ D c ∣ ∣ D ∣ P(c)=\frac{|D_c|}{|D|} P(c)=∣D∣∣Dc?∣?
    条件概率
    P ( x i ∣ c ) = ∣ D c , x i ∣ ∣ D c ∣ P(x_i|c)=\frac{|D_{c,x_i}|}{|D_c|} P(xi?∣c)=∣Dc?∣∣Dc,xi??∣?
    对于连续概率密度函数,假定 p ( x i ∣ c ) ~ N ( μ c , i , σ c , i 2 ) p(x_i|c)\sim \mathcal{N}(\mu_{c,i},\sigma_{c,i}^2) p(xi?∣c)~N(μc,i?,σc,i2?)
    则有
    p ( x i ∣ c ) = 1 2 π σ c , i exp ? ( ? ( x i ? μ c , i ) 2 2 σ c , i 2 ) p(x_i|c)=\frac{1}{\sqrt{2\pi}\sigma_{c,i}}\operatorname{exp}(-\frac{(x_i-\mu_{c,i})^2}{2\sigma_{c,i}^2}) p(xi?∣c)=2π ?σc,i?1?exp(?2σc,i2?(xi??μc,i?)2?)
  • 为了避免其他属性携带信息被训练集中未出现的属性值“抹去”,在估计概率值时通常进行 “平滑”(smoothing),常用 “拉普拉斯修正”(Laplacian correction)。具体来说,令N表示训练集D中可能的类别数, N i N_i Ni?表示第i个属性可能的取值数,则修正
    P ^ ( c ) = ∣ D c ∣ + 1 ∣ D ∣ + N , P ^ ( x i ∣ c ) = ∣ D c , x i ∣ + 1 ∣ D ∣ + N i \begin{aligned} \hat P(c)&=\frac{|D_c|+1}{|D|+N},\\ \hat P(x_i|c)&=\frac{|D_{c,x_i}|+1}{|D|+N_i} \end{aligned} P^(c)P^(xi?∣c)?=∣D∣+N∣Dc?∣+1?,=∣D∣+Ni?∣Dc,xi??∣+1??
四、半朴素贝叶斯分类器
  • “半朴素贝叶斯分类器”(semi-naive Bayes classifiers) 学习方法,对属性条件独立性假设进行一定程度的放松。基本思想是适当考虑一部分属性间的相互依赖信息。
  • “独依赖估计”(One-Dependent Estimator,简称ODE),所谓“独依赖”就是假设每个属性在类别之外最多仅依赖于一个其他属性,即
    P ( c ∣ x ) ∝ P ( c ) ∏ i = 1 d P ( x i ∣ c , p a i ) , P(c|\pmb x)\propto P(c)\prod_{i=1}^dP(x_i|c,pa_i), P(c∣xxx)∝P(c)i=1∏d?P(xi?∣c,pai?),
    其中 p a i pa_i pai?为属性 x i x_i xi?所依赖的属性,称为 x i x_i xi?的父属性
    如何确定每个属性的父属性
  • 最直接的做法是假设所有属性都依赖于同一属性,称为“超父”(super-parent),然后通过交叉验证等模型选择方法来确定超父属性,由此形成了SPODE(Super-Parent ODE)方法
    学习笔记|机器学习入门-西瓜书总结笔记第七章
    文章图片
  • TAN(Tree Augmented naive Bayes) 则是在 最大带权生成树(maximum weighted spanning tree) 算法的基础上,通过以下步骤将属性间依赖关系约简为?所示的属性结构:
    (1)计算任意两个属性之间的条件互信息(conditional mutual information)
    I ( x i , x j ∣ y ) = ∑ x i , x ; c ∈ y P ( x i , x j ∣ c ) log ? P ( x i , x j ∣ c ) P ( x i ∣ c ) P ( x j ∣ c ) I(x_i,x_j|y)=\sum_{x_i,x_; c\in y}P(x_i,x_j|c)\operatorname {log}\frac{P(x_i,x_j|c)}{P(x_i|c)P(x_j|c)} I(xi?,xj?∣y)=xi?,x; ?c∈y∑?P(xi?,xj?∣c)logP(xi?∣c)P(xj?∣c)P(xi?,xj?∣c)?
    (2)以属性为结点构建完全图,任意两个结点之间边的权重设为 I ( x i , x j ∣ y ) I(x_i,x_j|y) I(xi?,xj?∣y)
    (3)构建此完全图的最大带权生成树,挑选根变量,将边置为有向
    (4)加入类别结点y,增加从y到每个属性的有向边
    通过最大生成树算法,TAN实际上仅保留了强相关属性之间的依赖性
  • AODE(Averaged One-Dependent Estimator) 是一种基于集成学习机制、更为强大的独依赖分类器。AODE尝试将每个属性作为超父类来构建SPODE,然后将那些具有足够训练数据支撑的SPODE集成起来作为最终结果,即
    P ( c ∣ x ) ∝ ∑ i = 1 d ∣ D x i ∣ ≥ m ′ P ( c , x i ) ∏ j = 1 d P ( x j ∣ c , x i ) P(\pmb c|\pmb x)\propto \underset{|D_{x_i}|\geq m'}{\sum_{i=1}^d}P(c,x_i)\prod_{j=1}^dP(x_j|c,x_i) P(ccc∣xxx)∝∣Dxi??∣≥m′i=1∑d??P(c,xi?)j=1∏d?P(xj?∣c,xi?)
    其中 D x i D_{x_i} Dxi??是在第i个属性上取值为 x i x_i xi?的样本集合, m ′ m' m′为阈值常数。显然,AODE需估计 P ( c , x i ) P(c,x_i) P(c,xi?) P ( x j ∣ c , x i ) P(x_j|c,x_i) P(xj?∣c,xi?),有
    P ^ ( c , x i ) = ∣ D c , x i ∣ + 1 ∣ D ∣ + N i , P ^ ( x j ∣ c , x i ) = ∣ D c , x i , x j ∣ + 1 ∣ D c , x i ∣ + N j \begin{aligned} \hat P(c,x_i)&=\frac{|D_{c,x_i}|+1}{|D|+N_i},\\ \hat P(x_j|c,x_i)&=\frac{|D_{c,x_i,x_j}|+1}{|D_{c,x_i}|+N_j} \end{aligned} P^(c,xi?)P^(xj?∣c,xi?)?=∣D∣+Ni?∣Dc,xi??∣+1?,=∣Dc,xi??∣+Nj?∣Dc,xi?,xj??∣+1??
五、贝叶斯网(Bayesian network)
  • 贝叶斯网(Bayesian network) 亦称 “信念网”(belief network),它借助 有向无环图(Directed Acyclic Graph,简称DAG) 来刻画属性之间的依赖关系,并使用条件概率表(Conditional Probability Table,简称CPT)来描述属性的联合概率分布
    具体,一个贝叶斯网B由结构G和参数 Θ \Theta Θ两部分构成,即 B = ? B , Θ ? B=\langle B,\Theta\rangle B=?B,Θ?。
  • 网络结构G是一个有向无环图,其每个结点对应于一个属性,若两个属性有依赖关系,则它们由一条边连接起来
  • 参数 Θ \Theta Θ定量描述这种依赖关系
1.结构 联合概率分布
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∏d?PB?=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?,
2.学习
  • 网络结构往往未知,贝叶斯网学习的首要任务就是根据训练数据集来找出结构最“恰当”的贝叶斯网
  • “评分搜索” 是求解这一问题的常用办法,我们先定义一个 评分函数(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∑m?logPB?(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(θ)=21?logm,即每个参数用 1 2 log ? m \frac{1}{2}\operatorname {log}m 21?logm字节描述,则得到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)通过给网络结构施加约束来削减搜索空间,例如将网络结构限定为树结构等
3.推断
  • 贝叶斯网训练好之后就能用来回答“查询”(query),通过已知变量观测值来推测待查询变量的过程称为 “推断”(inference),已知变量观测值称为 “证据”(evidence)
  • 最理想的是直接根据贝叶斯网定义的联合概率分布来精确计算后验概率,但当网络结点较多、连接稠密时,难以进行精确推断,此时需通过降低精度要求,在有限的时间内求得近似解。
  • 贝叶斯网的近似推断常使用吉布斯采样(Gibbs sampling)来完成
    令 Q = { Q 1 , Q 2 , ? ? , Q n } \pmb Q=\{Q_1,Q_2,\cdots,Q_n\} Q?Q??Q={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(Q?Q??Q=q?q??q∣EEE=eee)
    学习笔记|机器学习入门-西瓜书总结笔记第七章
    文章图片
    吉布斯采样法先随机产生一个与证据 E = e \pmb E=\pmb e EEE=eee一致的样本 q 0 \pmb q^0 q?q??q0作为起始点,然后每步从当前样本出发产生下一样本。具体来说,在第t次采样中,算法先假设 q t = q t ? 1 \pmb q^t = \pmb q^{t-1} q?q??qt=q?q??qt?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(Q?Q??Q=q?q??q∣EEE=eee)?Tnq??
  • 实质上,吉布斯采样是在贝叶斯网所有变量的联合状态空间中与证据 E = e \pmb E=\pmb e EEE=eee一致的子空间中进行 “随机漫步”(random walk),每一步仅依赖于前一步的状态,这是一个 “马尔科夫链”(Markov chain)
    这里需要补充
六、EM算法
  • 未观测变量的学名是 “隐变量”(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,Θt?LL(Θ∣ZZZ,XXX)
    (2)M步(Maximization):寻找参数最大化期望似然
    Θ t + 1 = argmax ? Θ Q ( Θ ∣ Θ t ) \Theta^{t+1}=\underset{\Theta}{\operatorname{argmax}}Q(\Theta|\Theta^t) Θt+1=Θargmax?Q(Θ∣Θt)
总结 这一章还需要加强理解

    推荐阅读