之前忘记强调重要的差异:链式法则的条件概率和贝叶斯网络的链式法则之间的差异

条件概率链式法则

P\left({D,I,G,S,L} \right) = P\left( D \right)P\left( {I\left| D \right.}\right)P\left( {G\left| {D,I} \right.} \right)P\left( {S\left| {D,I,G} \right.}\right)P\left( {L\left| {D,I,G,S} \right.} \right)" alt="">

贝叶斯网络链式法则,如图1

图1

乍一看非常easy认为贝叶斯网络链式法则不就是大家曾经学的链式法则么,事实上不然,后面详述。

上一讲谈到了概率分布的因式分解

能够看到条件概率的独立性能够直接从概率分布表达式看出来。

我们已经用概率图模型把概率关系用图形化G表示了,独立性能从图上直接看出来吗?

当然。上一讲已经详解过了概率图中概率的流动关系.

当G已知时,S和D之间的概率才干相互影响。

以下定义一个依赖隔离的概念。

依赖隔离(D-separation)

在Z已知的情况下,X与Y之间没有通路。

则称之为X与Y依赖隔离。记作

介绍个定理:“图不通就独立定理”(当然是为了好理解)

这个定理是说。若概率图满足依赖隔离

则有X与Y条件独立

来证明一下,如今用的是贝叶斯网络链式法则。如图2

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWNoZW5nX3NqdHU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

图2

利用的还是之前那个把求和拆分的Trick。这里要注意一開始求和的脚标是G、I、L

如今分给了3部分L和G部分求和后当然就等于了1,可是I部分则不然,被求和的部分是S,而求和脚标是I,这样就没法继续合并了。

只是我们回忆之前的独立等价条件最后一条是说:

P\left({X,Y,Z} \right) \propto {\phi _1}\left( {X,Z} \right)\phi \left( {Y,Z} \right)" alt="">

这样就搞定了。发现D与S还是独立的。这样就证明了“图不通就独立定理”。

那么不禁要问,图什么情况下不通呢?

先说结论:在已知父节点时,该节点与后代节点以外的节点不通。

姑且叫做“不通原则”

说的好啰嗦,直接看图,如图3

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWNoZW5nX3NqdHU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

图3

我们以Letter节点作为样例。他的父节点时Grade,他的子孙是Job和Happy,所以他和剩下来的SAT、Intelligence、Difficulty、Coherence不通了。

粗略分析下,这个环上面走不通是由于Grade已知了;以下走不通是由于Job不知道。分析原理上一讲已经详述了。

定义一个Imap

既然图不通就独立,假设这个不通的图G相应的概率分布是P,我们就称G是P的I-map(independencymap)。

假设独立的概率分布P能够依照某个图G分解。那么G就是P的Imap。

反过来,假设G是概率分布P的Imap,那么P能够依照G来进行分解。

因此概率图的就有了2种等价的观点

1.概率图G是用来表示概率分布P的。

2.P是用来表达概率图G所展示的独立关系的。

证明一下概率图和概率分布为啥是一回事

先写出图1中的条件,如图4所看到的,用条件概率的链式法则写出P,由G中连接关系能够化简成为贝叶斯网络的链式法则。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWNoZW5nX3NqdHU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

图4

尤其注意为什么有

P\left( {L\left| {D,I,G,S}\right.} \right) = P\left( {L\left| G \right.} \right)" alt="">

这里要用到之前说明的“不通原则”。L在已知D、G、I、S的前提下,他的非后代节点(他也没有后代节点)是D、I、S,所以直接去掉。

这就说明了概率独立关系与概率图的连接关系事实上是一回事。

以下介绍朴素贝叶斯模型

这个朴素贝叶斯叫做(Naïve Bayes)又叫(IdiotBayes…)

主要的朴素贝叶斯模型如图5。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWNoZW5nX3NqdHU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

图5

全部的X都是条件独立的,即

\left( {{X_i} \bot {X_j}\left| C\right.} \right),\forall X" alt="">

由贝叶斯网络的链式法则easy得到

有2类经常使用的朴素贝叶斯模型

举个样例说明两种贝叶斯模型各自是怎么起作用的。如今有一篇文档,由非常多单词组成。如今有2个类别可供选择各自是“有关財务”和“有关宠物”。如今要把这篇文章归档。

其一:伯努利朴素贝叶斯(Bernoulli Naive Bayes)

伯努利朴素贝叶斯如图6。

图6

这样的方式实质上是“查字典”。它把cat、dog、buy这些当做字典里的词目。

之所以伯努利是由于。这样的方式仅仅管分析文章里面有没有出现词典里的词目,而无论出现了多少次。词典的条目都是仅仅有0-1的二项分布随机变量。

文档属于这两类的概率分别为

每个小乘积项代表了“假设这是一篇財务文档,能出现cat字眼的概率是0.001”这种意义。

为啥这个朴素了,由于它如果了每一个词的条目出现是相互不影响的。

其二:多项式朴素贝叶斯(Multinomial Naïve Bayes)

这样的方式与伯努利有本质不同,如图7

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWNoZW5nX3NqdHU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

图7

W这些单元再也不是词典的条目了,而是待分类文章中的真实单词。

假如这篇文章写了1991个词,那么就有1991个W

文档属于这两类的概率依旧分别为

\frac{{P\left( {C = {c^1}\left|{{x_1}, \ldots ,{x_n}} \right.} \right)}}{{P\left( {C = {c^2}\left| {{x_1},\ldots ,{x_n}} \right.} \right)}} = \frac{{P\left( {C = {c^1}}\right)}}{{P\left( {C = {c^2}} \right)}}\prod\limits_{i = 1}^n {\frac{{P\left({{x_i}\left| {C = {c^1}} \right.} \right)}}{{P\left( {{x_i}\left| {C = {c^2}}\right.} \right)}}}" alt="">

每个小乘积项代表了“假设这是一篇財务文档。在文章里随意一个位置出现cat的概率是0.001”这种意思。你看表还是那张表。可是如今全然不一样了。由于如今要求cat+dog+buy+sell这些概率加起来要等于1。而伯努利没这个限制,随意等于多少。这个差别非常重要。

为什么这个贝叶斯也是朴素的呢?由于它假定了在文章全部位置出现cat的概率是满足相同的分布的,实际明显不可能好不好。

就像“敬爱的”必定一般都会出如今开头。谁会在文章写到一半来句这个。。。

总之朴素贝叶斯确实朴素,它仅仅能用于随机变量相关性较弱的情况,但非常多情况实际确实挺弱的。。。所以朴素贝叶斯的效果Surprisingly effective

朴素贝叶斯被广泛使用于各种领域。这里就不展开了。长处还蛮多的。

欢迎參与讨论并关注本博客微博以及知乎个人主页兴许内容继续更新哦~

转载请您尊重作者的劳动。完整保留上述文字以及文章链接,感谢您的支持!

版权声明:本文博主原创文章,博客,未经同意不得转载。

概率图形模型(PGM)学习笔记(四)-贝叶斯网络-伯努利贝叶斯-贝叶斯多项式的更多相关文章

  1. 概率图模型(PGM)学习笔记(四)-贝叶斯网络-伯努利贝叶斯-多项式贝叶斯

    之前忘记强调了一个重要差别:条件概率链式法则和贝叶斯网络链式法则的差别 条件概率链式法则 贝叶斯网络链式法则,如图1 图1 乍一看非常easy认为贝叶斯网络链式法则不就是大家曾经学的链式法则么,事实上 ...

  2. 官网实例详解-目录和实例简介-keras学习笔记四

    官网实例详解-目录和实例简介-keras学习笔记四 2018-06-11 10:36:18 wyx100 阅读数 4193更多 分类专栏: 人工智能 python 深度学习 keras   版权声明: ...

  3. ensorflow学习笔记四:mnist实例--用简单的神经网络来训练和测试

    http://www.cnblogs.com/denny402/p/5852983.html ensorflow学习笔记四:mnist实例--用简单的神经网络来训练和测试   刚开始学习tf时,我们从 ...

  4. Java IO学习笔记四:Socket基础

    作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...

  5. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  6. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  7. java之jvm学习笔记四(安全管理器)

    java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...

  8. Learning ROS for Robotics Programming Second Edition学习笔记(四) indigo devices

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  9. Typescript 学习笔记四:回忆ES5 中的类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

随机推荐

  1. ASF (0) - ASF Java 项目总览

    Apache .NET Ant Library This is a library of Ant tasks that help developing .NET software. It includ ...

  2. gopkg:一种方便的go pakcage管理方式

    在使用go的过程中,我们有时候会引入一些第三方库来使用,而通常的方式就是使用go get,可是这样的方式有一个非常严重的问题,假设第三方库更新了相关接口,非常有可能你就无法使用了,所以我们一套非常好地 ...

  3. Eclipse4.4.2手动安装Veloeclipse-2.0.8

    引言:     新安装了Eclipse最新版本 4.4.2 Luna(月神),由于项目中使用到了模板引擎Velocity,所以想安装一个Velocity插件, 在网上找了一下,看到Google的vel ...

  4. 工作经常使用的SQL整理,实战篇(一)

    原文:工作经常使用的SQL整理,实战篇(一) 工作经常使用的SQL整理,实战篇,地址一览: 工作经常使用的SQL整理,实战篇(一) 工作经常使用的SQL整理,实战篇(二) 工作经常使用的SQL整理,实 ...

  5. (摘录)SQL Server 存储过程

    文章摘录:http://www.cnblogs.com/hoojo/archive/2011/07/19/2110862.html SQL Server 存储过程 Transact-SQL中的存储过程 ...

  6. vmware 10 注冊码

    先安装VMware Workstation 10.0原版,然后用以下的随意一个VMware Workstation序列号注冊 1Y0LW-4WJ9N-LZ5G9-Z81QP-92PN7 JU052-F ...

  7. Cocos2dx 3.0开发环境的搭建--Eclipse建立在Android工程

    一.前言: 这部分描述了Cocos2d-x 3.0的一些基础内容,以及在Eclipse上上编译我们的Cocos2d-x项目,成功把Helloworld执行起来了.看完本篇博客之后.你就会知道Cocos ...

  8. SendMail如何签名

    MailAddress类有两个参数 第1个参数:发送者的邮箱 第2个参数:发送者的签名 示例: MailMessage message = new MailMessage();message.From ...

  9. Pagination jquery ajax 分页参考资料

    http://www.zhangxinxu.com/wordpress/2010/01/jquery-pagination-ajax%E5%88%86%E9%A1%B5%E6%8F%92%E4%BB% ...

  10. OpenJDK 阅读源代码 Java 实现字节流输入类

    Java 的输入输出总是给人一种非常混乱的感觉.要想把这个问题搞清楚.必须对各种与输入输出相关的类之间的关系有所了解. 仅仅有你了解了他们之间的关系.知道设计这个类的目的是什么.才干更从容的使用他们. ...