热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

贝叶斯网络结构学习总结

完备数据集下的贝叶斯网络结构学习:基于依赖统计分析的方法—— 通常利用统计或是信息论的方法分析变量之间的依赖关系,从而获得最优的网络结构对于基于依赖统计分析方法的研究可分为三种:基
完备数据集下的贝叶斯网络结构学习:
  • 基于依赖统计分析的方法——  通常利用统计或是信息论的方法分析变量之间的依赖关系,从而获得最优的网络结构
    • 对于基于依赖统计分析方法的研究可分为三种:
      • 基于分解的方法(V结构的存在)
        • Decomposition of search for v-structures in DAGs
        • Decomposition of structural learning about directed acylic graphs
        • Structural learning of chain graphs via decomposition 
      • 基于Markov blanket的方法
        • Using Markov blankets for causal structure learning
        • Learning Bayesian network strcture using Markov blanket decomposition
      • 基于结构空间限制的方法
        • Bayesian network learning algorithms using structural restrictions(将这些约束与pc算法相结合提出了一种改进算法,提高了结构学习效率)(约束由Campos指出包括1、一定存在一条无向边或是有向边 2、一定不存在一条无向边或有向边  3、部分节点的顺序)
    • 常用的算法:
      • SGS——利用节点间的条件独立性来确定网络结构的方法
      • PC——利用稀疏网络中节点不需要高阶独立性检验的特点,提出了一种削减策略:依次由0阶独立性检验开始到高阶独立性检验,对初始网络中节点之间的连接进行削减。此种策略有效地从稀疏模型中建立贝叶斯网络,解决了SGS算法随着网络中节点数的增长复杂度呈指数倍增长的问题。
      • TPDA——把结构学习过程分三个阶段进行:a)起草(drafting)网络结构,利用节点之间的互信息得到一个初始的网络结构;b)增厚(thickening)网络结构,在步骤a)网络结构的基础上计算网络中不存在连接节点间的条件互信息,对满足条件的两节点之间添加边;。)削减( thinning)网络结构,计算步骤b)网络结构中边的条件互信J急,删除不满足条件的边。
 
  • 基于评分搜索的方法
    • 评分函数(表示学习到的网络和真实网络的匹配程度)
      • BIC——由Schwarz在1978年提出的BIC准则。BIC评分函数是在样本满足独立同分布假设的前提下,用对数似然度来度量网络结构与观侧数据的拟合程度。由于没有对网络结构的复杂度进行约束,通过此评分函数搜索得出的网络结构较为复杂,准确度不高。
      • K2——由Cooper等提出了一种结合先验信息的K2评分函数。因为在进行贝叶斯网络结构学习之前,绝大多数情况下节点顺序是不清楚的,因此,这也是K2算法最大的弊端。
      • MDL——由Lam在1994年提出了以最小描述长度MDL作为衡量标准,通过搜索与评价来找出正确的网络结构,不需要知道节点顺序等先验知识。相对于BIC算法,该方法加入了算法复杂度的惩罚项,但是MDL评分函数在观测数据量较小时,惩罚量所占的得分比重较大导致数据与结构的欠拟合;当观测数据量较大时,惩罚量所占的比重较小,使得数据与结构过拟合。所以,在实际的计算过程中,MDL评分函数的计算精确度不高。
      • BDe——由Heckerman等人在1995年提出。是K2的改进算法,此方法假设贝叶斯网络参数的先验分布服从Dirichlet分布,在计算的过程中不需要事先获得节点顺序,扩大了评分函数的应用领域。
      • IS——由Bouchaala等人提出。利用用隐含估计的方法对贝叶斯网络参数进行估计,避免了要先确定节点变量分布的情况,减少了由节点变量分布带来的误差,提高了评分函数的精确度。
      • MIT——由Campos等人提出。基于条件独立性测试的评分函数MIT( mutual information tests),函数通过度量网络结构与观测数据之间的KL距离来评价网络结构的优劣,当两者距离最小时,网络结构与观测数据的相似性最大。此方法利用信息论的原理减少了计算复杂度。
      • 卡方度量
      • 信息熵度量
      • BD——贝叶斯狄利克雷评分
    • 搜索算法
      • K2——K2搜索算法由Cooper等人在1992年提出。K2搜索算法通过贪婪搜索选择最优的网络结构,在定义评分函数之后,从一个网络节点开始,根据已经确定的最大父节点数目和节点顺序,选择分值最高的节点作为该节点的父节点。
      • Ziegler等通过以节点为单位分解评分函数,从而改进了贪婪算法的搜索策略,提高了算法的精度。(Approximation algorithms for restricted Bayesian network structures)
      • Campos等然提出了基于蚁群优化算法的贝叶斯网络结构学习(Ant colony optimization for learning Bayesian networks)
      • 其他的搜索优化方法,包括贪婪算法,粒子群优化算法,遗传算法,人工蜂群算法等(An artificial bee colony algorithm for learning Bayesian networks\ A Bayesian network learning algorithm based on independence test and ant colony optimization\Bayesian network structure learning algorithm based on ant colony optimization search optimal node ordering)
      • 爬山算法——爬山法使用的搜索算子由3种,分别为加边、减边、转边;其中在加边和转边的使用时有一个前提就是不能有环;主要思想:爬山法从一个初始网络结构出发,通过三个搜索算子对当前网络结构进行修改,得到一系列候选网络结构,然后计算每个候选网络结构的评分,并选出评分最大的作为最优候选结构,如果最优候选结构的评分大于当前网络结构的评分,则以最优候选结构作为当前网络结构,继续搜索; 否则,就停止搜索,并返回当前网络结构。
 
 
  • 将上述两种方法相结合
    • MMHC——Tsamardinos等人提出的MMHC算法是比较经典的混合搜索算法之一,首先利用MMPC(max-min parents and chlidren)算法确定每个节点的父节点和子节点集,从而构建出网络结构框架;然后根据K2搜索策略对已经得到的网络结构的框架进行搜索评分,得出最优网络结构。
    • I-ACO-B——由Ji等人提出,首先通过节点间条件独立性测试缩减网络结构空间,然后利用蚁群算法对网络结构空间进行评分搜索,最终得出最优的网络结构
    • MIC——ZHANG等人在互信息的基础上提出了MIC( maximum information coeffioient)来判断节点间的相关性,有效地改善了在缩减网络结构空间时误删最优解的情况。
    • SK-SS——Masegosa 等人利用基于Markov Blanket 集合的方法来构建网络结构框架,缩减了网络结构空间,并通过适合于网络结构框架的评分函数SK-SS( skeleton-ased stochastic search method)来降低计算复杂度,取得了很好的效果。
    • Larjo 等人l鉴于大多数贝叶斯网络结构都是稀疏的情况,用L-1范数惩罚网络复杂度,并将正则项加入到评分函数中,在减小网络结构复杂度的同时提高了计算效率,并在生物领域取得了较好的应用。
    • 增量学习——提出了基于增量学习的贝叶斯网络结构学习方法,给出了贝叶斯网络结构增量学习的框架,通过改进BIC评分函数得出评价网络结构是否需要进行增量学习的评价准则,最后通过TPDA算法学习出当前状态下准确的贝叶斯网络结构。实验结果表明,增量学习的思想大大提高了算法的学习效率。(An incremental structure learning approach for bayesian network)
不完备数据下的贝叶斯网络结构学习:
  • 数据的丢失导致两方面的问题:
    • 评分函数不再具有可分解形式,不能进行局部搜索
    • 一些充分统计因子不存在,无法直接对网络结构打分
  • 具体流程:
    • 随机或按分布生成丢失数据,将不完备数据初始化
    • 对数据进行完善修正,并通过参数估计方法得出贝叶斯网络的参数估计值;
    • 对得到的贝叶斯网络观测数据进行结构学习得出G的k次方,并跳至步骤b,直至循环结束
  • 部分算法:
    • EM——该方法是由Friedman等人在1998年提出的,该方法是一种比较经典的不完备数据结构学习算法
    • MS-EM——该算法是在EM 算法完成数据修补后,利用爬山算法来寻找最优的网络结构(Learning belief networks in the presence of missing values and hidden variables)
    • GES-EM\MWST-EM——为了减少爬山算法的计算复杂度提出的算法(Learning Bayesian network equivalence classed from incomplete data)
    • BN-GS—— 针对不完备数据的结构学习算法容易陷入局部最优,提出了一种基于Gibbs sampling修复丢失数据的BN-GS( Bayesian network&Gibbs sampling)算法。BN-GS把Gibbs sampling和数据集修正与贝叶斯网络结构调整有机地结合在一起。一方面,由Gibbs sampling过程的收敛性保证了贝叶斯网络结构序列的收敛性;另一方面,每一次依据联合概率的分解独立地对样本进行抽样,能够显著提高抽样效率。但这种方法在保证精确度的同时,存在重复计算网络结构的问题,增加了学习复杂度。
  • 不足:
    • 基EM算法框架的结构学习算法由于网络参数的最大似然估计和数据采样的不准确性使得学习准确度较r氏。
传统的因果网络推断方法:
  • 基于估计马尔可夫等价类的贝叶斯网络结构学习算法
  • 基于估计马尔可夫等价类的贝叶斯网络结构学习算法只能用于因果结构无向图的环境,而无法准确完成模型的方向推断
  • 基于加性噪声模型或信息集合的因果方向推断算法
  • 基于加性噪声模型或信息几何的因果方向推断算法能够从数据节点集中构建有效的因果网络
 

推荐阅读
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
author-avatar
人鱼同体
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有