【因果学习】贝叶斯网络结构学习方法

2023-11-08

  随机对照试验是发现因果关系的黄金准则,然而现实世界中很多问题往往由于道德伦理的原因不允许我们设置干预进行试验,这就引发了在观测数据上学习因果关系的需求。贝叶斯网络是概率论与图论相结合的产物,它用图论的方式直观地表达各变量之间的因果关系,为多个变量之间的复杂依赖关系提供了紧凑有效、简洁直观的统一框架,是表示因果关系的常用工具。当前贝叶斯网络因果图结构学习方法主要分为基于约束的方法、基于评分的方法以及混合学习方法。从观测数据中学习贝叶斯网络的本质在于利用统计学方法建立图形模型,以拟合观测数据,通常需要做出以下假设:
(1)因果充分性假设:假定在给定观测数据上不存在无法观测到的隐藏变量,即排除对确定因果关系造成干扰的隐藏混杂因子。
(2)因果忠实性假设:若网络G蕴含且仅蕴含数据分布P上的所有条件独立性,则G与P是相互忠实的;忠实性假设保证了可以采用G的图结构和条件概率分布来描述概率分布P所蕴含的条件独立性。
(3)因果马尔科夫假设:对网络中任一变量,若其父节点取值确定,则该变量条件独立与其他非后裔节点,该假设确保贝叶斯网络中任意变量及其非后裔节点之间存在D-分离。

基于约束的方法

  基于约束的学习算法[5]通过变量之间的条件独立性来判断特定结构的存在性,测试条件独立性的方法通常采用统计或者信息论的度量来实现,故其也称为基于条件独立性的方法。
  此类算法一般从无向完全连接图出发,通过条件独立性测试中的置信度来排除噪声数据引起的虚假因果关系从而去除部分无向边,然后基于奥卡姆剃刀准则利用V-结构确定因果方向,定向的原则是网络中不产生回路和新的V-结构。常用的条件独立性测试为基于统计分析的卡方检验或是基于信息论的互信息检验方法。
  算法的原始思想是针对每对节点从剩余节点中寻找二者的有向分离集合,对于一个有n个节点的网络来说,每对节点共需进行最多2^(n-2)次条件测试,不同的算法主要区别于进行条件独立测试的顺序不同,通过排除不可能的条件集来降低算法复杂度。典型的算法包括PC算法、IC算法等。基于约束的算法在原理上更接近于贝叶斯网的语义特性,它的效率高,并在实际中获得较好的效果,其缺点是这类方法存在无法判断的因果关系方向,即存在马尔科夫等价类难题。

基于评分的方法

  基于评分的方法通过组合优化来学习因果图结构,首先定义评分函数来量化贝叶斯网络与给定数据分布的拟合程度,通过搜索算法找到与数据拟合最好的图结构,评分函数通常满足两大性质:
(1)可分解性:网络的评分可分解为各个节点与其父节点之间的评分的和。可分解性有效提高贝叶斯网络学习的速度,尤其在爬山算法等局部搜索算法中。
(2)评分等价性:由于同一个马尔科夫等价类中的DAG在统计上是不可区分的,因此由统计学方法得到的评分函数对于马尔科夫等价的网络应具有相同的评分值。
常用的评分函数有BIC,BD、MDL等。
  搜索策略是为了搜索某个评分函数下分值最高的网络结构,当节点的个数大于1时,寻找最优的模型是NP问题,所以常常采用启发式搜索而非暴力搜索。最基本的方法是贪婪搜索算法,该算法从一个初始模型(可以是空图、随机初始化的图或是利用先验知识人工构建的图)出发开始搜索,搜索的每一步首先利用搜索算子对当前模型进行局部更新,得到一系列候选模型,然后计算每个候选模型的评分,将其中最优模型与当前模型进行比较,若最优候选模型评分更高,则在它基础上进行下一次搜索,反之停止搜索返回当前模型。此外还有FGES算法、爬山算法等。
  基于评分的方法避免了高阶条件测试,可以得到较高的精度,但是复杂性较高,运行时间长且易陷入局部最优。

混合方法

  混合方法融合上述两种方法来弥补它们各自的缺点,首先利用条件独立性检验来缩小候选图搜索空间的复杂度,接着使用基于评分的方法来找到最佳的网络结构。由于充分利用了基于约束的方法的效率高的特点,并采用评分方法有效避免了容易出现谬误的高阶条件测试,因此能够有效地将计算资源用于搜索解空间最有潜力的区域,进而提高网络学习的精度和效率。典型的混合方法包括最大最小爬山算法、稀疏候选算法等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【因果学习】贝叶斯网络结构学习方法 的相关文章

  • 【Bugs】解决报错CondaValueError- prefix already exists

    Bugs CondaValueError prefix already exists 1 问题情景 在conda create n ur env name python 3 7的时候报错 WARNING A directory alread
  • Unity游戏性能分析最终指南 02

    设置每帧时间预算 帧率 fps 并不是衡量游戏稳定体验的理想指标 考虑以下情况 在运行时的前0 75s内渲染了59帧 然后接下来的1帧需要0 25s才能渲染完毕 虽然是60fps 但实际上会让玩家感觉卡顿 这是需要设置帧时间预算的重要原因之
  • 数据分析师从业必问的5个问题~

    写在前面 经常有小伙伴问船长一些数据分析从业的问题 类似如何转行 毕业如何择业 如何学习成为数据分析师 今天就抽空总结了一下大家入行数据分析的问题 基本囊括在以下5个问题中 下面5个问题将解答你的困惑 也可能在后续的面试中问到 另外我为你准
  • 23062QTday2

    完善登录框 点击登录按钮后 判断账号 admin 和密码 123456 是否一致 如果匹配失败 则弹出错误对话框 文本内容 账号密码不匹配 是否重新登录 给定两个按钮ok和cancel 点击ok后 会清除密码框中的内容 继续进行登录 如果点
  • CondaValueError: Malformed version string ‘~‘: invalid character(s)

    创建python3 6环境 conda create n py36 python 3 6 anaconda和 升级conda环境 conda update conda和conda upgrade n base c defaults over

随机推荐

  • Unity3DAI行为------避开障碍物简单实现

    public float speed 20 0f public float mass 5 0f public float force 50 0f public float minimumDistToAvoid 20 0f private f
  • 键盘的测试点

  • ajax tottenham,Tottenham end Ajax dream in injury-time, reach first Champions League final

    Video PlayerClose AMSTERDAM May 9 Xinhua Tottenham Hotspur set up a Champions League final against Liverpool after beati
  • Netty介绍(一)————为什么使用Netty

    Netty的简单介绍 Netty 是一个 NIO client server 客户端服务器 框架 使用 Netty 可以快速开发网络应用 例如服务器和客户 端协议 Netty 提供了一种新的方式来使开发网络应用程序 这种新的方式使得它很容易
  • 记一次arm交叉编译的cmake写法

    1 背景 用cmake交叉编译高通4G模组Linux应用代码 2 问题 之前都是参考网上各种所谓的cmake交叉编译写法 例如某乎上config cmake是这样写的 set CMAKE SYSTEM NAME Linux set TOOL
  • vue2的文档

    三 Vue 2 1 Vue 基础 1 环境准备 安装脚手架 npm install g vue cli g 参数表示全局安装 这样在任意目录都可以使用 vue 脚本创建项目 创建项目 vue ui 使用图形向导来创建 vue 项目 如下图
  • C 修改文件或文件夹的权限,为指定用户 用户组添加完全控制权限

    分享一下我老师大神的人工智能教程 零基础 通俗易懂 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 造福人民 实现我们中华民族伟大复兴 C 修改文件或文件夹的权限 为指定用户 用户组添加完全
  • 阿里一道Java并发面试题 (详细分析篇)

    说明 前天分享了一篇关于阿里的 Java常见疑惑和陷阱 的文章 有人说这个很早就有了 可能我才注意到 看完之后发现内容非常不错 有几个我也是需要停顿下想想 题目 我个人一直认为 网络 并发相关的知识 相对其他一些编程知识点更难一些 主要是不
  • Dingo + Laravel + JWT + Entrust + memcache 实现API设计

    Dingo Laravel JWT Entrust memcache 实现API设计 Dingo Api 是一个为laravel设计的用于API开发的开源包 规范和简化了Api的设计 JWT 即 Json Web Token 是一种新的用于
  • 将类模板做为参数(类模板中使用)

    将类模板做为参数 类模板中使用 这种方式只在类模板中使用 函数模板不能使用这种方法 将模板名做为一种特殊的数据类型 实例化对象的时候 使用模板名做为参数 传递给模板 下面例子中 数组和链表都是线性表 数组和链表自身为了适用不同的数据类型参数
  • 代理IP与Socks5代理:跨界电商智能爬虫与出海之道

    跨界电商正成为全球市场的关键驱动力 而代理IP和Socks5代理则为其提供了技术支持 本文将深入研究这两种代理技术在跨界电商 爬虫和出海战略中的重要作用 引言 介绍跨界电商的崛起和全球化趋势 引出代理IP和Socks5代理的重要性以及本文的
  • 魔兽争霸3宽屏显示器适配

    魔兽争霸只提供 4 3 的分辨率选择 800 600 1024 768 等等 如果显示器是 16 9 或 16 10 的话就有点儿蛋疼了 两边都会留出黑边来 可以在 windows 下面双击执行如下的文件来解决这个问题 wide scree
  • Atcoder Beginner Contest 291

    A camel Case AC代码 include
  • 屏蔽预训练模型的权重。 只训练最后一层的全连接的权重。_Soft-Masked BERT 一种新的中文纠错模型...

    今年 字节AI Lab与复旦大学合作提出了一种中文文本纠错模型 Soft Masked BERT 1 这项工作发表在了ACL 2020上 由于论文并没有开源代码 所以我将对这篇论文进行解读与复现 问题提出 中文文本纠错是一项挑战性的任务 因
  • Python pandas 排序出现'DataFrame' object has no attribute 'sort'错误

    目标 对dataframe一列时间字符串做升序排列 时间字符串格式 2020 03 23 06 20 00 00 00 df sort MTS ascending True 运行提示 AttributeError DataFrame obj
  • CNN训练细节:卷积核分解

    背景 最近看到一些分解卷积层的方法 比如三个3 3的卷积层替代一个7 7的卷积层 或者两个3乘3的卷积层替代一个5 5的卷积层 本文主要是个人粗浅的分析下原因 一 两个3乘3的卷积层替代一个5 5的卷积层 经典原理网图 如图所示 对于两层3
  • 蓝桥杯校内模拟赛题解

    蓝桥杯校内模拟赛题解 引言 本题解非官方满分题解 因此 可能存在下列问题 题意理解错误 导致答案错误 代码中存在一些问题 导致答案错误 算法复杂度的分析有误 导致不能在规定时间内得出结果 由于水平受限 本篇题解全部由 C 语言完成 题解中的
  • 自我管理的重要模型

    文章目录 前言 一 精力管理 自我管理的新旧理念 二 人类精力金字塔 精力管理四个层次 体能 情绪 思维 精神 三 运动 人类为什么喜欢躺平 每天怎么简单高效的完成20分钟的运动量 四 钟摆运动 钟摆运动对工作最大的指导意义 刻意休息 在这
  • Java 到 Go 过渡:基于 Go 开发分布式配置中心的实践

    目录 一 简介 二 Java 实现 三 Go 实现 四 从 Java 过渡到 Go 五 总结 在今天的技术世界中 从一种编程语言转向另一种是很常见的 特别是对于在企业级应用中具有广泛应用的语言如 Java 转向轻量级 效率更高的 Go 语言
  • 【因果学习】贝叶斯网络结构学习方法

    随机对照试验是发现因果关系的黄金准则 然而现实世界中很多问题往往由于道德伦理的原因不允许我们设置干预进行试验 这就引发了在观测数据上学习因果关系的需求 贝叶斯网络是概率论与图论相结合的产物 它用图论的方式直观地表达各变量之间的因果关系 为多