Masked Gradient-Based Causal Structure Learning
概
非线性, 自动地学习因果图.
主要内容
NOTEARS将有向无环图凝练成了易处理的条件, 本文将这种思想扩展至非线性的情况:
\]
其中\(X_i\)是因果图的结点, \(X_{\mathrm{pa}(i)}\)是其父结点, \(\epsilon\)是无关的噪声.
上述等式等价于
\]
\(A_i\)是邻接矩阵\(A=[A_1|A_2|\cdots|A_d] \in \{0, 1\}^{d\times d}\)的第i列, \(A_{ij}=1\)表示结点\(X_i\)直接作用于\(X_j\).
所以本文的目标就可以转换为如何估计\(A\)(实际上有了\(A\)也就知道了因果图了). \(A\)应当满足的条件:
- \(A\) 能够表示有向无环图;
- \(X_i\) 和 \(f(A_i \circ X)\)必须接近, 比如用常见的
\]
来度量.
直接处理非常麻烦, 首先对上面的问题进行放松, 等价于
\]
此时\(A = \mathcal{A}(W)\), 即
W_{ij} = 0 \rightarrow A_{ij} = 0.
\]
本文更进一步, 令
\]
\]
其中
\]
注: Gumbel.
此类操作能保证\(g_{\tau}(U) \in (0, 1)^{d\times d}\), 此时能够把\([g_{\tau}(U)]_{ij}\)看成是\(X_i\), \(X_j\)的关系的紧密型的度量, 在这种情况下
\]
或许会问, 为什么不用sigmoid而用一个这么麻烦的东西, 原因是当\(\tau\)足够小的时候(如本文取的0.2), \([g_{\tau}(U)]_{ij}\)非常接近\(0\)或者\(1\), 而用sigmoid, 作者发现这些值都接近0, 不能很好的模拟有向无环图, 故采用了这个方案.
接下来, 只需要满足
\]
即可保证\(g_{\tau}(U)\)能够代表有效无环图. 在实际中, 只需
\]
注: 期望是关于\(g\)的.
最终的目标
总结下来,
\mathrm{s.t.} \quad \mathbb{E}_g[\mathrm{tr}(e^{g_{\tau}(U)}) - d] \le \xi.
\]
注: \(\mathbb{E}\)是关于\(g\)的, \(n\)的观测数据的总数.
进一步地, 我们希望\(g_{\tau}\)是稀疏的, 故加上正则化项:
\mathrm{s.t.} \quad \mathbb{E}_g[\mathrm{tr}(e^{g_{\tau}(U)}) - d] \le \xi.
\]
利用augmented Lagrange multiplier, 可得
\mathbb{E}_g[\frac{1}{2n} \sum_{k=1}^n \mathcal{L}(x^{(k)}, f(g_{\tau}, x^{(k)}; \theta)) + \lambda \|g_{\tau}(U)\|_1 + \alpha h(U)] + \frac{\rho}{2} (\mathbb{E}[h(U)])^2,
\]
其中\(h(U):= \mathrm{tr}(e^{g_{\tau}(U)}) - d\).
采用分布更新:
\alpha^{t+1} = \alpha^t + \rho^t \mathbb{E}[h(U^{t+1})]; \\
\rho^{t+1} = \left \{
\begin{array}{ll}
\beta \rho^t, & \mathrm{if} \: \mathbb{E}[h(U^{t+1})] \ge \gamma \mathbb{E}[h(U^t)], \\
\rho^t, & \mathrm{otherwise}.
\end{array} \right .
\]
其中第一步使用Adam执行1000次迭代计算的.
文中还讨论了后处理的一些方法, 和\(A\)是否唯一.
代码
Masked Gradient-Based Causal Structure Learning的更多相关文章
- FITTING A MODEL VIA CLOSED-FORM EQUATIONS VS. GRADIENT DESCENT VS STOCHASTIC GRADIENT DESCENT VS MINI-BATCH LEARNING. WHAT IS THE DIFFERENCE?
FITTING A MODEL VIA CLOSED-FORM EQUATIONS VS. GRADIENT DESCENT VS STOCHASTIC GRADIENT DESCENT VS MIN ...
- 201904Online Human Action Recognition Based on Incremental Learning of Weighted Covariance Descriptors
论文标题:Online Human Action Recognition Based on Incremental Learning of Weighted Covariance Descriptor ...
- Survey of single-target visual tracking methods based on online learning 翻译
基于在线学习的单目标跟踪算法调研 摘要 视觉跟踪在计算机视觉和机器人学领域是一个流行和有挑战的话题.由于多种场景下出现的目标外貌和复杂环境变量的改变,先进的跟踪框架就有必要采用在线学习的原理.本论文简 ...
- DAG-GNN: DAG Structure Learning with Graph Neural Networks
目录 概 主要内容 代码 Yu Y., Chen J., Gao T. and Yu M. DAG-GNN: DAG structure learning with graph neural netw ...
- DAGs with NO TEARS: Continuous Optimization for Structure Learning
DAGs with NO TEARS: Continuous Optimization for Structure Learning 目录 DAGs with NO TEARS: Continuous ...
- 论文解读(SUBLIME)《Towards Unsupervised Deep Graph Structure Learning》
论文信息 论文标题:Towards Unsupervised Deep Graph Structure Learning论文作者:Yixin Liu, Yu Zheng, Daokun Zhang, ...
- 论文翻译:2020_A Robust and Cascaded Acoustic Echo Cancellation Based on Deep Learning
论文地址:https://indico2.conference4me.psnc.pl/event/35/contributions/3364/attachments/777/815/Thu-1-10- ...
- 机器学习 —— 概率图模型(Homework: Structure Learning)
概率图的学习真的要接近尾声了啊,了解的越多越发感受到它的强大.这周的作业本质上是data mining.从数据中学习PGM的结构和参数,完全使用数据驱动 —— No structure, No par ...
- Video Target Tracking Based on Online Learning—TLD单目标跟踪算法详解
视频目标跟踪问题分析 视频跟踪技术的主要目的是从复杂多变的的背景环境中准确提取相关的目标特征,准确地识别出跟踪目标,并且对目标的位置和姿态等信息精确地定位,为后续目标物体行为分析提供足 ...
随机推荐
- MySQL自我保护参数
上文(MySQL自我保护工具--pt-kill )提到用pt-kill工具来kill相关的会话,来达到保护数据库的目的,本文再通过修改数据库参数的方式达到阻断长时间运行的SQL的目的. 1.参数介绍 ...
- C语言把数字转换为字符串的函数
博主原文 C语言itoa()函数和atoi()函数详解(整数转字符C实现) C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. 1.int/float to st ...
- 3.6 String 与 切片&str的区别
The rust String is a growable, mutable, owned, UTF-8 encoded string type. &str ,切片,是按UTF-8编码对St ...
- IntentFilter,PendingIntent
1.当Intent在组件间传递时,组件如果想告知Android系统自己能够响应那些Intent,那么就需要用到IntentFilter对象. IntentFilter对象负责过滤掉组件无法响应和处理的 ...
- APICloud - 提交项目 点击右键 没有git这个选项
你们是不是也遇到过这个问题,吧项目检出来后,花了很久的时间,好不容易吧项目改完,提交的时候点击鼠标右键,发现git选项没有在里面了,找不到,但是这个问题也不是很常遇到,机率很小,下面我来告诉你们吧 原 ...
- pipeline配置前端项目
vue pipeline { agent { label 'master'} options { timestamps() disableConcurrentBuilds() buildDiscard ...
- 再识ret2syscall
当初学rop学到的ret2syscall,对int 0x80中断了解还不是很深,这次又复习了一遍.虽然很简单,但是还是学到了新东西.那么我们就从ret2syscall开始吧. IDA一打开的时候,就看 ...
- 从K8S部署示例进一步理解容器化编排技术的强大
概念 Kubernetes,也称为K8s,生产级别的容器编排系统,是一个用于自动化部署.扩展和管理容器化应用程序的开源系统.K8s是一个go语言开发,docker也是go语言开发,可见go语言的是未来 ...
- 如何高效地把Spring boot学到能干活的程度
Spring boot要学什么?要学到什么程度?以及相关的学习方法是什么?这些很难量化,但极好形容:需要学到能帮你找到一份工作的程度. 任何脱离工作脱离实际的学习,都是没有意义的.比如程序员运行通 ...
- Arduino对智能机器人进行简单编程
Arduino对智能机器人进行简单编程 #include "ESP8266.h" #define TRIG_PIN 5 #define ECHO_PIN A5 #define BE ...