对iMMPC算法的理解

news/2024/5/19 5:54:07 标签: 贝叶斯

本文基于论文《iMMPC: A Local Search Approach for Incremental Bayesian Network StructureLearning》

 Immpc:一种贝叶斯网络结构增量学习的局部搜索方法

目前在机器学习领域中,一个重要的组成部分就是概率图模型,而贝叶斯作为一种典型的概率图模型,在不确定性推理以及挖掘各个变量之间的关系中有着重要的作用,而贝叶斯结构学习是其重要的研究内容之一。本文章研究的就是在增量模式下,一种基于爬山法对贝叶斯结构进行有效学习的方法,节省时间,提高准确度。

一般有三种典型的结构学习方法:1.搜索评分法,缺点:搜索空间超指数,变量数目巨大时很难评价所有的结构。2.基于约束的方法,(基于统计的方法)利用统计方法把数据变量之间的依赖关系建立起来,但是不适合大批量的数据。3.局部搜索,利用统计依赖关系建立初级的结构,再利用启发式搜索完成全部结构的搜索。这个方法可以认为是前面两种方法的结合。而一般的局部搜索方法,在论文中提到:PC(parents_children),MB(makov blanket),这两个都是建立局部父子关系的方法,以及利用启发式搜索:MMPC,MBOR,并利用另一种启发搜索完成全局的结构学习。如上一篇博文中提到的MMHC,结合了MMPC和爬山算法。(详细论文见原文参考文献。) [MMHC:最大最小爬山法,是一种混合学习算法(本地搜索和搜索评分),目的是解决高维度问题,第一步是通过本地搜索方式(MMPC)建立起基本的框架,第二步用贪婪爬山法,对边进行定向。]

对于iMMPC,我的理解是,它在MMPC的基础上做了两步工作,其中一步是TOCO,这一步保存了搜索路径,并且有了一个增量学习的判定指标:通过遍历原来的路径,新数据如果契合路径,那么需要对结构进行改变。(这个判定指标是否可以有更好点的方法?)第二步是RSS,即reduced searchspace.这一步保存了原来学习的几个最优结构,最终在最优结构中重新进行选择,避免低分结构,搜索空间大为减少。

算法如图1所示:


图1

如论文中的图一目了然:

解释一下此图:左边是原来的学习算法,搜索空间很大,右边是新的搜索算法,每次搜索只有4个候选结构,减少了搜索空间。

这其实给我们提供了一些思路:其实从工作上来说,他并没有做很多工作,但是正是这些简单的想法,使得算法的效率大大提高。那么我们的工作可以从哪些方面展开呢?我有如下的一些想法:1.比如我们可以思考,如何建立可行的指标对结构是否需要更新进行判定,此论文中通过搜索路径的契合来判定,我觉得多少有些不是很妥当,(由于路径的搜索本身是局部最优算法,那么路径不一定准确)。2.如果判定到了需要改变,这个改变的方案如何?这个文章始终还是把原来的数据与新增数据进行了融合。能否不融合,只用新数据?进行局部结构的优化?而问题也在于,原来结构是基于原来数据的,抛开原来数据做优化如何保存住原来数据包含的信息??这应该是今后工作的重点。


http://www.niftyadmin.cn/n/880212.html

相关文章

python报错ImportError:Dll load failed:找不到指定模块

Python中安装外部的包可以通过在anacondaprompt中的命令使用Pip安装:如我要安装贝叶斯的包:pipinstall pgmpy。一般来说这是可以的,还有一种更简单的方法:在pycharm中,可以通过setting中,右边绿色的加号&am…

拒绝JavaScript,这三个CSS技巧你一定用的上​

本文介绍三个非常棒棒的CSS技巧,完全可以在你的项目中代替JavaScript,一起来看看这些技巧吧。 :active 伪类与CSS数据上报超实用超高频使用的 :empty 伪类用好 :only-child 伪类 1. :active伪类与CSS数据上报 如果想要知道两个按钮的点击率&#xff0…

关于搞了好几天的一个糟心的BUG

之前由于实验室的电脑抽风,里面的pgmpy模块出现了问题,搞了半天无果,加之实验室电脑实在是太渣,我打算转移战场到笔记本上。不幸的是,笔记本出现了和台式机一模一样的错误,我心里这个疼得滴血哟。接下来就是…

CSS变量实现暗黑模式,我的小铺页面已经支持

最近微信被苹果逼的开发了暗黑模式,越来越多的网站和应用开始支持了暗黑模式,许多人也喜欢为网站选择暗模式,也许他们更喜欢这样的外观,或者他们想让自己的眼睛免受疲劳。这篇文章将告诉你如何实现一个自动的 CSS 暗模式&#xff…

7个简单但棘手的JavaScript面试问题

如果您符合高级开发人员的资格,其工作涉及 JavaScript,那么在编码面试中很有可能会被问到棘手的问题。 遵循这个建议:“熟能生巧”。深入有规律地学习 JavaScript 将提高您的编码能力,并且可以提高您的面试技巧。 在这篇文章中,…

高效的编码工作流:我的VS Code设置

微信搜索【前端全栈开发者】关注这个脱发、摆摊、卖货、持续学习的程序员的公众号,第一时间阅读最新文章,会优先两天发表新文章。关注即可大礼包,送某网精品视频课程网盘资料,准能为你节省不少钱! 代码编辑器很多&…

改善React应用性能的5个建议

你的 React 应用是否感到有些迟缓?你是否害怕在 Chrome DevTools 中打开 “paint flash”?试试这 5 个性能技巧吧! 本文包含有关 React 开发的 5 条性能建议。 1.使用 memo 和 PureComponent 考虑下面这个简单的 React 应用程序,您是否认为…

HTML datalist了解一下,如何仅使用它创建自动完成输入女神小例子

小技巧系列 本文教你如何仅使用HTML创建自动完成输入&#xff0c;选择你心中的女神。 HTML datalist 要实现这个功能&#xff0c;首先要创建一个标签和输入框。 <label for"goddess">你的女神是谁&#xff1f;</label> <input type"text" i…