文章目录

  • Abstract
  • Introduction
  • The Bayesian Approach to Probability and Statistics
  • Bayesian Networks
  • Inference in a Bayesian Network
  • Learning Probabilities in a Bayesian Network

作者:David Heckerman (此版本为2020年1月修订版)

Abstract

贝叶斯网络是一个编码了随机变量之间的概率关系的一种图模型。当与统计技术结合使用时,贝叶斯网络用于数据分析有几个优点:

  1. 因为贝叶斯网络编码了所有变量之间的依赖关系,所以它很容易处理丢失某些数据条目的情况。
  2. 贝叶斯网络可以用来学习因果关系,因此可以被用来了解一个领域,并预测干预的结果。
  3. 由于模型具有因果和概率语义,它是结合先验知识(通常以因果形式出现)和数据的理想表示。
  4. 贝叶斯统计方法与贝叶斯网络相结合,为避免数据的过拟合提供了一种有效而有原则的方法。

在这篇文章中,我们讨论了从先验知识构造贝叶斯网络的方法,并且总结了用数据来提高这些模型的贝叶斯统计方法。关于后一项任务,我们描述了学习贝叶斯网络的参数和结构的方法,包括在不完全数据下的学习。

此外,我们将贝叶斯网络学习方法与有监督和无监督学习技术相联系。我们用一个真实案例来说明贝叶斯网络建模方法。

Introduction

有很多用于数据分析的representation,包括rule bases, decision trees, and artificial neural networks。同时也有很多用于数据分析的技术,例如density estimation, classification, regression, and clustering。那么贝叶斯网络和贝叶斯方法能提供什么呢? 下面介绍四个方面。

  1. 贝叶斯网络可以很容易地处理不完整的数据集。

The Bayesian Approach to Probability and Statistics

简单的说,事件x的贝叶斯概率是一个人对该事件的相信程度。
经典概率是世界的一种物理属性(例如,硬币正面落在地上的概率),而贝叶斯概率是分配概率的人的属性(例如,你相信硬币会正面朝上的程度)。
为了保持概率的这两个概念不同,我们将一个事件的经典概率称为该事件的真实或物理概率,用贝叶斯或个人概率来表示对某一事件的相信程度。或者,当含义明确时,我们将贝叶斯概率简单地称为概率。

物理概率和个人概率的一个重要区别是,要测量后者,我们不需要重复试验。对贝叶斯概率定义的一个常见批评是,概率似乎是任意的。

下面是关于贝叶斯概率的一些具体的问题:

  1. Why should degrees of belief satisfy the rules of probability?
  2. On what scale should probabilities be measured? In particular, it makes sense to assign a probability of one (zero) to an event that will (not) occur, but what probabilities do we assign to beliefs that are not at the extremes?
    这个问题的答案来源于一个简单的观察:人们发现说两件事的概率相等是相当容易的。例如:想象一个简化的幸运轮只有两个区域(有阴影的和没有阴影的),如图1所示。假设关于轮子的一切都是对称的(除了阴影),你应该得出轮子在任何一个位置停止的可能性是相等的。从这个判断和概率的总和规则 (互排式和集中穷举的概率之和为1),那么你的车轮在阴影区域停止的概率就是被阴影覆盖的车轮的面积百分比(在本例中为0.3)。
    这个概率轮现在提供了度量其他事件的概率的参考。 举个例子,你认为阿尔·戈尔在2000年作为民主党候选人参选的可能性有多大? 首先,问题自己这些问题:是戈尔将会赢,还是轮子在旋转时会停止在阴影区域? 如果你认为戈尔更有可能赢,那么想象另一个轮子的阴影区域更大。如果你认为轮子更有可能停在阴影区域,那么想象另一个轮子的阴影区域更小。现在,重复这个过程,直到你认为戈尔赢和车轮停止在阴影区域是等可能的。在这一点上,您的戈尔将赢的概率就是车轮上阴影部分面积的百分比。
    一般来说,衡量信念程度的过程通常被称为probability assessment。我们刚才讨论的评估技术是在Management Science, Operations Research, and Psychology 这些文献中讨论的很多技术之一。
    probability assessment需要解决的问题之一是precision。 一个人真的可以说他或她对事件x的概率是0:601而不是0:599吗? 在大多数情况下,不是。然而,在大多数情况下,概率是用来决策的,这些决策对概率的微小变化并不敏感。行之有效的 sensitivity analysis 可以帮助了解什么时候多余的精度是不必要的(例如,Howard and Matheson, 1983)。
    probability assessment的另一个问题是accuracy。 例如,最近的经历或者一个问题被描述的方式可能会导致评估并不能反映一个人的真实信念(Tversky and Kahneman, 1974)。提高accuracy的方法可以在决策分析文献中找到(e.g, Spetzler et al. (1975))。

现在让我们转向数据学习的问题。 为了说明贝叶斯方法,考虑一个常见的大头钉,它的头是圆的,扁平的,在大多数超市都能找到。如果我们把图钉扔到空中,它会落在它的尖(头)或它的头上。假设我们翻转图钉N+1N+1N+1次,同时保证图钉的物理性质和翻转的条件随时间保持稳定。从之前NNN次观察中,我们想要确定第N+1N+1N+1次抛掷得到正面的概率。
用经典概率的观点来分析这个问题,我们断言有一个未知的物理概率。我们使用标准(如低偏差和低方差)从N个观察中估计这个物理概率。然后我们用这个估计数作为N+1N+1N+1次抛掷头像朝上的概率。在贝叶斯方法中,我们也断言有一些正面出现的物理概率,但是我们用贝叶斯概率编码这个物理概率的不确定性,并使用概率规则来计算N + 1次抛掷中正面出现的概率.
为了检验这个问题的贝叶斯分析,我们需要一些符号。我们用大写字母表示变量(例如,X,Y,Xi,ΘX, Y, X_i, \ThetaX,Y,Xi​,Θ), 用相应的小写字母来表示对应变量的状态或值。我们用黑体大写字母表示一组变量(例如,X,Y,Xi\mathbf{X}, \mathbf{Y}, \mathbf{X}_iX,Y,Xi​). 我们使用相应的黑体字小写字母表示对给定集合中每个变量的状态或值的赋值。我们使用p(X=x∣ξ)p(X=x|\xi)p(X=x∣ξ)(或者p(x∣ξ)p(x|\xi)p(x∣ξ))来表达the probability that X=xX=xX=x of a person with state of information ξ\xiξ。也用p(x∣ξ)p(x|\xi)p(x∣ξ)来表示XXX的概率分布(既可以示密度函数也可以是质量函数。)p(x∣ξ)p(x|\xi)p(x∣ξ)和含义能从上下文清晰获得。

回到图钉问题,我们定义Θ\ThetaΘ为一个变量,其值θ\thetaθ对应可能的真实的物理概率的值。有时我们用θ\thetaθ表示参数。我们用概率密度分布p(θ∣ξ)p(\theta|\xi)p(θ∣ξ)来表示Θ\ThetaΘ的不确定性。另外,我们用XlX_lXl​表示第lll次投掷的结果的变量,l=1,...,N+1l = 1, ..., N+1l=1,...,N+1。用D={X1=x1,...,XN=xN}D = \left \{ X_1 = x_1, ..., X_N = x_N \right \}D={X1​=x1​,...,XN​=xN​} 来表示observation的集合。因此,在贝叶斯方法中,这个图钉问题就从计算p(θ∣ξ)p(\theta|\xi)p(θ∣ξ)变成p(xN+1∣D,ξ)p(x_{N+1}|D, \xi)p(xN+1​∣D,ξ)。下面具体讲一下计算过程:

给定数据集合DDD和知识ξ\xiξ,我们首先可以应用贝叶斯法则得到Θ\ThetaΘ的概率分布:

下面我们展开p(D∣θ,ξ)p(D|\theta, \xi)p(D∣θ,ξ), 贝叶斯和古典统计学都同意这一项:它是二项式抽样的似然函数。尤其是,给定Θ\ThetaΘ的值,DDD中的值都是相互独立的,在任何一个观测中出现正面(反面)的概率为θ(1−θ)\theta(1-\theta)θ(1−θ).所以,等式(1)就变为了

其中,h和t分别是D中观察到的正面和反面的次数。概率分布p(θ|ξ)和p(θ|D,ξ)分别通常被称为Θ\ThetaΘ的先验和后验分布。量h和t被认为是二项抽样的充分统计量,因为它们提供了数据的概要,足以从先验计算后验。最后,我们平均Θ\ThetaΘ所有的可能值来确定第N + 1次抛图钉出现正面的概率:

为了完成这个例子的贝叶斯故事,我们需要给Θ\ThetaΘ先验分布。为了方便起见,通常采用的一种常见方法是假设该分布为beta分布:

Bayesian Networks

到目前为止,我们只考虑了一个或几个变量的简单问题。然而,在实际的学习问题中,我们通常感兴趣的是寻找大量变量之间的关系。贝叶斯网络就是适合这个任务的一种表示。这是一个图形模型,有效编码一组大的变量的联合概率分布(物理或贝叶斯)。在这一节中,我们定义了贝叶斯网络,并展示了如何从先验知识构建一个贝叶斯网络

一个为一个变量集合的X={X1,...,Xn}\mathbf{X} = \left \{ X_1, ..., X_n \right \}X={X1​,...,Xn​} 包含
(1)一个网络结构encodes a set of conditional independence assertions about variables in X\mathbf{X}X
(2) a set P of local probability distributions associated with each variable.

这两个组成部分一起定义了X\mathbf{X}X的联合概率分布。网络结构S是一个有向无环图。S中的节点和X\mathbf{X}X中的变量是一一对应的。我们使用XiX_iXi​来表示变量及其对应的节点,用Pai\mathbf{Pa}_iPai​来表示节点XiX_iXi​的父节点以及父节点对应的变量。在SSS中缺少的可能的弧编码了条件独立性。特别是,给定网络结构SSS,X\mathbf{X}X中的联合概率分布为:

局部概率分布P是方程16的乘积中各项对应的分布。因此,(S,P)(S, P)(S,P) 编码联合分布p(x)。

由贝叶斯网络编码的概率可以是贝叶斯的,也可以是物理的。

为了说明建立贝叶斯网络的过程,考虑检测信用卡欺诈的问题。
我们从确定要建模的变量开始。
对于我们的问题,一个可能的变量选择是Fraud(F)Fraud (F )Fraud(F), Gas(G)Gas (G)Gas(G), Jewelry(J)Jewelry (J)Jewelry(J), Age(A)Age (A)Age(A), Sex(S)Sex (S)Sex(S), 这几个变量的含义分别是 当前购买是否欺诈,过去24小时内是否有购买天然气的交易,不管过去24小时内是否有购买珠宝的行为,持卡人的年龄和性别。当然,在一个现实的问题中,我们会包含更多的变量。此外,我们还可以在更精细的细节级别上为一个或多个这些变量的状态建模。例如,我们可以让年龄是一个连续变量。这项任务不总是直接的。作为这项任务的一部分,我们必须(1)正确识别建模的目的(例如,预测,解释,探索),(2)找出许多可能与问题相关的观察结果,(3)确定哪些观测值值得建模,(4)将观察结果组织成具有相互排斥和全无遗漏状态的变量。
在贝叶斯网络构造的下一阶段,我们建立一个编码条件独立性断言的有向无环图。 一种方法是基于以下观察。根据概率链式法则,我们有

现在,对于每个XiX_iXi​,都会存在子集Π⊆{X1,...,Xi−1}\Pi \subseteq \left \{ X_1, ..., X_{i-1} \right \}Π⊆{X1​,...,Xi−1​} 使得 Xi和{X1,...,Xi−1}ΠiX_i 和 \left \{ X_1, ..., X_{i-1} \right \} \Pi_iXi​和{X1​,...,Xi−1​}Πi​ 条件独立。就是对于任何x\mathbf{x}x:

结合方程17和18,我们可以得到:

结合方程16和19,我们看到变量集(Π1,...,Πn)(\Pi_1, ..., \Pi_n)(Π1​,...,Πn​)对应贝叶斯网络的父母(Pa1,...,Pan)(\mathbf{Pa}_1, ..., \mathbf{Pa}_n)(Pa1​,...,Pan​),这反过来完全指定了网络结构S中的弧。

结果是,为了确定贝叶斯网络的结构,我们(1)对变量进行排序,(2)确定i = 1时满足方程18的变量集 (for i=1,...,ni=1,..., ni=1,...,n)。在我们这个例子中,使用这个顺序(F,A,S,G,J)(F, A, S, G, J)(F,A,S,G,J),然后我们有如下的条件独立性:

因此,我们就会获得如下的结构:

这个方法有一个严重的缺点。如果不认真地选择变量的顺序,所得到的网络结构可能无法体现出变量之间的许多条件独立性。例如,如果我们构造一个针对欺诈问题的贝叶斯网络,使用排序(J,G,S,A,F)(J, G, S, A, F)(J,G,S,A,F), 我们就会得到了一个完全连接的网络结构。因此,在最坏情况下,我们必须探索n!n!n!种顺序,找到最好的一个。幸运的是,还有另一种构建贝叶斯网络的技术,它不需要排序。该方法基于两项观察: (1) 人们常常可以轻易断言变量之间的因果关系。(2)因果关系通常对应于条件依赖的断言。特别地,要为给定的一组变量构建贝叶斯网络,我们只需画出从引起变量到它们的直接影响的弧。在几乎所有的情况下,这样做的结果是网络结构满足定义方程16。例如,如果我们断言FraudFraudFraud是GasGasGas的直接原因,Fraud,Age,SexFraud,Age, SexFraud,Age,Sex是JewelryJewelryJewelry的直接原因,我们也会得到上面的图结构。贝叶斯网络的因果语义在很大程度上是贝叶斯网络作为专家系统表示的成功原因(Heckerman et al., 1995a)。在第15节中,我们将看到如何使用这些因果语义从数据中学习因果关系。
在构造贝叶斯网络的最后一步,我们评估了局部概率分布p(xi∣pai)p(x_i | \mathbf{pa}_i)p(xi​∣pai​)。 在我们上面的例子中,所有的变量都是离散的,所以对于父节点的每一种配置都分配一个概率。

请注意,尽管我们将这些构建步骤描述为一个简单的序列,但在实践中它们经常是混杂的。例如,对条件独立性和/或因果的判断会影响问题的构想。同时,对概率的评估会导致网络结构的变化。

Inference in a Bayesian Network

一旦我们构建了贝叶斯网络(根据先验知识、数据或组合),我们通常需要从模型中确定各种兴趣的概率。例如,在我们关于欺诈检测的问题中,我们想知道给定其他变量的观察值,欺诈发生的概率。这个概率没有直接存储在模型中,因此需要被计算。 In general, the computation of a probability of interest given a model is known as probabilistic inference. 在这一部分,在贝叶斯网络中描述probabilistic inference。

因为X\mathbf{X}X的贝叶斯网络决定了X\mathbf{X}X的联合概率分布。原则上,我们可以使用贝叶斯网络来计算任何感兴趣的概率。例如,例子中的贝叶斯网络,在观察到其他变量的情况下,fraud的概率可以计算如下:

然而,对于有许多变量的问题,这种直接方法是不实际的。幸运的是,至少当所有变量都是离散的,我们可以利用编码在贝叶斯网络中的条件独立性使这种计算更加高效。在我们的例子中,已知方程20的条件独立,方程21就变成了:

一些研究人员开发了离散变量贝叶斯网络的概率推理算法,大致上利用了我们所描述的条件独立性,尽管有不同的曲折。这里具体介绍了一些算法。

在编码多变量高斯分布或高斯混合分布的贝叶斯网络中,精确推断的方法分别由Shachter和Kenley(1989)和Lauritzen(1992)开发。这些方法还使用条件独立性断言来简化推理。结合其它分布的贝叶斯网络的近似推理方法,如广义线性回归模型,也被开发了(Saul et al., 1996; Jaakkola and Jordan, 1996)。

虽然我们使用条件独立性来简化概率推理,但在离散变量的任意贝叶斯网络中精确推理是NP-hard (Cooper, 1990)。即使是近似推断(例如,蒙特卡洛方法)也是NP-hard (Dagum and Luby, 1993)。但是对于很多应用来说,网络结构是足够简单的(或者是可以被充分简化而不牺牲太多的准确性),所以inference是高效的。

Learning Probabilities in a Bayesian Network

在剩下的一些部分,我们展示了在给定一些数据的情况下,如何细化贝叶斯网络的结构和局部概率分布。结果是一组数据分析技术,结合先验知识和数据,以产生改进的知识。在本节中,我们考虑这个问题的最简单版本:使用数据来更新给定贝叶斯网络结构的概率。回想一下,在图钉问题中,我们不知道正面出现的概率。相反,我们更新变量的后验分布来表示正面出现的物理概率。我们对贝叶斯网络中的概率采用同样的方法。特别是,我们假设 —— 也许是由于对这个问题的因果认识 —— X\mathbf{X}X的物理联合概率分布可以编码到某些网络结构S中。

其中,θi\mathbf{\theta}_iθi​是分布p(xi∣pai,θi,Sh)p(x_i|\mathbf{pa}_i, \theta_i, S^h)p(xi​∣pai​,θi​,Sh)的参数向量

A Tutorial on Learning With Bayesian Networks 翻译相关推荐

  1. AAAI 2018文章 Representation Learning for Scale-free Networks 翻译

    大三上课翻译的一篇paper,之前一直放在草稿箱,发出来供大家参考一下,没有再做修改,哪里翻译有问题或理解不对欢迎指出. 无标度网络表示学习 冯瑞,杨洋,胡文杰,吴飞,庄悦婷 中国浙江大学计算机科学与 ...

  2. 深度学习材料:从感知机到深度网络A Deep Learning Tutorial: From Perceptrons to Deep Networks

    In recent years, there's been a resurgence in the field of Artificial Intelligence. It's spread beyo ...

  3. Bayesian Networks

    有几本书是值得一读的(都可以下到): [1] (N) Neapolitan, R. E. Learning Bayesian Networks. Pearson Prentice Hall, 2004 ...

  4. 贝叶斯网的R实现( Bayesian networks in R)bnlearn(1)

    1.bayesian networks的一些基本概念 贝叶斯网bayesian networks是一种有向无环图模型(DAG),可表示为G=(V,A).其中V是节点的集合,节点表示随机变量:A是弧(或 ...

  5. 论文笔记 Communication-Efficient Learning of Deep Networks from Decentralized Data

    论文题目:<Communication-Efficient Learning of Deep Networks from Decentralized Data> 时间:联邦学习由谷歌在20 ...

  6. 联邦学习笔记—《Communication-Efficient Learning of Deep Networks from Decentralized Data》

    摘要: Modern mobile devices have access to a wealth of data suitable for learning models, which in tur ...

  7. 《Sequence to Sequence Learning with Neural Networks》阅读笔记

    Abstract DNNs 可用于各种复杂的学习任务并取得很好的效果,但是 DNNs 不能用于序列到序列的映射.这篇论文提出了一种端到端(end-to-end)的神经网络模型,来学习这种映射关系.作者 ...

  8. Auto Machine Learning笔记 - Bayesian Optimization

    原文链接:Auto Machine Learning笔记 - Bayesian Optimization 优化器是机器学习中很重要的一个环节.当确定损失函数时,你需要一个优化器使损失函数的参数能够快速 ...

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

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

最新文章

  1. python创建类的实例方法-Python中动态创建类实例的方法
  2. 安卓开发-Activity中finish() onDestroy() 和System.exit()的区别
  3. PHP非对称加密:RSA (RSA/ECB/PKCS1Padding)+base64_encode/bin2hex加密
  4. 2020知到python语言应用答案_2020年知到APPPython语言应用第四单元章节测试答案
  5. CF704B. Ant Man
  6. 为别人软件加入广告或者密码(特别思路)
  7. MVC Area Usage
  8. 60-40-020-序列化-自定义序列化
  9. java各种排序实现
  10. Python——如何屏蔽函数内部的print输出
  11. liunx 中mysql 远程连不上_linux中MySQL本地可以连接,远程连接不上问题
  12. 不得不爱开源 Wijmo jQuery 插件集(13)-【Tooltip】(附页面展示和源码)
  13. Atitit 语义网的实现技术 目录 1. 语义网概念及技术综述 1 2. 图2-1 语义网的体系结构 2 2.1. 第1层:基础层,主要包含Unicode和URI(Uniform resource
  14. Java——课设——图书管理系统实现
  15. 《经济机器是怎样运行的》笔记(一)
  16. mc小刘yeah粉丝网
  17. 新浪微博分享出现libc++abi.dylib: terminating with uncaught exception of type NSException微博微信SDK运行编译报错
  18. 牛客竞赛C/C++语言基础22198 选村长
  19. div box盒子的一些概念
  20. IOS 企业级苹果开发者账号申请流程

热门文章

  1. 中职计算机专业英语课程改革初探,计算机专业英语教学改革初探
  2. MXD修改数据源 arcgis
  3. 编写基于PHP的聊天室
  4. Sqlserver的merge into或delete语句堵塞了不加with (nolock)的select语句,锁类型是LCK_M_IS
  5. 创建PermissionActivity请求悬浮窗权限
  6. JavaWeb——用户信息列表案例
  7. 用Python实现自动抢红包以及查看微信撤回消息
  8. python functools_Python之functools模块的使用
  9. 秀一下我的手艺---中华五千年 火的艺术 就在这一盘
  10. 201621123075作业11-多线程