概率图模型中的贝叶斯网络

这篇具有很好参考价值的文章主要介绍了概率图模型中的贝叶斯网络。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、概率图

概率图的框架
概率图模型中的贝叶斯网络
由上图可知,PGM(概率图)主要分为3个部分:

  • 表示(Representation):是将实际的问题,简化成概率图的形式表达出来。
  • 推断(Inference):通过上面生成的概率图模型,推断出我们在已知条件下,想要询问的变量概率。
  • 学习(Learning):用真实世界数据进一步拟合我们的模型,可以通过改变模型参数或者模型结构去拟合数据。

--------------------------------------------------------------------------分割线-------------------------------------------------------------------

由于概率图模型的知识面十分的广泛,本人只研究了贝叶斯网络的图模型部分,因此,暂时只讲述贝叶斯网络部分。

二、贝叶斯网络

什么是贝叶斯网络?

  贝叶斯网络是概率图模型之一,是一个有向无环图模型。一个贝叶斯网络是由变量节点和连接节点的有向边构成。
概率图模型中的贝叶斯网络
  每个节点通过计算都有其条件概率表(CPT)(可能是先验概率也可能是后验概率),并且条件概率表只与先验概率和指向它的父节点有关。

贝叶斯网络结构怎么构建?

这块其实对应的是概率图模型中学习的部分,它分为结构学习和参数学习两部分。

结构学习
  当我们有专家经验(说白了就是自己对数据的理解)时,我们可以自己搭建出一个贝叶斯网络。
  若我们没有专家经验或者想自动搭建网络,那么我们可以通过计算机对数据的理解(代码实现)来搭建一个贝叶斯网络,因此,这里就引出了一些搭建网络的算法,常用的是评分算法(后续会更新)。
参数学习
  当网络结构已知时,也就是各个变量节点之间的依赖关系已知,这时贝叶斯网络的学习过程只需要对训练样本计数,估计每个节点的条件概率表即可参数学习就是要得到条件概率表,当数据量特别大的时候,我们就需要通过算法来实现自动学习。


小结:
到这你应该知道构建一个贝叶斯网络的思路了。
在实际搭建网络的过程中,你会遇到很多问题,因此,会有一些解决的方法。
接下里,我会讲述一些概率的基础知识,然后将一个具体的计算实例。


概率图研究的是高维随机变量,因此学习概率图之前我们需要一些概率知识的储备。

三、概率知识

  首先,我们要知道四大准则,这是我们最常用的工具。
加法法准则
我们以二维随机变量为例:
P ( x 1 ) = ∫ P ( x 1 , x 2 ) d x 2 P(x_1)=\int P(x_1,x_2){\rm d}x_2 P(x1)=P(x1,x2)dx2
乘法准则
我们以二维随机变量为例:
P ( x 1 , x 2 ) = P ( x 1 ) P ( x 2 ∣ x 1 ) = P ( x 2 ) P ( x 1 ∣ x 2 ) P(x_1,x_2)=P(x_1)P(x_2|x_1)=P(x_2)P(x_1|x_2) P(x1,x2)=P(x1)P(x2x1)=P(x2)P(x1x2)
链式准则
P ( x 1 , x 2 , ⋯   , x p ) = ∏ i = 1 p P ( x i ∣ x 1 , x 2 , ⋯   , x i − 1 ) P(x_1,x_2,\cdots,x_p)=\prod_{i=1}^p P(x_i|x_1,x_2,\cdots,x_{i-1}) P(x1,x2,,xp)=i=1pP(xix1,x2,,xi1)
贝叶斯准侧
P ( x 2 ∣ x 1 ) = P ( x 1 , x 2 ) P ( x 1 ) = P ( x 1 , x 2 ) ∫ P ( x 1 , x 2 ) d x 2 = p ( x 2 ) P ( x 1 ∣ x 2 ) ∫ p ( x 2 ) P ( x 1 ∣ x 2 ) d x 2 P(x_2|x_1)=\frac{P(x_1,x_2)}{P(x_1)}=\frac{P(x_1,x_2)}{\int P(x_1,x_2){\rm d}x_2}=\frac{p(x_2)P(x_1|x_2)}{\int p(x_2)P(x_1|x_2){\rm d}x_2} P(x2x1)=P(x1)P(x1,x2)=P(x1,x2)dx2P(x1,x2)=p(x2)P(x1x2)dx2p(x2)P(x1x2)
  其次,知道这四大准则,那么我们就需要了解他们在图模型中的应用。

概率分布

 概率分布就是每个变量(节点)发生的概率。
 比如:掷硬币,那么结果就是正/反两种情况,或者天气可能有晴天(sun)、下雨(rain)、大雾(fog)这三种情况,每一个变量的累加和一定是1。

概率图模型中的贝叶斯网络
联合概率分布

  我们通过两个变量(温度和天气)之间的关系,最终可以得到一个联合概率,我们可以通过这样一个联合概率表,求得他们之间不同概率分布下的概率大小。我们这么说点抽象,通过下面P(T,W)概率来表示联合概率。
概率图模型中的贝叶斯网络
  通过这个联合概率我们可以推断出这张表上我们想要的任何变量概率。假如我们想求P(T)和P(W)的概率,只需要将联合概率求边缘化就可以得到。
概率图模型中的贝叶斯网络
到这以后你可能会对这张表怎么来的有疑问?后面我们会讲到,如果没有就算了。

条件概率

  条件概率在前面的四大公式中有用到,这里简单说一下,就是在B发生的条件下,A发生的概率,即P(A|B)。
P ( A ∣ B ) = P ( A , B ) / P ( B ) P(A|B)=P(A,B)/P(B) P(AB)=P(A,B)/P(B)
从公式中也能看出,我们在计算条件概率的时候,还需要联合概率分布。

归一化技巧

我们在计算概率的时候,往往算的的结果的总概率和不为1,这个时候就要归一化。
其实这个很简单,看一个例子就知道了。
概率图模型中的贝叶斯网络
再举一个综合一点的例子(自己理解去吧):
概率图模型中的贝叶斯网络


小结:
到这,我们将之前所学的概率知识(可能你没学过,没关系)结合到条件概率表中,令你对其有了一定的了解。


四、贝叶斯网络知识

网络

概率图模型中的贝叶斯网络
这就是一个有向无环的贝叶斯网络,节点表示随机变量 { d , i , g , s , l } \{d,i,g,s,l\} {d,i,g,s,l}
它们可以是观察到的变量、隐变量、未知参数等。认为有因果关系的变量就可以用有向弧连接。
以这个网络为例,我们可以写出它的联合概率密度:
P ( d , i , g , s , l ) = P ( d ) P ( d ∣ i ) P ( g ∣ d , i ) P ( s ∣ d , i , g ) P ( l ∣ d , i , g , l ) P(d,i,g,s,l)=P(d)P(d|i)P(g|d,i)P(s|d,i,g)P(l|d,i,g,l) P(d,i,g,s,l)=P(d)P(di)P(gd,i)P(sd,i,g)P(ld,i,g,l)

条件独立性

x A ⊥ x B ∣ x C x_A\bot x_B|x_C xAxBxC
也就是说,在给定父节点的条件下,每个节点与其非后代节点条件独立,但后代节点在被观测到的前提下,仍可作为证据影响该节点。

因此联合概率的表达式为:
P ( x 1 , x 2 , ⋯   , x p ) = ∏ i = 1 p P ( x i ∣ P a x i ) P(x_1,x_2,\cdots,x_p)=\prod_{i=1}^p P(x_i|Pa_{x_i}) P(x1,x2,,xp)=i=1pP(xiPaxi)
所以,我们可以将上述网络的联合概率写成:
P ( d , i , g , s , l ) = P ( d ) P ( i ) P ( g ∣ d , i ) P ( s ∣ i ) P ( l ∣ g ) P(d,i,g,s,l)=P(d)P(i)P(g|d,i)P(s|i)P(l|g) P(d,i,g,s,l)=P(d)P(i)P(gd,i)P(si)P(lg)

结构

  在一定的观测条件下,变量间的取值概率是否会相互影响。所谓的观测条件是这个系统是否有观测变量,或者观测变量的取值是否确定。当变量取值未知,通常根据观测变量取值,对隐变量的取值概率进行推理,这就是概率影响的流动性,它体现在结构上。

head to tail
概率图模型中的贝叶斯网络
结论:
若b被观测,则路径被阻塞(独立),即 c ⊥ a ∣ b c\bot a|b cab
证明:
当b被观测到时:
{ P ( a , b , c ) = P ( a ) P ( b ∣ a ) P ( c ∣ a , b ) P ( a , b , c ) = P ( a ) P ( b ∣ a ) P ( c ∣ b ) \left\{ \begin{array}{c} P(a,b,c)=P(a)P(b|a)P(c|a,b)\\ P(a,b,c)=P(a)P(b|a)P(c|b)\\ \end{array} \right. {P(a,b,c)=P(a)P(ba)P(ca,b)P(a,b,c)=P(a)P(ba)P(cb)
联立上述两式
P ( c ∣ a ) = P ( c ∣ a , b ) ⇒ c ⊥ a ∣ b P(c|a)=P(c|a,b)\\ \Rightarrow c\bot a|b P(ca)=P(ca,b)cab

tail to tail
概率图模型中的贝叶斯网络
同理,可以根据“head to tail”结构的推导,得出 c ⊥ b ∣ a c\bot b|a cba
head to head
概率图模型中的贝叶斯网络
这种结构比较特殊,默认情况下,a和b是独立。
证明:
当c没有被观测到时:
{ P ( a , b , c ) = P ( a ) P ( b ∣ a ) P ( c ∣ a , b ) P ( a , b , c ) = P ( a ) P ( b ) P ( c ∣ a , b ) \left\{ \begin{array}{c} P(a,b,c)=P(a)P(b|a)P(c|a,b)\\ P(a,b,c)=P(a)P(b)P(c|a,b)\\ \end{array} \right. {P(a,b,c)=P(a)P(ba)P(ca,b)P(a,b,c)=P(a)P(b)P(ca,b)
联立上述两式
P ( b ∣ a ) = P ( b ) ⇒ a ⊥ b P(b|a)=P(b)\\ \Rightarrow a\bot b P(ba)=P(b)ab

六、概率推断

贝叶斯网络训练好之后就能用来回答一些问题,即通过一些属性变量的观测值来推测其他属性变量的取值。

这样通过已知变量观测值来推断查询变量的过程称为推断,已知变量观测值为证据。

最理想的是直接根据贝叶斯网定义的联合概率分布来精确计算后验概率,但是这样的精确推断是NP难的,当网络节点较多、连接稠密时难以精确推断,需要借助近似推断。
概率图模型中的贝叶斯网络
P(A)称为“先验概率”,即在B事件发生之前,我们对A事件概率的一个判断。
P(A|B)称为“后验概率”,即在B事件发生之后,我们对A事件概率的重新评估。
P(A|B)/P(B)称为“可能性函数”,这是一个调整因子,使得预估概率更接近真实概率。

推断又分为因果推断和证据推断。

因果推断

顺着箭头方向推断。得到贝叶斯网络之后我们就可以进行推理计算。这种因果推理是顺着箭头方向进行的推理结果的过程。

证据推断

逆着箭头推断的,即从结果逆流而上回溯原因的过程。

七、案例分析

  现在我通过接下来这个案例,将这些数学知识运用到贝叶斯网络中做精确推断,解答一些前面的坑(条件概率表的应用)。

注: 此处我从此处学习的,只不过把里面具体计算结果推导了一遍,推导结果有出入,你们自己判断。

  这是一个贝叶斯网络,里面的条件概率表是通过数据获得的(我猜的),我们用它解决一些计算问题。
概率图模型中的贝叶斯网络
其中,节点变量的定义:

  • 试题难度(D): d 0 ( 低 ) , d 1 ( 高 ) d^0(低),d^1(高) d0(),d1()
  • 智力(I): i 0 ( 低 ) , i 1 ( 高 ) i^0(低),i^1(高) i0(),i1()
  • 考试成绩(G): g 1 ( A ) , g 2 ( B ) , g 3 ( C ) g^1(A),g^2(B),g^3(C) g1(A),g2(B),g3(C)
  • 高考成绩(S): s 0 ( 低 ) , s 1 ( 高 ) s^0(低),s^1(高) s0(),s1()
  • 是否得到推荐信(L): l 0 ( 否 ) , l 1 ( 是 ) l^0(否),l^1(是) l0(),l1()

该生能获得好的推荐信的概率?
在对该生其他信息一无所知的前提下,获得好的推荐信的概率为
P ( l 1 ) = ∑ g P ( l 1 ∣ g ) P ( g ) = ∑ g P ( l 1 ∣ g ) ∑ i , d P ( g ∣ i , d ) P ( i ) P ( d ) P(l^1)=\sum_{g}{P(l^1|g)P(g)}=\sum_{g}{P(l^1|g)\sum_{i,d}{P(g|i,d)P(i)P(d)}} P(l1)=gP(l1g)P(g)=gP(l1g)i,dP(gi,d)P(i)P(d)
具体计算(不一定对,有能力的自己推导一下):

概率图模型中的贝叶斯网络

如果得知该生智商不高,那么可能成绩g不太好,从而影响其推荐信的质量
P ( l 1 ∣ i 0 ) = ∑ g P ( l 1 ∣ g ) P ( g ∣ i 0 ) = ∑ g P ( l 1 ∣ g ) ∑ d P ( g ∣ i 0 , d ) P ( d ) P(l^1|i^0)=\sum_{g}{P(l^1|g)P(g|i^0)}=\sum_{g}{P(l^1|g)\sum_{d}{P(g|i^0,d)P(d)}} P(l1i0)=gP(l1g)P(gi0)=gP(l1g)dP(gi0,d)P(d)
概率图模型中的贝叶斯网络
如果进一步得知课程比较简单,那么成绩可能得到提升,从而影响其推荐信的质量
P ( l 1 ∣ i 0 , d 0 ) = ∑ g P ( l 1 ∣ g ) P ( g ∣ i 0 , d 0 ) P(l^1|i^0,d^0)=\sum_{g}{P(l^1|g)P(g|i^0,d^0)} P(l1i0,d0)=gP(l1g)P(gi0,d0)
概率图模型中的贝叶斯网络
在对该生其他信息一无所知的前提下,其具有高智商的概率即为先验概率P(i^1)=30%,假设获知该生成绩g不太好,则可以怀疑其不具有高智商
P ( i 1 ∣ g 2 ) = P ( i 1 ) ∑ d P ( g 2 ∣ i 1 , d ) P ( d ) ∑ i , d P ( g 2 ∣ i , d ) P ( i ) P ( d ) P(i^1|g^2)= \frac {P(i^1)\sum_d{P(g^2|i^1,d)P(d)}}{\sum_{i,d}{P(g^2|i,d)P(i)P(d)}} P(i1g2)=i,dP(g2i,d)P(i)P(d)P(i1)dP(g2i1,d)P(d)
概率图模型中的贝叶斯网络

八、贝叶斯学习

贝叶斯学习分为结构学习和参数学习。

结构学习主要的方法四种:

  • 基于评分搜索的方法
  • 基于约束的方法
  • 基于评分和约束相混合的方法
  • 基于随机抽样的方法

参数学习的方法

  • 频率派的最大似然估计(MLE)
  • 贝叶斯学派的最大后验概率(MAP)

九、Netica 软件

软件介绍

这款软件能实现基本的一些功能(具体啥功能不能实现,我也不知道),是目前世界上应用最广泛的贝叶斯网络分析软件之一,总之,很牛逼,但是教程很少,谨慎选择。

软件使用

废话不多说,我们利用此软件搭建上面的贝叶斯网络。

1.启动软件后,点击左上角的"New Net"按钮,创建一个幕布。

概率图模型中的贝叶斯网络
2.点击节点按钮后,在幕布上点击,即可创建节点。

双击按钮,可在幕布上多次添加节点。
添加完节点后,你需要自己给网络布局。
概率图模型中的贝叶斯网络
概率图模型中的贝叶斯网络

3.因果关系

其实就是连线,将有因果关系的节点连在一起。

双击箭头按钮,连接节点。连接时注意,要从标题名字的位置为起点(也就是A,B,C,D,E字母的地方),不要从下面的状态连接,否则连不上。

概率图模型中的贝叶斯网络

4.双击节点,添加节点信息

  • 节点的名字(Name)
  • 节点的状态(State)

添加状态时要注意,先填写第一个状态(d0或d1)的名字,再点击"New"按钮,创建第二个状态,在填写它的名字。

最后,点击"Apply"按钮。

概率图模型中的贝叶斯网络

5.添加概率表

点击"Table"按钮,会出现左边的对话框,在蓝色框内填写概率表(每一行概率和为100%),再点击"Apply"按钮保存。
概率图模型中的贝叶斯网络
6. 网络的推断

你需要让节点和节点之间有关联,所以你需要点击菜单栏的闪电按钮。

点击之后,你会发现节点的概率发生了变化,这就是各节点的先验概率发生了变化。

概率图模型中的贝叶斯网络
概率图模型中的贝叶斯网络

到此,此节点的信息添加完毕。

我们可以用此网络去验证第七章节的推算。文章来源地址https://www.toymoban.com/news/detail-409498.html

参考

  1. https://zhuanlan.zhihu.com/p/573883337
  2. https://zhuanlan.zhihu.com/p/432917439
  3. https://zhuanlan.zhihu.com/p/364010781
  4. https://www.zhihu.com/question/21102128/answer/2716452544
  5. https://zhuanlan.zhihu.com/p/22802074
  6. https://zhuanlan.zhihu.com/p/101494234
  7. https://zhuanlan.zhihu.com/p/101722890
  8. http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_one.html
  9. https://zhuanlan.zhihu.com/p/73415944

到了这里,关于概率图模型中的贝叶斯网络的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 1-条件概率,联合概率,边缘概率三者关系以及贝叶斯公式

    过去一直没有养成记笔记的习惯,今天开始对所学的知识进行一个记录,以便日后翻阅查看。若有不对之处,欢迎各位网友指出 表示两个事件共同发生的概率。举例:A与B的联合概率表示为 P(AB) 或者P(A,B),或者P(A∩B)。 条件概率是指事件A在事件B发生的条件下发生的概率。条件

    2024年02月05日
    浏览(47)
  • 机器学习——先验概率、后验概率、全概率公式、贝叶斯公式

    1、定义 先验概率(prior probability)是指根据以往经验和分析得到的概率,如全概率公式,它往往作为\\\"由因求果\\\"问题中的\\\"因\\\"出现的概率。——百度百科 2、直观理解 这件事还没有发生,根据以往的经验和数据推断出这件事会发生的概率。 3、例子 以扔硬币为例,在扔之前就

    2023年04月08日
    浏览(51)
  • 概率论--随机事件与概率--贝叶斯公式--随机变量

    目录 随机事件与概率 概念 为什么要学习概率论 随机事件与随机事件概率 随机事件 随机事件概率 贝叶斯公式  概念 条件概率 概率乘法公式 贝叶斯公式  举个栗子 随机变量   随机变量的定义 随机变量的分类 离散型随机变量 连续型随机变量 概念 随机事件是指在一次试验

    2024年02月11日
    浏览(49)
  • 条件概率、贝叶斯公式理解

    1、 条件概率 条件概率是指事件A在事件B发生的条件下发生的概率, 记作:P(A|B)。如下图所示:整个样本空间为Ω,事件A和事件B包含在Ω中。事件A和事件B同时发生的情况,即A、B交集记作AB。事件A的概率记作:P(A)=A/Ω,事件B的概率记作P(B)=B/Ω。AB交集部分的概率记作:P(A

    2024年02月11日
    浏览(58)
  • 15、条件概率、全概率公式、贝叶斯公式、马尔科夫链

    定义:设A、B是两个事件,且,P(A) 0 则称 为事件A发生的条件下事件B的条件概率 对这个式子进行变形,即可得到概率的乘法公式: P(A) 0 时,则 P(B) 0 时,则 乍一看,这个式子不就是把除法形式写成了乘法形式嘛,不然不然,这个区别是本质的,分母不为0很关键,而且看法也

    2024年02月13日
    浏览(47)
  • 全概率公式和贝叶斯公式

    一、完备事件组 设E是随机试验,Ω是相应的样本空间,A1,A2,...,An为Ω的一个事件组, 若两两事件互斥且所有事件的并集为全集,则称A1A2...An为样本空间的一个完备事件组。 二、条件概率 设A,B是两个事件,且P(B)0,则在事件B发生的条件下,事件A发生的条件概率: P(A|B)=P(

    2024年02月12日
    浏览(40)
  • 【概率论】贝叶斯公式的作业

    两台车床加工同样的零件,第一台出现不合格品的概率是 0.03,第二台出现不合格品的概率是 0.06,加工出来的零件放在一起,并且已知第一台加工的零件比第二台加工的零件多一倍.如果取出的零件是不合格品,求它是由第二台车床加工的概率_____; (结果小数点后保留1位) 【正

    2024年02月11日
    浏览(41)
  • 什么是机器学习?监督学习的定义、概率论的基本概念以及模型选择、过拟合与欠拟合的问题。常见的监督学习算法,包括朴素贝叶斯(Naive Bayes)、决策树(Decision Tree)支持向量机随机森林

    作者:禅与计算机程序设计艺术 什么是机器学习?从定义、发展历程及目前的状态来看,机器学习由3个主要分支组成:监督学习(Supervised Learning),无监督学习(Unsupervised Learning)和强化学习(Reinforcement Learning)。这三类学习都可以使计算机系统根据输入数据自动分析和改

    2024年02月09日
    浏览(53)
  • 概率论与数理统计学习笔记(7)——全概率公式与贝叶斯公式

    下图是本文的背景内容,小B休闲时间有80%的概率玩手机游戏,有20%的概率玩电脑游戏。这两个游戏都有抽卡环节,其中手游抽到金卡的概率为5%,端游抽到金卡的概率为15%。已知小B这天抽到了金卡,那么请问他是在手机上抽到的还是在电脑上抽到的? 上述问题中,我们先考

    2024年02月09日
    浏览(43)
  • 分享本周所学——概率论:贝叶斯更新详解

            大家好,欢迎来到《分享本周所学》第六期。本人是一名人工智能初学者,因为马上要上大学了嘛,就想着提前稍微预习一下大一课程。我预习的这门课叫Mathematical Techniques for Computer Science,是一门针对计算机的数学课,所以这里面有很多内容会面向数学在计算机

    2024年01月17日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包