pgm16
前面结束了关于 learning 部分一些粗浅的讨论,我们大概明白了一些 learning 中 common sense/techniques。剩下的部分我们分为 causality 和 utility 两部分。Koller 的课程上面稍微涉及了一些后者的东西,不过觉得前者也挺有意思的,顺便了解一些初步的概念和知识吧。
和前面的一些 probabilistic query 不同的是 causality 存在下面两种 query:
- intervention query:看起来和 conditioning 类似,但是存在 agent 主动的干预某些变量的值,因此可能完全改变整个后果,应用于诊断、治疗、市场、政策的制定和科学发现
 - counterfactual query:what-if 的概念,即如果改变过去某个事实,会有什么情况随之变化,应用于 legal liability cass、治疗和诊断
 
这些场景下我们往往会观察到 r.v.s 的 correlation,但是如果要判断两者是否因为 causality 导致的却很困难:
- 存在一个共同的原因导致两个现象的出现,这两个现象就会呈现 correlation
 - 存在某个隐变量导致的 correlation
 - 由于采样的 bias 导致的 correlation
 
正是由于这种错综复杂的可能性,要判断以上两种作用导致的变化正是后文处理的重点。为了表述 intervention,我们常使用 mutilated network:即去掉 parent 到 intervene 节点的关系然后 condition 在这个节点的给定值上。这样做的理由很明显,我们设定这个变量的值并不是自然的,而是人为的,因此此时进行推断的并不是在一个 marginalize 之后网络上!可以参看 Simpson’s paradox 体会一下这个微妙的差异。
intervention query
处理 intervention query 的一种策略是在以上 causal model 上进行扩展,如果某些变量可能被人为指定,我们可以对其进行扩展,用  替代原有的 
,这时或者取给定值(不受 parent 影响),或者取不定值(受到 parent 影响)。我们在这个网络上使用下面三条规则可以简化 intervention query,
- 如果 
被
与
d-sep,则
,即 d-sep 仍保持 r.v.s 的独立性
 - 如果 
被
与
d-sep,则
,即 d-sep 一个 augmented r.v. 的赋值且该 r.v. 在 sep 里则等价于 condition 在这个赋值上
 - 如果 
被
与
d-sep,则
,即 d-sep 一个 augmented r.v. 的赋值且该 r.v. 不在 sep 里则等价于与此 r.v. 无关
 
利用这三条规则可以将一些复杂的 query 简化。如当一个 r.v. 满足 back-door criterion 时(对  此 r.v. 阻挡了所有 
 的 back-door trail),我们可以 sum out 这个 r.v.,结合这些方式就能求解。比如前面 Simpson’s paradox 如果求 
,我们就可以简单的利用 
。
counterfactual query
这部分其实没看懂,似乎为了解决这类 query 引入了所谓 response variable 和 functional causal model,这类 model 仅仅关心所谓 endogenous variables 而不关心 exogenous variables。利用这些概念定义了 counterfactual twinned network,在上面求解 query。
causal model 的学习
但是其实这是对 BN 做 learning,参数学习几乎一样,结构学习比较麻烦,因为 BN 的 structure learning 只能得到 I-equivalent 的结构,并不能分清楚 causal relationship,即便我们拥有任意多的数据。实际操作中,我们常用 Bayesian model averaging 选择后验概率高的模型。
另外能做的可能只是 interventional data,存在隐变量的时候就会非常麻烦,而 functional causal model 由于函数形式不定也会变得难以处理。
感觉这部分书上完全以例子为主,理论实在写得太简略,看完之后不知重点,也可能是对此花费时间太少的缘故吧,看来只能等以后有空再看这个相关的材料了。
——————
And God was with the lad; and he grew, and dwelled in the wilderness, and became an archer.
pgm16的更多相关文章
随机推荐
- storm集成kafka的应用,从kafka读取,写入kafka
			
storm集成kafka的应用,从kafka读取,写入kafka by 小闪电 0前言 storm的主要作用是进行流式的实时计算,对于一直产生的数据流处理是非常迅速的,然而大部分数据并不是均匀的数据流 ...
 - CentOS7.4,anaconda3,python3.6,tensorflow环境下gdal的编译和问题解决
			
CentOS7.4,anaconda3,python3.6,tensorflow环境下gdal的编译和问题解决 这是gdal可能会用到的额外的包,按自己需要先提前编译. 这里的话我主要用了proj,L ...
 - SQLSERVER 中sp_who, sp_who2和sp_who3(转载)
			
sp_who可以返回如下信息: (可选参数LoginName, 或active代表活动会话数)Spid (系统进程ID)status (进程状态)loginame (用户登录名)hostname(用户 ...
 - 代码无错就是优?简单工厂模式 C#
			
还是那几句话: 学无止境,精益求精 十年河东,十年河西,莫欺少年穷 学历代表你的过去,能力代表你的现在,学习代表你的将来 废话不多说,直接进入正题: 现在给你一道面试题,如下: 请用C++,C#,Ja ...
 - 【SQL】四种排序开窗函数
			
一 .简单了解什么是开窗函数 什么是开窗函数,开窗函数有什么作用,特征是什么? 所谓开窗函数就是定义一个行为列,简单讲,就是在你查询的结果上,直接多出一列值(可以是聚合值或是排序号),特征就是带有ov ...
 - 基于vue2.0 +vuex+ element-ui后台管理系统:包括本地开发调试详细步骤
			
效果演示地址, github地址: demo演示: 1.About 此项目是 vue2.0 + element-ui + node+mongodb 构建的后台管理系统,所有的数据都是从 ...
 - [尝鲜]妈妈再也不用担心 dotnet core 程序发布了: .NET Core Global Tools
			
什么是 .NET Core Global Tools? Global Tools是.NET Core 2.1 中一个初次出现的特性.Global Tools提供了一种方法,让开发人员编写的.NET C ...
 - GNU构建系统和AutoTools
			
注:本篇博客是阅读文末[参考博客]的讲解所写,内容非原创,仅是学习笔记 1. 概述2. 不同视角的程序构建2.1 用户视角2.2 开发者视角3. 导图图片4. configure选项参考博客 1. 概 ...
 - JS_各种排序方法
			
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大,则应采 ...
 - Python 可调用对象
			
除了用户定义的函数,调用运算符(即 ())还可以应用到其他对象上.如果想判断对象能否调用,可以使用内置的 callable() 函数.Python 数据模型文档列出了 7 种可调用对象.(1)用户定义 ...