贝叶斯网与EM算法

一、贝叶斯网

贝叶斯网络亦称为“信念网”,他借助有向无环图来刻画属性之间的依赖关系,并使用条件概率表来描述属性的联合概率分布。

具体来说,一个贝叶斯网B由结构G和参数θθ\theta两部分构成,即B=(G,θ)B=(G,θ)B=(G,\theta)网络结构G是一个有向无环图,其每一个节点对应于一个属性,若两个属性有直接依赖关系,则它们由一条边连接起来;参数θθ\theta定量描述这种依赖关系,假设属性xixix_i在G中的父结点集为πiπiπ_i,则θθ\theta包含了每个属性的条件概率表θxi|πi=PB(xi|πi)θxi|πi=PB(xi|πi)\theta_{x_i|π_i}=P_B(x_i|π_i)

下面是一个例子:

注,图中每个属性对应的表格就是每个属性的条件概率表θθ\theta

1.1 结构

贝叶斯网有效地表达了属性间的条件独立性,给定父节点集,贝叶斯网假设每个属性与它的非后裔属性独立,于是

B=(G,θ)B=(G,θ)B=(G,\theta)将属性x1,x2,x3,⋯,xdx1,x2,x3,⋯,xdx_1,x_2,x_3,\cdots,x_d的联合概率分布定义为

PB(x1,x2,x3,⋯,xd)=∏i=1dPB(xi|πi)=∏i=1dθxi|πiPB(x1,x2,x3,⋯,xd)=∏i=1dPB(xi|πi)=∏i=1dθxi|πi

P_B(x_1,x_2,x_3,\cdots,x_d)=\prod_{i=1}^dP_B(x_i|π_i)=\prod_{i=1}^d\theta_{x_i|π_i}

如:

P(x1,x2,x3,x4,x5,x6,x7)=P(x1)P(x2)P(x3)P(x4∣x1,x2,x3)P(x5∣x1,x3)P(x6∣x4)P(x7∣x4,x5)P(x1,x2,x3,x4,x5,x6,x7)=P(x1)P(x2)P(x3)P(x4∣x1,x2,x3)P(x5∣x1,x3)P(x6∣x4)P(x7∣x4,x5)P(x1,x2,x3,x4,x5,x6,x7)=P(x1)P(x2)P(x3)P(x4∣x1,x2,x3)P(x5∣x1,x3)P(x6∣x4)P(x7∣x4,x5)P(x1,x2,x3,x4,x5,x6,x7)=P(x1)P(x2)P(x3)P(x4∣x1,x2,x3)P(x5∣x1,x3)P(x6∣x4)P(x7∣x4,x5)P(x1,x2,x3,x4,x5,x6,x7)=P(x1)P(x2)P(x3)P(x4∣x1,x2,x3)P(x5∣x1,x3)P(x6∣x4)P(x7∣x4,x5)P(x1,x2,x3,x4,x5,x6,x7)=P(x1)P(x2)P(x3)P(x4∣x1,x2,x3)P(x5∣x1,x3)P(x6∣x4)P(x7∣x4,x5)

下面介绍贝叶斯网络的三种基本结构:

1.2 学习

若网络结构已知,则属性间的依赖关系已知,则贝叶斯网络的学习过程相对简单,只需对训练样本计数,估计出每个结点的条件概率表即可,但在现实应用中我们往往并不知晓网络结构,于是,贝叶斯学习的首要任务就是根据训练数据集来找出结构最恰当的贝叶斯网。

评分搜索就是求解这一类问题的常用办法,具体来说,我们先定义一个评分函数,以此估计贝叶斯网与训练数据的契合程度,然后基于这个评分函数来寻找结构最优的贝叶斯网。

常用的评分函数基于信息论准则,学习的目标是找到一个能以最短编码长度描述训练数据的模型,该编码的长度包括了描述模型自身所需的字节长度和使用该模型描述数据所需的字节长度。对于贝叶斯网学习而言,模型就是一个贝叶斯网,同时,每个贝叶斯网描述了一个在训练数据上的概率分布,自有一套编码机制能使那些经常出现的样本有更短的编码。于是,我们应该选择那个综合编码长度最短的贝叶斯网,这就是“最小描述长度准则”。

该方法的数学描述:

给定训练集D={x1,x2,⋯,xm}D={x1,x2,⋯,xm}D=\{x_1,x_2,\cdots,x_m\},贝叶斯网B=(G,θ)B=(G,θ)B=(G,\theta)在D上的评分函数可写成

s(B|D)=f(θ)|B|−LL(B|D)s(B|D)=f(θ)|B|−LL(B|D)

s(B|D)=f(\theta)|B|-LL(B|D)

其中,|B|是贝叶斯网的参数个数;f(θ)f(θ)f(\theta)表示描述每个参数θθ\theta所需的字节数,而:

LL(B|D)=∑i=1mlogPB(xi)LL(B|D)=∑i=1mlogPB(xi)

LL(B|D)=\sum_{i=1}^mlogP_B(x_i)

它是贝叶斯网B的对数似然,他计算B所对应的概率分布PBPBP_B对D的描述得有多好,于是,学习任务就转化为一个优化任务,寻找一个贝叶斯网B使得评分函数s(B|D)最小。

二、EM算法

EM(Expectation-Maximization)算法是一种常用的估计参数隐变量的利器,也称为“期望最大算法”,是数据挖掘的十大经典算法之一。EM算法主要应用于训练集样本不完整即存在隐变量时的情形(例如某个属性值未知),通过其独特的“两步走”策略能较好地估计出隐变量的值。

2.1 EM算法思想

EM是一种迭代式的方法,它的基本思想就是:若样本服从的分布参数θ已知,则可以根据已观测到的训练样本推断出隐变量Z的期望值(E步),若Z的值已知则运用最大似然法估计出新的θ值(M步)。重复这个过程直到Z和θ值不再发生变化。

简单来讲:假设我们想估计A和B这两个参数,在开始状态下二者都是未知的,但如果知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。可以考虑首先赋予A某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。

现在再来回想聚类的代表算法K-Means:【首先随机选择类中心=>将样本点划分到类簇中=>重新计算类中心=>不断迭代直至收敛】,不难发现这个过程和EM迭代的方法极其相似,事实上,若将样本的类别看做为“隐变量”(latent variable)Z,类中心看作样本的分布参数θ,K-Means就是通过EM算法来进行迭代的,与我们这里不同的是,K-Means的目标是最小化样本点到其对应类中心的距离和,上述为极大化似然函数。

2.2 EM算法数学推导

当样本属性值都已知时,我们很容易通过极大化对数似然,接着对每个参数求偏导计算出参数的值。但当存在隐变量时,就无法直接求解,此时我们通常最大化已观察数据的对数“边际似然”(marginal likelihood),其中X表示已知的属性值,Z表示隐变量,θθ\theta表示参数。

这时候,通过边缘似然将隐变量Z引入进来,对于参数估计,现在与最大似然不同的只是似然函数式中多了一个未知的变量Z,也就是说我们的目标是找到适合的参数θ和Z让L(θ)最大,这样我们也可以分别对未知的参数θ和Z求偏导,再令其等于0。

然而观察上式可以发现,和的对数(ln(x1+x2+x3))求导十分复杂,那能否通过变换上式得到一种求导简单的新表达式呢?这时候 Jensen不等式就派上用场了,先回顾一下高等数学凸函数的内容:

Jensen’s inequality:过一个凸函数上任意两点所作割线一定在这两点间的函数图象的上方。理解起来也十分简单,对于凸函数f(x)”>0,即曲线的变化率是越来越大单调递增的,所以函数越到后面增长越厉害,这样在一个区间下,函数的均值就会大一些了。

因为ln(*)函数为凹函数,故可以将上式“和的对数”变为“对数的和”,这样就很容易求导了。

接着求解Qi和θ:首先固定θ(初始值),通过求解Qi使得J(θ,Q)在θ处与L(θ)相等,即求出L(θ)的下界;然后再固定Qi,调整θ,最大化下界J(θ,Q)。不断重复两个步骤直到稳定。通过jensen不等式的性质,Qi的计算公式实际上就是后验概率:


通过数学公式的推导,简单来理解这一过程:固定θ计算Q的过程就是在建立L(θ)的下界,即通过jenson不等式得到的下界(E步);固定Q计算θ则是使得下界极大化(M步),从而不断推高边缘似然L(θ)。从而循序渐进地计算出L(θ)取得极大值时隐变量Z的估计值。

EM算法也可以看作一种“坐标下降法”,首先固定一个值,对另外一个值求极值,不断重复直到收敛。这时候也许大家就有疑问,问什么不直接这两个家伙求偏导用梯度下降呢?这时候就是坐标下降的优势,有些特殊的函数,例如曲线函数z=y2+x2+x2y+xy+…z=y2+x2+x2y+xy+…z=y^2+x^2+x^2y+xy+…,无法直接求导,这时如果先固定其中的一个变量,再对另一个变量求极值,则变得可行。

8.3 EM算法流程

看完数学推导,算法的流程也就十分简单了,这里有两个版本,版本一来自西瓜书,周天使的介绍十分简洁;版本二来自于大牛的博客。结合着数学推导,自认为版本二更具有逻辑性,两者唯一的区别就在于版本二多出了红框的部分

版本一:

版本二:

贝叶斯网络与EM算法相关推荐

  1. 贝叶斯网络、EM算法推导

    文章目录 一.贝叶斯网络 1.1 网络推导 1.2 例题解析 二.EM算法 一.贝叶斯网络 贝叶斯网亦称"信念网",它借助有向无环图(Directed Acyclic Graph, ...

  2. 机器学习基础(六):贝叶斯分类(贝叶斯决策论、朴素/半朴素贝叶斯分类器、贝叶斯网、EM算法)

    6.贝叶斯分类 6.1贝叶斯决策论Bayesian decision theory 概率框架下实施决策的基本方法. 对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和 ...

  3. 分类算法之贝叶斯网络(Bayesian networks)

    2.1.摘要 在上一篇文章中我们讨论了朴素贝叶斯分类.朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立).当这个条件成立时,朴素贝叶斯分类法 ...

  4. 算法杂货铺——分类算法之贝叶斯网络(Bayesian networks)

    算法杂货铺--分类算法之贝叶斯网络(Bayesian networks) 2010-09-18 22:50 by T2噬菌体, 66011 阅读, 25 评论, 收藏, 编辑 2.1.摘要 在上一篇文 ...

  5. 关于贝叶斯网络算法(Bayesian networks)

    一.简介 朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立).当这个条件成立时,朴素贝叶斯分类法的准确率是最高的,但不幸的是,现实中各个特征 ...

  6. 机器学习算法----贝叶斯网络

    本文转自:http://www.cnblogs.com/leoo2sk/archive/2010/09/18/bayes-network.html 原文作者:张洋 说实话贝叶斯网络还没有完全搞懂,在这 ...

  7. 分类算法之贝叶斯网络--转自 T2噬菌体

    2.1.摘要 在上一篇文章中我们讨论了朴素贝叶斯分类.朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立).当这个条件成立时,朴素贝叶斯分类法 ...

  8. 贝叶斯网络推理算法简单罗列

    题目:贝叶斯网络推理算法简单罗列 上一篇<贝叶斯网络与最大可能解释(MPE)问题>理清了最大可能解释(Most Probable Explanation, MPE)的概念,接下来准备在MA ...

  9. 朴素贝叶斯、贝叶斯网络分类器

    目录 贝叶斯定理                                                   贝叶斯分类 朴素贝叶斯分类器                           ...

  10. 机器学习之贝叶斯网络(概率流动的影响性、有效迹(active--trail)、网络的构建)

      前面学习了朴素贝叶斯的原理,并且利用朴素贝叶斯原理对西瓜数据集3.0数据集进行了分类:朴素贝叶斯(Naive Bayes)原理+编程实现拉普拉斯修正的朴素贝叶斯分类器,今天我们更进一步,来探讨一下 ...

最新文章

  1. Javascript 常用技巧55例
  2. fix--向零方向取整
  3. PHP中使用ActiveMQ实现消息队列
  4. 全球及中国造纸行业十四五产量调研与运营能力状况分析报告2022版
  5. 【译】Consortium Chain Development
  6. c语言在文本每一行末尾追加字符串,c语言在末尾添加 C语言 在链表尾部添加节点...
  7. 20--两个数组的交集
  8. linux 火锅平台,“定制版火锅”来袭,持续创新才能永葆活力
  9. C/S和B/S模式的主要特点以及区别在那里?画出CGI工作原理图,具体描述CGI的主要流程和实现步骤。
  10. 软键盘遮挡住popupWindow问题
  11. ios客户端快速滚动和回弹效果的实现
  12. ER Studio 使用笔记
  13. 手机qq怎么添加相册表情包_手机qq怎么制作表情包配文字
  14. 计算机数值怎么看大小,笔记本电脑尺寸怎么看_笔记本电脑尺寸查询
  15. wifi(华硕天选2)找不到怎么办
  16. teamviewer14 去商用途提示
  17. [机器学习] 树模型(xgboost,lightgbm)特征重要性原理总结
  18. javascript错误:对象不支持此属性或方法
  19. 1^2+2^2+…+n^2求和公式推导
  20. Celery启动定时任务遇到报错

热门文章

  1. Java多线程系列--【JUC集合04】- ConcurrentHashMap
  2. 中国移动宽带密码重置方法
  3. php 获取xlsx,PHP Excel Reader读取xlsx文件
  4. 浅谈LBP原理和代码(基于Python)
  5. 2022最推荐的四款免费bi工具
  6. 外贸软件出口管理亮点有哪些,出口贸易过程全解析
  7. mysql binlog 查看pos点_查看MySQL日志数据binlog文件
  8. 共享计算机桌面需要密码,win10局域网共享文件需要输密码怎么办?_win10访问共享文件需要密码的解决办法-爱纯净...
  9. 计算机不同用户共享文件,如何为不同账户设置共享文件的不同访问权限
  10. apktool使用注意事项