贝叶斯网络的建造是一个复杂的任务,需要知识工程师和领域专家的参与。在实际中可能是反复交叉进行而不断完善的。面向设备故障诊断应用的贝叶斯网络的建造所需要的信息来自多种渠道,如设备手册,生产过程,测试过程,维修资料以及专家经验等。首先将设备故障分为各个相互独立且完全包含的类别(各故障类别至少应该具有可以区分的界限),然后对各个故障类别分别建造贝叶斯网络模型,需要注意的是诊断模型只在发生故障时启动,因此无需对设备正常状态建模。通常设备故障由一个或几个原因造成的,这些原因又可能由一个或几个更低层次的原因造成。建立起网络的节点关系后,还需要进行概率估计。具体方法是假设在某故障原因出现的情况下,估计该故障原因的各个节点的条件概率,这种局部化概率估计的方法可以大大提高效率。
对于一个数据进行分类,那么数据的属性信息称为x,如果知道后验概率的情况下即能得到确定x的情况下分类为ci的概率。这时我们还需要一个损失的权值,λij称为i错判为j的损失(λii为0,一般λij都相等=1但具体情况可以具体分配),由前边得到的后验概率来乘上这个λ的参数这就叫做条件风险(conditional risk)。
那么我们可以设计一个映射关系h,从x->c可以将结果带入条件风险,求整体风险最小。
但是其中后验概率很难在现实任务中取到,所以引入机器学习的目标的就是去训练这样一个后验概率(从大量的样本数据中)当然也有两种方式:
可以看到前边判别类别的决策树,bp,svm都是判别式模型。(从这里看出我们的终极目标还是去计算 p(c|x) ,符合现实的要求。)
根据贝叶斯定理,要求联合概率分布,可以通过 p(c )p(x|c)/p(x) 来得到,前者是类先验概率,后者是类条件概率,或者称似然。
p(x) 是用于归一化的证据因子,对于给定的样本x,证据因子和类标记无关。(证据因子的存在知识为了保证各类别的后验概率的总和为1,所以在固定x的情况下这一项相当于常数,在比较时不做考虑)
但如果x样本的属性很多或者是一个连续值,那么样本个数是不可能完全模拟到所有的取值的,更不用说还要去计算他们出现的联合概率了,也就是说得到的 p(x|c) 会有很多零值。
那么无法通过样本来进行模拟分布,可以用mle(极大似然估计)的方法,通过设定一个通用的分布函数(如:正态分布,不一定是正态,所以这个假设存在一定误差,或者说我们在指定假设分布形式时需要参考一定的先验知识(也就是我们训练数据的风格))然后通过训练分布中的参数来让极大似然最大。
1朴素贝叶斯分类器:(naïve bayes classification)
条件:
将所有的属性假设为相互独立也就是每个属性独立地对分类结果发生影响,这个想法很天真,很梦幻。
当然有了这个假设就很好计算了,计算联合分布的过程:通过训练集D来得到类先验概率然后再得到类条件概率。对于离散的取值数据量够可以直接用取值在训练集D中的概率直接估计,对于离散取值过多,或者是连续取值的情况可以用最大似然来做估计。
然后通过计算和比较 p(c=1,x) 和 p(c=2,x) 的大小,来或者最后输出c是判为1还是2。
因为离散取值会因为在数据集中找不到而变成概率为0,这样会影响所有的判断,这样就可以通过一个平滑处理(如:拉普拉斯修正)来将其修正为 (Dci+1)/(Dc+Nx) ,Dci为类别为c,x属性取值为i的个数,Nx为属性x的可能的取值数。同理对于类先验也要进行平滑处理。(这样的平滑 *** 作算是一种先验,而且随着样本集增大影响逐渐减少的趋向于真实值。)
2半朴素贝叶斯分类器(semi-naïve bayes classification)
条件:
既然所有属性都假设为相互独立过于天真,那么我们假设一种独依赖,也就是假设每一个属性在类别之外最多仅依赖于一个其他属性。我们称这种假设为semi-naïve 的假设。
那么这样的独依赖也会有一些设计的方式:
1都依赖于一个相同的父属性(SPODE);
2随机依赖于除自己以外的其他的属性,但要让生成的树达到最大的权值(权值由两个属性之间的条件互信息来决定),构成最大带权生成树(TAN)。
但是因为有无环的性质,所以无论哪一种最后一定会有一个属性是没有父依赖的。
3非朴素贝叶斯--贝叶斯网络:(放弃之前“天真”的假设)
条件:
前边半朴素通过图连接来刻画属性之间的依赖关系,那么同样贝叶斯网络也在用这种有向无环图来刻画属性之间的依赖关系,并用条件概率表(CPT,conditional probability table)作为边的参数也就是(整个贝叶斯网络的参数)主要是子属性和父属性相对应的条件概率。而一个属性他的父属性个数没有任何限制。
问题:
但这样不如上一个半朴素贝叶斯结构基本固定直接遍历搜索空间也不会很大,可以用最大边的方式构建贝叶斯网络,也就是说这样的网络结构很难去构建和生成,主要是用似然损失+构造损失(参数个数参数的精度)作为损失函数来进行优化,但是这直接求解是一个NP难的问题,这样就有两种方式第一种:贪心法,通过初始化一个网络结构,然后每次调整一个边(增加,删除或调整方向)使得loss变化最大,直到最后评分函数无法在降低。(当然这样的一个初始化网络结构就会变得很重要)第二种:通过给网络结构添加约束,比如将网络结构限定为树形结构等。
方法:
除了之前我们用作的分类问题,还可以做扩展到一个推断的问题,比如蒙着眼摸出西瓜的根蒂,形状,大小,能推断出它的色泽到底是青绿还是黄绿,是好瓜还坏,甜度如何等等。而且还可以直接精确计算出后验概率,但是当网络结点很多,连接又很稠密,而且查询的属性又含有依赖关系的时候,在短时间内计算出准确的结果会很难。所以我们通过借助近似的方式推断结果。(我们只想知道哪种可能性大得多,具体大多少不是我们要求的结论)
这种近似的做法就是吉布斯采样方法,固定我们获得的证据属性E,然后通过初始化一个q0,接着对于q0中的某一个属性根据其他的属性不变,根据计算得到的条件概率进行采样。这是一个马尔科夫链(marcov chain),性质:在经过t次的采样之后,马尔科夫会收敛于一个平稳分布,而这个平稳分布正是我们要求的那个 p(Q|E=e) 的分布。这样我们就可以通过吉布斯采样来得到一个模拟化的分布得到q最有可能的取值。(或者给定q, p(q|E=e) 估计的概率是多少)
隐变量介绍以及解决方法:
上诉还有一个问题那就是属性缺失的情况下怎么办,我们的模型网络还能创建得出来吗?也就是说存在隐变量(latent variable)该怎样解决这样的问题?
EM(Expectation-Maximization)算法是常用的估计参数隐变量的方法。
主要的思想就是:隐变量和模型参数是我们要求的,而二者之间存在相互依赖的关系,也就是不知道隐变量无法求出模型参数,不知道模型参数也无法反推出隐变量。那如果是一种优化迭代算法的话,初始化隐变量,然后训练得到最优的参数,然后通过固定最优的参数再反过来训练到最优的隐变量。直到最后收敛到一个局部最优解。(所以这种算法求解的结果是和 初始值关系比较大的局部最优解,如果能找到一个接近全局最优解的初始值,或者在接受解的概率上做调整不至于过快收敛,可能可以得到一个更好的解。)
参考文献:西瓜书-贝叶斯决策论
当今战争形态已经从传统的机械战、电子战,转向了信息战。多传感器系统的存在,使得 信息来源非常广泛 多样,我们一方面要做到 综合这些不同传感器的信息 ,一方面要 处理各种不确定的、模糊的信息 ,从而产生比任何一个单一信源都 更加精确的评估和判决 , 将不确定性降到最低。
贝叶斯网络被认为是数学基础最强的不确定性处理理论,动态贝叶斯网络是由贝叶斯网络发展来的,具有良好的 随时间演化的能力 。通过动态贝叶斯网络可以将人类的先验知识和后验的数据无缝地结合,然后利用闭环的动态贝叶斯网络拓扑结构进行不断的学习,从而降低信息融合过程中的不确定性。
为什么信息是不确定的? 1)传感器性能的局限;2)敌方故意实施干扰、欺骗。
战场态势瞬息万变,态势评估就是根据不断到来的数据逐步达到对敌方 作战意图 和 作战计划 的识别,是实现 作战指挥自动化 的极其关键一环。
态势评估和威胁评估的任务是从 大量散乱的、密级的 情报信息中 进一步提取 指挥员关心的战场上重要的影响战役战斗进程的情况和事件信息,并进行 评估、分析、预测 。是去粗取精、去伪存真的智能化分析处理过程。
态势评估的主要内容: 聚合实体、推理实体意图。
贝叶斯网络是 概率论+图论 的产物。
贝叶斯网络主要由两部分组成: 网络结构 和 条件概率表 。
传统贝叶斯网络只能进行静态过程的推理,难以反映 时间因素 对事件概率的影响,而且传统贝叶斯网络是有向无环的,和战场态势的闭环特点不符合,而动态贝叶斯网络在这两点上都可以满足。
战场态势评估中构建贝叶斯网络的方式: 通过借鉴战争领域丰富的模型知识,用条件概率表示对抗中的因果关系,从而建立威胁评估贝叶斯网络模型。
贝叶斯网络作为一种可描述不确定信息的专家系统,在构造态势威胁评估模型上具有以下 优点 :
1)贝叶斯网络类似神经元网络,能够充分 描述人类的推理模式 ,网络的图形方式还便于模型开发人员的理解和开发。
2) 量化描述 威胁源评估的过程。
3)贝叶斯概率的特点使网络模型能够反映威胁源评估的 连续性 和 累积性 这两个重要特征。模型中,综合最新的事件线索和从先验信息得到的后验信息,得到的评估结果不仅反映了当前的信息,而且综合了历史和先验知识。这种时间一致性特征在采用基于规则和基于神经元网络等无记忆方法时是无法实现的。
4)贝叶斯逻辑在 数学上的可靠性 使该模型成为一种描述人类思维推理过程的标准模型。标准化意味着通用性,开发者之间的协同和交流成为可能。而传统的专家系统是完全面向任务的,不同的任务采用的模型千差万别,通用性较差。
我们首先呢下载贝叶斯网络工具箱再个呢解压压缩包然后将工具箱中bnt文件夹复制到matlab工具箱文件夹中(D:\Program Files\MATLAB\R2014a\toolbox)最后是打开matlab2014a,贝叶斯网络是处理不确定信息做有效的表示方法之一。其关键的特征之一是提供了把整个概率分布分解成几个局部分布的方法,网络的拓扑结构表明如何从局部的概率分布获得完全的联合概率分布。 贝叶斯网络适合于对领域知识具有一定了解的情况,至少对变量间的依赖关系较清楚。否则直接从数据中学习贝叶斯网络结构复杂性极高(随节点的增加成指数级增长)在这个网络meta分析中,研究者比较了多种非类固醇抗炎药治疗膝、 髋关节骨性关节炎疼痛的疗效,那两个大点就是样本量最大的两个不同的药物组(变量)。当然,伟大的贝叶斯统计怎么会仅仅局限于对文献数据的网络meta分析?教科书上说,贝叶斯网络,既形式上,一个贝叶斯网络就是一个有向无环图,结点表示随机变量,可以是可观测量、隐含变量、未知参量或假设等;结点之间的邮箱边表示条件依存关系,箭头指向的结点依存于箭头发出的结点(父节点),每个结点都与一个概率函数相关。看看!说明啥?长得多么多么像医学中各个疾病与其危险因素的关系啊!多么多么像临床诊断指南里一下症状中几条中满足几条考虑诊断的诊断轴啊!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)