贝叶斯逻辑程序的两个组成部分是什么?

2020-05-20 16:04发布

1条回答
大泽九章
2楼 · 2020-07-16 15:09






贝叶斯网络

贝叶斯网络(BayesianNetworks)也被称为信念网络(BelifNetworks)或者因果网络(CausalNetworks),是描述数据变量之间依赖关系的一种图形模式,是一种用来进行推理的模型。贝叶斯网络为人们提供了一种方便的框架结构来表示因果关系,这使得不确定性推理变得在逻辑上更为清晰、可理解性强。

对于贝叶斯网络,我们可以用两种方法来看待它:首先贝叶斯网表达了各个节点间的条件独立关系,我们可以直观的从贝叶斯网当中得出属性间的条件独立以及依赖关系;另外可以认为贝叶斯网用另一种形式表示出了事件的联合概率分布,根据贝叶斯网的网络结构以及条件概率表(CPT)我们可以快速得到每个基本事件(所有属性值的一个组合)的概率。贝叶斯学习理论利用先验知识和样本数据来获得对未知样本的估计,而概率(包括联合概率和条件概率)是先验信息和样本数据信息在贝叶斯学习理论当中的表现形式。

注:在概率论中,联合概率是指在多元的概率分布中多个随机变量分别满足各自条件的概率。举例说明:假设X和Y都服从正态分布,那么P{X<4>

贝叶斯网络由以下两部分组成:

一贝叶斯网络结构

贝叶斯网的网络结构是一个有向无环图(DirectedAcyclicGraph),其中每个结点代表一个属性或者数据变量,结点间的弧代表属性(数据变量)间的概率依赖关系。一条弧由一个属性(数据变量)A指向另外一个属性(数据变量)B说明属性A的取值可以对属性B的取值产生影响,由于是有向无环图,A、B间不会出现有向回路。在贝叶斯网当中,直接的原因结点(弧尾)A叫做其结果结点(弧头)B的双亲结点(parents),B叫做A的孩子结点(children)。如果从一个结点X有一条有向通路指向Y,则称结点X为结点Y的祖先(ancestor),同时称结点Y为结点X的后代(descendent)。

我们用下面的例子来具体说明贝叶斯网的结构:


图1简单的贝叶斯网模型

图1中共有五个结点和五条弧。下雪A1是一个原因结点,它会导致堵车A2和摔跤A3。而我们知道堵车A2和摔跤A3都可能最终导致上班迟到A4。另外如果在路上摔跤严重的话还可能导致骨折A5。这是一个简单的贝叶斯网络的例子。在贝叶斯网中像A1这样没有输入的结点被称作根结点(root),其他结点被统称为非根结点。

贝叶斯网络当中的弧表达了结点间的依赖关系,如果两个结点间有弧连接说明两者之间有因果联系,反之如果两者之间没有直接的弧连接或者是间接的有向联通路径,则说明两者之间没有依赖关系,即是相互独立的。结点间的相互独立关系是贝叶斯网络当中很重要的一个属性,可以大大减少建网过程当中的计算量,同时根据独立关系来学习贝叶斯网络也是一个重要的方法,这在本文后面会着重介绍。使用贝叶斯网络结构可以使人清晰的得出属性结点间的关系,进而也使得使用贝叶斯网进行推理和预测变得相对容易实现。

从上图中我们可以看出,节点间的有向路径可以不只一条,一个祖先结点可以通过不同的途径来影响它的后代结点。如我们说下雪可能会导致迟到,而导致迟到的直接原因可能是堵车,也可能是在雪天滑倒了、摔了一跤。这里每当我们说一个原因结点的出现会导致某个结果的产生时,都是一个概率的表述,而不是必然的,这样就需要为每个结点添加一个条件概率。一个节点在其双亲节点(直接的原因接点)的不同取值组合条件下取不同属性值的概率,就构成了该结点的条件概率表。

二.条件概率表

在上一节当中已经介绍了条件概率的概念,贝叶斯网络中的条件概率表是结点的条件概率的集合。当使用贝叶斯网络进行推理时,实际上是使用条件概率表当中的先验概率和已知的证据结点来计算所查询的目标结点的后验概率的过程。

条件概率可以由某方面的专家总结以往的经验给出(但这是非常困难的,只适合某些特殊领域),另外一种方法就是通过条件概率公式在大样本数据当中统计求得,学习条件概率表的算法将在下一节中详细介绍。在这里我们先根据上图的贝叶斯网给出其中的一些条件概率表,使大家对条件概率表有一个感性的认识。

如果将结点A1下雪当作证据结点,那么发生A2堵车的概率如何呢?下表给出了相应的条件概率:

上表是最简单的情况,如果有不只一个双亲结点的话,那么情况会变得更为复杂一些,见表2.2:

由表中可以看出,当堵车A2和摔跤A3取不同的属性值时,导致迟到A4的概率是不同的。贝叶斯网条件概率表中的每个条件概率的都是以当前结点的双亲结点做为条件集的。如果一个结点有n个父节点,在最简单的情况下(即每个结点都是二值结点,只有两个可能的属性值:True或者False),那么它的条件概率表有2n2^n2n行;如果每个属性结点有k个属性值,则有knk^nkn行记录,其中每行有k-1项(因为k项概率的总和为1,所以只需知道其中的k-1项,最后一项可以用减法求得),这样该条件概率表将一共有(k−1)kn(k-1)k^n(k−1)kn项记录。

根据条件概率和贝叶斯网络结构,我们不仅可以由祖先接点推出后代的结果,还可以通过后代当中的证据结点来向前推出祖先取各种状态的概率。

贝叶斯网可以处理不完整和带有噪声的数据集,因此被日益广泛的应用于各种推理程序当中。同时由于可以方便的结合已有的先验知识,将已有的经验与数据集的潜在知识相结合,可以弥补相互的片面性与缺点,因此越来越受到研究者的喜欢。

贝叶斯网络分类:

1。静态贝叶斯网络

2。动态贝叶斯网络

三动态贝叶斯网络

在我们这里所讲的DBN,它的动态,并不是说网络结构随着时间的变化而发生变化,而是样本数据,或者说观测数据,随着时间的变化而变化。其中对网络结构随时间变化的情况主要出现在这么一个问题中:对一个未知对象集进行跟踪。随着时间的变化,无法知道哪些对象产生了,而哪些对象又消失了。在A工界,这类问题被称为,'FirstOrder",也被称为”Propositional"模型,相关讨论可以看文献〔35]0

一般的DBN有两个特点。网络的拓扑结构在每个时间片(timeslice,快照)内是相同的,而片与片之间通过类似的弧进行连接。

一个BN可以定义为:BN=(G,θ)BN=(G,\theta)BN=(G,θ),其中GGG是XXX上联合概率分布的有向非循环图,θ\thetaθ表示网络的参数。其中,XXX上的联合概率分布定义为:P(X1,X2,...,Xn)=∏i=inP(Xi∣Pa(Xi))P(X_1,X_2,...,X_n)=\prod_{i=i}^nP(X_i|Pa(X_i))P(X1,X2,...,Xn)=i=i∏nP(Xi∣Pa(Xi))

DBN模型则将这种表述扩展到模型化含时间因素的随机过程。为了用BN表述随机过程,需要得到随机变量X[1],X[2],...,X[n]X[1],X[2],...,X[n]X[1],X[2],...,X[n]上的一个概率分布,但这样一个分布是十分复杂的。因此,为了能够对复杂系统进行研究并建立相应的模型,需要做一些假设和简化条件处理。

假设条件:

1假设在一个有限时间内条件概率变化过程对所以ttt是一致平稳

2假设动态概率过程是马氏的,即满足:P(X[t+1]∣X[1],X[2],...,X[t])=P(X[t+1]∣X[t])P(X[t+1]|X[1],X[2],...,X[t])=P(X[t+1]|X[t])P(X[t+1]∣X[1],X[2],...,X[t])=P(X[t+1]∣X[t])

也就是说未来时刻的概率只与当前时刻有关而与过去时刻无关

3假设相邻时间的条件概率过程是平稳的,即P(X[t+1]∣X[t])P(X[t+1]|X[t])P(X[t+1]∣X[t])与时间ttt无关,可以容易地得到不同时间的转移概率P(X[t+1]∣X[t])P(X[t+1]|X[t])P(X[t+1]∣X[t])

基于上述假设,建立在随机过程时间轨迹上的联合概率分布的DBN就由两部分组成:一个先验网B0B_0B0,定义在初始状态X[1]X[1]X[1]上的联合概率分布;一个转移网B→B_\toB→,定义在变量X[1]X[1]X[1]与X[2]X[2]X[2]上的转移概率P(X[t+1]∣X[t])P(X[t+1]|X[t])P(X[t+1]∣X[t])(对所有的ttt都成立)

因此,若给定一个DBN模型,则在X[1],X[2],...,X[T]X[1],X[2],...,X[T]X[1],X[2],...,X[T]上的联合概率分布为:P(X[1],X[2],...,X[T])=PB0(X[1])∏t=iTPB→(X[t+1]∣X[t])P(X[1],X[2],...,X[T])=P_{B_0}(X[1])\prod_{t=i}^TP_{B_\to}(X[t+1]|X[t])P(X[1],X[2],...,X[T])=PB0(X[1])t=i∏TPB→(X[t+1]∣X[t])

给出DBN定义:一个DBN可以定义为(B0,B→)(B_0,B_\to)(B0,B→)。其中B0B_0B0表示最开始的BN,从图中可以得到任一节点的先验概率P(X0)P(X_0)P(X0),B→B_\toB→表示有两个以上时间片段的BN组成的图形。




相关问题推荐

  • 回答 20

    选对培训机构比较重要,还有就是选择的时候看一下自己适合哪种风格的讲课方式,这个也很重要。因为现在5G时代来临,人工智能绝对是一个发展的大趋势,如果你自己空余时间又比较多的话,其实可以报一个辅导班,学习学习一些基本的东西,毕竟多学点总是没有坏处...

  • 回答 3

    深度学习是近几年人工智能领域的主要研究方向。深度学习的主要任务是通过构建深度卷积神经网络(Deep Neural Network,DNN)和采用大量样本数据作为输入,人们最终会得到一个具有强大分析能力和识别能力的模型,该模型包含了DNN的构成参数以应用于实际工作。...

  • 回答 16

    算法,数据相关的适合做人工智能

  • 回答 3

    AI深度学习课程是用于建立、模拟人脑进行分析学习的神经网络,并模仿人脑的机制来解释数据的一种机器学习技术,主要应用于图像识别、语音识别、自然语言处理等领域。学完可以从事深度学习工程师、机器学习工程师、人工智能工程师、高级算法工程师、高级算法工...

  • 回答 28

    人工智能取代的行业,一定有如下几个特征:1、大量重复型。2、逻辑性比较强。3、数据库依赖型。像司机,咨询,教育,医生,会计,律师助理,工程师,码农等,都是容易被取代的行业。当然,这都是强人工智能以后会发生的事,现在还是弱人工智能的时代,想进入...

  • 回答 9

    如果你是自己学着玩,提升自己的话,高中毕业都可以。如果是冲着AI算法岗或者科研一席之地,至少211硕士。具体可以亲身体验一下今年算法岗秋招。

  • 回答 9

    可以,未来的人工智能发展深度学习必然是现在大型机器生产科研必备的,证书的话某个培训好像有这个中科院的证书,具体你去百度吧

  • 回答 8

    我觉得就是人工智能的课程,现在家具都是智能家居了。这一块发展一定很好

  • 回答 3

    对于sgd算法而言,batch size太大太小都不好,太小的话训练不稳定,计算效率低;太大的话收敛速度慢,需要仔细调节一下。以2的倍数调节,例如32,64,128等

  • 回答 1

    在terminal中输入$wolf@wolf:~/Downloads/gitclonehttps://github.com/Tencent/ncnn cd切换到NCNN目录***这步很重要,这时候需要修改ncnn的root目录下的CMakeLists.txt文件,需要将倒数几行的add_subdirectory(examples),取消注释,这样就是默认编译example...

  • 回答 5

    人工智能的话其实到现在来说已经慢慢趋于成熟,学的话首先是一线城市,学出来好就业,还有就是薪资也高

  • 回答 3

    画个train and test error VS 训练数据量(training set size) 的learningcurve应该会更加直观了。可以找个简单的数据集,比如说handwritten digits或者什么的,分别用神经网络和决策树或者knn做出这个learningcurve。你会看到如果用一个决策树去解决这个问题...

  • 回答 2

    共生矩阵用两个位置的象素的联合概率密度来定义,它不仅反映亮度的分布特性,也反映具有同样亮度或接近亮度的象素之间的位置分布特性,是有关图象亮度变化的二阶统计特征。它是定义一组纹理特征的基础。     一幅图象的灰度共生矩阵能反映出图象灰度关于...

没有解决我的问题,去提问