1. 这几天在写BayesWipe,写到条件概率表(CPT,Conditional Probability Table)的时候,感觉对贝叶斯网络的参数学习还是有些不清楚,因此想整理一下贝叶斯信念网络(BBN,Bayesian Belief Network)的一些概念,包括一些方法的整理。

    1. 参照一份PPT:https://wenku.baidu.com/view/83ed4295b90d6c85ed3ac6a5.html
    2. 不知道算不算原创,不过都是我手打下来的
  2. 贝叶斯网络简介
    1. 概率图模型的关系(包含关系):

      1. 概率模型

        1. 图模型

          1. 有向图模型(贝叶斯网络)

            1. Alarm network
            2. State-space models
            3. Naive Bayes Classifier 朴素贝叶斯分类器
            4. PCA/ICA 降维?
            5. HMM 隐马尔可夫模型
          2. 无向图模型(Markov网络)
            1. Markov随机场
            2. Boltzmann Machine
            3. Ising model
            4. Max-ent model
            5. Log-linear models
            6. 。。只听说过MRF,可以用Markov Logic Network作为模板生成
    2. 基本思路
      1. 贝叶斯网络是为了处理人工智能领域研究中的不确定性而发展起来的。
      2. 它将概率统计应用于复杂领域进行不确定性推理和数据分析的工具。
      3. 贝叶斯网络可以系统地描述随机变量之间的关系,然后进行概率推理。
      4. 使用概率论处理不确定性可以保证推理结果的正确性。
    3. 重要原理
      1. 链式法则:P(X1,X2,...XN) = P(X1)P(X2|X1)P(X3|X1,X2)...P(XN|X1,X2,...XN)

        1. P(A,B)=P(A)*P(B|A)记住这个就行了
        2. 也简单,知道了A发生的概率,A发生的情况下B发生的概率,相乘显然是A,B同时发生的概率咯
      2. 贝叶斯定理:P(A|B)=P(A)*P(B|A)/P(B)
        1. 基于上述公式P(A,B)=P(A)*P(B|A)=P(B)*P(A|B)
      3. 利用变量间条件独立性
        1. P(X1,X2...XN)=∏P(Xi|π (Xi))
        2. 应该是P(Xi|X1,X2,X3,X4..XN)=∏P(Xi|π (Xi)),其中π (Xi)是父节点,后验概率应该只和父节点有关。
    4. 一些问题
      1. BBN是什么

        1. 贝叶斯网络是一个基于网络的用来表达和分析包含了不确定性的模型的框架
      2. BBN用来该拿什么
        1. 辅助智能决策、数据融合,特征识别...
      3. 怎么来的
        1. 交叉了人工智能、决策分析、统计等
  3. 贝叶斯网络的几个主要问题
    1. 贝叶斯网络概率推理(Probabilistic Inference)
    2. 结构学习(Structure Learning)
    3. 参数学习(Parameter Learning)
    4. 分类(Classification)
    5. 隐变量和隐式结构学习(Hidden variables and hidden structure learning)
  4. 推导:
    1. 详情见图

    2. P(Z1|X1)=P(Z1|Y1,X1)P(Y1|X1)+P(Z1|Y2,X1)P(Y2|X1)
      1. 这里X1,X2/Y1,Y2的并集都是数据点的全集,所以可以这么做
      2. P(Z2|X1)=1-P(Z1|X1)
      3. P(W1|X1)可以一样的求出来
    3. P(Y1)的话可以用P(X1,Y1)+P(X2,Y1)来求,然后通过贝叶斯公式
      1. 同理P(Z1),P(W1)也可以链式求得
    4. 最后我们得到了P(W1|X1)和P(W1)和P(X1)『P(X1) 是一个已知的量』
      1. 可以根据贝叶斯定理求出X1的后验概率了P(X1|W1)
  5. 为什么要用贝叶斯网络进行概率推理
    1. 理论上,概率推理所需要的知识一个联合概率分布,但是联合概率分布的复杂度相对于变量个数成指数增长,所以变量众多的时候不可行。
    2. 贝叶斯网络解决了这个问题
      1. 它把复杂的联合概率分布分解成一系列相对简单的模块,那样就可以降低知识获取(Knowledge Acquisition)和概率推理的复杂度,可以把概率论应用到大型问题上。
      2. 统计学、系统工程、信息论和模式识别等众多学科中的多种模型:
        1. 朴素贝叶斯模型
        2. 隐类模型
        3. 混合模型
        4. HMM
        5. ...
      3. 动态贝叶斯网络主要用于对多维离散时间序列的监控和预测。
      4. 多层隐类模型,能够揭示观测变量背后的隐结构。
  6. 概率论基础
    1. 一个核心概念是条件独立:Conditional Independence
    2. 给定变量集合X=(X1,X2,...,Xn),变量Xi的父节点结合π (Xi)。我们可以用有向图来表示变量之间依赖和独立关系
      1. 每个变量(也就是Feature)都是一个节点
      2. 对每个节点Xi,都从π (Xi)中的每个节点引一条有向边道Xi。
        1. 父节点->子节点
    3. BBN是一个DAG,节点表示随机变量,节点间的边表示变量间的直接依赖关系。
  7. BBN应用
    1. 医疗诊断、工业、编码学、生物信息学、时序数据等等
  8. 贝叶斯网络学习
    1. 结构学习:发现变量之间的图关系

      1. 选择具有最大后验概率的结构

        1. P(Mi|D)=P(D|Mi)P(Mi)/P(D)
      2. 基于评分函数(Scoring function)
        1. BIC/MDL/AIC等等
        2. BNJ和Banjo都有实现这种方法
        3. BIC:
      3. 结构学习算法
        1. K2算法:

          1. 通过为每个结点寻找父结点集合来学习贝叶斯网络结构。它不断往父结点中集中添加节点,并选择能够最大化数据和结构的联合概率『P(X1,X2,X3...X4)』的节点集合。
        2. HillClimbing
          1. 从一个无边结构开始,在每一步,它添加能够最大化BIC的边。算法在通过添加边不能再提高结构得分时停止。
        3. 缺值数据结构学习:Structural EM
          1. SEM不是每次迭代都同时优化结构模型和参数,而是先固定模型结构进行数次参数优化后,再进行一次结构加参数优化,如此交替进行(大概跟GMM差不多吧)
          2. 目的是减小计算复杂度。
      4. BN结构
        1. 建立过程

        2. 从数据中学习BN的结构
          1. 基于熵(Entropy)的算法

            1. 最早的方法
            2. 用树和多边树的形式
          2. 条件独立
            1. 定义每个结点的条件独立性(Markov边界)
            2. 从Markov边界中推理出依赖性
          3. 基于score的度量
            1. 实现得最多最广泛的方法
            2. 定义一个质量的度量,并且最大化
            3. 使用贪心搜索来决定要添加的最佳的结构
            4. 但度量不再增加的时候,停止
          4. 模拟退火法和遗传算法
            1. 相比于贪心搜索,更加高级的方法,同样用于score-based method
    2. 参数学习:发现变量之间的互相关联的量化关系
      1. 最大似然估计

        1. 完全基于数据,不需要先验概率
        2. L(θ;D)=∏P(X[m],Y[m];θ) 其中m是每一条数据
          1. 我们可以在网络结构中知道X[m],Y[m]在θ下的公式,然后再进行最大似然估计
        3. 如图:
      2. 贝叶斯估计
        1. 有了最大似然估计的函数,加上先验概率,然后最大化后验概率就可以了。
        2. 这个比较复杂
      3. 缺值数据最大似然估计(EM算法)
        1. 基于θt 对数据进行修补,使之完整『E-step』
        2. 对修补后的完整数据计算最大似然估计θt+1『M-step』
      4. 隐结构模型学习
        1. 隐变量是取值未被观察到的变量,通过数据分析:

          1. 隐变量个数
          2. 隐结构
          3. 隐变量的势
          4. 模型参数
        2. 方法:基于评分函数的爬山法
          1. BIC:

          2. 隐变量势学习爬山算法
          3. 隐结构学习双重爬山法。。。。
  9. 贝叶斯网络推理:建立了贝叶斯网络后,我们可以基于BBN推理得到变量的概率
    1. 贝叶斯网络可以利用变量间的条件独立对联合分布进行分解,降低参数个数。

      1. 推理是通过计算来回答query的过程
      2. 计算后验概率分布P(Q|E=e)
    2. 基础知识
      1. 图分割和变量独立(图分割、有向分割)

        1. 变量X和Y通过第三个变量Z相连接的三种情况

        2. 阻塞
          1. 设X为一节点集合,X和Y是不在Z中的两个节点,考虑X和Y之间的一条通路,如果满足下面的条件之一,则称被X阻塞:

            1. 有一个在Z中的顺连节点;
            2. 有一个在Z中的分连节点;
            3. 有一个汇连节点,它和它的后代均不在Z中。
        3. 如果X和Y之间的所有通路都被Z阻塞,那么我们说Z有向分割X和Y,简称d-separate,d分割
          1. 则X和Y在给定条件Z时,条件独立。
          2. =》(定理)整体Markov性设X和Y为贝叶斯网N中的两个变量,Z为N中一个不包含X和Y的节集合,如果Z d-分割X和Y,那么X和Y在给定Z时条件独立
          3. d-分割是图论的概念,而条件独立是概率论的概念,所以定理揭示了贝叶斯网络图论侧面和概率论侧面之间的关系。
      2. Markov边界与端正图
        1. Markov边界

          1. 在贝叶斯网络中,一个节点的Markov边界包括了它的父节点、子节点以及子节点的父节点

            1. 也就是爸爸儿子叔叔
        2. 端正图(Moral graph):团树传播算法-junction tree
          1. 设G是一个DAG,如果将G中每个节点的不同步节点结合,也就是在它们之间加一条边,然后去掉所有边的方向,所得到的无向图就是G的端正图。
    3. 网络推理算法 
      1. 精确推理算法

        1. 变量消元算法

          1. 利用概率分解降低推理复杂度

            1. 如果有贝叶斯网络如下:

              1. A->B->C->D
            2. 可以利用一系列规则去掉、提取出条件独立的概率
          2. 使得运算局部化,消元过程实质上就是一个边缘化的过程。
          3. 最优消元顺序:最大势搜索,最小缺边搜索
            1. ...不是很懂
        2. 团树传播算法
          1. 利用步骤共享来加快推理的算法
          2. 团树是一种无向树,其中每一个节点代表一个变量集合,成为团(Clique)。团树必须满足变量的连通性,也就是包含同一变量的所有团所导出的子图必须是连通的。
          3. http://www.cnblogs.com/ironstark/p/5151713.html
      2. 近似推理
        1. 随机抽样:

          1. 这是一类应用于数值积分和统计物理中的近似计算方法。基本思想是从某个概率分布随机抽样,生成一组样本,然后从样本出发近似计算感兴趣的量。
          2. MCMC算法-Gibbs Sampling
            1. 首先随机生成一个与Evidence E=e一致的样本s1作为起始样本,此后,每个样本呢si的产生都依赖于前一个样本si-1,且si与si-1最多只有一个非证据变量的取值不同,记改变量为X。
            2. X的取值可以从非证据变量中随机选取,也可以按照某个固定顺序轮流决定。
            3. 在si中,X的值通过随机抽样决定,抽样分布是
            4. 当样本数N趋向于无穷的时候,Markov Chain理论保证了算法返回的结果收敛于真正的后验概率,Gibbs Sampling的缺点是收敛速度很慢,因为Markov Chain要花很长时间才能真正达到平稳分布。
          3. 随机抽样算法的理论基础是大数定理。
        2. 变分法(没解释)
  10. jibenshang

贝叶斯信念网络简介以及算法整理笔记相关推荐

  1. 机器学习算法-10贝叶斯信念网络、聚类算法、基于密度的方法DBSCAN

    贝叶斯信念神经网络 bayes belief network (BNN), 朴素贝叶斯分类器需要特征之间相互独立的强条件,制约了模型的适用, 用有向无环图表达变量之间的依赖关系,变量用节点表示,依赖关 ...

  2. 贝叶斯信念网络分类算法

    目录 引言 算法 定义 训练 优点 缺点 总结 参考 引言 在之前的课程和实验中,我们已经了解并实现朴素贝叶斯分类算法.但是朴素贝叶斯分类有一个限制条件,就是特征属性之间必须相互独立.只有当这个条件成 ...

  3. 独家 | 贝叶斯信念网络初探(附链接)

    作者:Jason Brownlee 翻译:陈超 校对:欧阳锦 本文约3500字,建议阅读8分钟 本文共分为5部分,从概率模型的挑战.概率模型--贝叶斯信念网络.如何建立和使用贝叶斯网络.贝叶斯网络范例 ...

  4. 贝叶斯信念网络Bayes Belief network

    贝叶斯信念网络Bayes Belief network 文章目录 贝叶斯信念网络Bayes Belief network 1. BBN 2. 两大成分 3. 先验概率 3.1.1 计算患心脏病的概率 ...

  5. 【数据挖掘】贝叶斯信念网络 ( 马尔科夫假设 | 结构 | 有向无环图 | 参数 | 条件概率表 | 案例分析 )

    文章目录 I . 贝叶斯信念网络 II . 马尔科夫假设 III . 贝叶斯信念网络 示例 1 IV . 贝叶斯信念网络 示例 2 V . 贝叶斯信念网络 联合概率分布计算 VI . 贝叶斯信念网络 ...

  6. 【海量数据挖掘/数据分析】之 贝叶斯信念网络(贝叶斯信念网络、有向无环图、贝叶斯公式、贝叶斯信念网络计算实例)

    [海量数据挖掘/数据分析]之 贝叶斯信念网络(贝叶斯信念网络.有向无环图.贝叶斯公式.贝叶斯信念网络计算实例) 目录 [海量数据挖掘/数据分析]之 贝叶斯信念网络(贝叶斯信念网络.有向无环图.贝叶斯公 ...

  7. 贝叶斯信念网络和马尔科夫链有什么区别

    可以讲,马尔可夫链是贝叶斯网络的特例,而贝叶斯网络是马尔可夫链的推广.  马尔可夫链 (MarkovChain),它描述了一种状态序列,其每个状态值取决于前面有限个状态.这种模型,对很多实际问题来讲是 ...

  8. matlab贝叶斯编程代码,bnt 基于matlab的贝叶斯工具箱 各种程序与算法,在 网络编程中作为调用 238万源代码下载- www.pudn.com...

    文件名称: bnt下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Others 文件大小: 12067 KB 上传时间: 2014-03-12 下载次数: 1 详细说明:基于matla ...

  9. 朴素贝叶斯(Naiv Bayes)算法简介

    贝叶斯算法是由英国数学家托马斯·贝叶斯提出的,这个算法的提出是为了解决"逆向概率"的问题.首先我们先来解释下正向概率与逆向概率的含义: 正向概率:假设一个箱子里有5个黄色球和5个白 ...

  10. 贝叶斯网络结构学习之K2算法(基于FullBNT-1.0.4的MATLAB实现)

    题目:贝叶斯网络结构学习之K2算法(基于FullBNT-1.0.4的MATLAB实现) 有关贝叶斯网络结构学习的一基本概念可以参考:贝叶斯网络结构学习方法简介 有关函数输入输出参数的解释可以参考:贝叶 ...

最新文章

  1. 网络与服务器编程框架库 acl_3.0.13 发布
  2. python受欢迎的原因是什么?
  3. 精选| 2021年6月R新包推荐(第55期)
  4. yum清缓存_linux yum清除var目录下缓存的方法
  5. python classmethod 与 staticmethod
  6. 2.3.3 Zero Sum 和为零(DFS)
  7. Zabbix使用snmptrap方式监控vCenter Server
  8. STM32单片机GPIO口简介
  9. matlab z变换 差分,用matlab绘制差分方程Z变换
  10. python短文本数据集的关联性_短文本分析----基于python的TF-IDF特征词标签自动化提取...
  11. 计算机黑屏但是有鼠标,电脑黑屏但是鼠标能动解决方法
  12. 【超强干货】蘑菇街App的组件化之路
  13. JavaScript - 简介
  14. 电路原理 | 非线性电阻电路的小信号法,动态电路电感
  15. BackTrack V5的汉化
  16. c语言 建立测井数据结构体,给定C语言的数据结构 struct T { int w; union T { char c; int i; dou...
  17. 真正解决办法:WINDOWS7/WIN7提示错误:无法启动此程序,因为计算机中丢失D3DCOMPILER_47.dll。尝试重新安装该程序以解决此问题
  18. 迅为开发板-i.MX6Q开发板飞思卡尔imx6开发板专业推荐
  19. python zookeeper_python操作zookeeper
  20. identifier of an instance was altered from XXXX to XXXX解决

热门文章

  1. 管家婆财贸双全ⅡTOP 期间202012的损益类科目本币(外币或者数量)余额不为零,不能年结存。
  2. PPP和PDP激活是什么区别
  3. 散度定理(Divergence Theorem)
  4. 浙江工业大学2020考研经验分享
  5. [生存志] 第96节 南华著真经
  6. ROS 基础知识(一)
  7. 第三方支付接口搜集(附下载)
  8. PTA 7-18(查找) 新浪微博热门话题(30 分) 30分代码 (已更新)
  9. 我来告诉你,一个草根程序员如何逆袭,成功进入BAT!
  10. 医疗保险,公积金、养老、生育、工伤、失业保险