DAGs with NO TEARS: Continuous Optimization for Structure Learning

Zheng X., Aragam B., Ravikumar P. and Xing E. DAGs with NO TEARS: Continuous Optimization for Structure Learning. In Advances in Neural Information Processing Systems (NIPS), 2018.

有向图可以用邻接矩阵\(A \in \{0, 1\}^{d \times d}\)来表示, 其中\(A_{ij} = 1\) 表示 node \(i\) 指向 node \(j\). 进一步的, 我们想要表示有向无环图(DAG), 则\(A\)需要满足额外的性质, 保证无环.

现在的问题是, 有一堆观测数据\(X \in \mathbb{R}^{n \times d}\), 如何通过这些数据推测其(特征之间的)关系, 即对应的\(A\).

主要内容

首先, 假设特征之间满足一个线性关系:

\[X_j = w_j^T X + z_j,
\]

其中

\[W = [w_1|w_2|\cdots|w_d] \in \mathbb{R}^{d},
\]

\(z\)为随机的噪声.

通过\(W\)可以推出相应的\(A=\mathcal{A}(W)\), 即

\[W_{ij} \not = 0 \Leftrightarrow A_{ij} = 1, W_{ij} =0 \Leftrightarrow A_{ij} = 0.
\]

故我们目标通常是:

\[\min_{W} \quad \ell(W;X) = \frac{1}{2n}\|X - XW\|_F^2, \\
\mathrm{s.t.} \quad \mathcal{A}(W) \in \mathbb{D},
\]

其中\(\mathbb{D}\)表示有向无环图.

进一步地, 因为我们希望\(W\)是一个系数的矩阵(否则断然不是DAG), 故

\[F(W;X) = \ell(W;X) + \lambda \|W\|_1,
\]

\[\min_W \quad F(W;X) \\
\mathrm{s.t.} \quad \mathcal{A}(W) \in \mathbb{D}.
\]

显然现在的关键是如何处理\(\mathcal{A}(W) \in \mathbb{D}\)这个条件, 以前的方法通常需要复杂的运算, 本文提出一种等价的条件

\[h(W) = 0,
\]

满足

  1. \(h(W)= 0\)当且仅当\(\mathcal{A}(W) \in \mathbb{D}\);
  2. \(h(W)\)越小, 说明\(\mathcal{A}(W)\)越接近无环图;
  3. \(h(W)\)是一个光滑函数;
  4. \(h(W)\)便于求导.

显然1是期望的, 2可以用于判断所得的\(W\)的优劣, 3, 4便于我们用数值方法求解.

等价条件的推导

\(\mathrm{tr}(I-W)^{-1} = d\)

Proposition 1: 假设\(W \in \mathbb{R}_+^{d \times d}\) 且 \(\|W\| < 1\), 则\(\mathcal{A}(W)\)能够表示有向无环图当且仅当

\[\mathrm{tr}(I - W)^{-1} = d.
\]

proof:

\(A = \mathcal{A}(W)\)能够表示有向无环图, 当且仅当

\[\mathrm{tr}(A^k) = 0 \Leftrightarrow \mathrm{tr} (W^k) = 0, \forall\: k=1,\cdots
\]

\(\Rightarrow\)

由于\(\|W\| < 1\)(最大奇异值小于1), 故

\[\mathrm{tr}(I-W)^{-1} = \mathrm{tr}(\sum_{k=0} W^k) = \mathrm{tr}(I) = d.
\]

\(\Leftarrow\)

\(\mathrm{tr}(W^k) \ge 0\), 故

\[\mathrm{tr}(I-W)^{-1} = d
\]

当且仅当

\[\mathrm{tr}(W^k) = 0.
\]

注: \(\|W\| < 1\)这个条件并不容易满足.

\(\mathrm{tr}(e^W)=d\)

注: \(e^A = I + \sum_{k=1} \frac{A^k}{k!}\).

Proposition 2: 假设\(W \in \mathbb{R}_+^{d \times d}\), 则\(\mathcal{A}(W)\)能够表示有向无环图当且仅当

\[\mathrm{tr}(e^W) = d.
\]

proof:

证明是类似的.

注: 此时对\(W\)的最大奇异值没有要求.

\(\mathrm{tr}(W^k) = 0\)

这部分的证明可能应该归属于DAG-GNN.

Proposition 3: 假设\(W \in \mathbb{R}_+^{d \times d}\) , 则\(\mathcal{A}(W)\)能够表示有向无环图当且仅当

\[\mathrm{tr}(W^k) = 0, \: k=1,2,\cdots, d.
\]

proof:

\(\Rightarrow\)是显然的, 证明\(\Rightarrow\)只需说明

\[\mathrm{tr}(W^k)=0, \: k=1,2,\cdots, d \Rightarrow \mathrm{tr}(W^k), \: k\ge 1.
\]

假设\(W\)的特征多项式为\(p(\lambda) = \sum_{k=0}^d \beta_k \lambda^k, \beta_d=1\), 则有

\[p(W) = \sum_{k=0}^d \beta_k W^k = 0.
\]

进一步有

\[W^{d} = -\sum_{k=0}^{d-1} \beta_k W^k \Rightarrow W^{d+1} = -\sum_{k=1}^d \beta_k W^{k+1} \Rightarrow \mathrm{tr}(W^{d+1}) = -\sum_{k=1}^d \beta_k \mathrm{tr}(W^{k+1}) = 0.
\]

由归纳假设可知结论成立.

Corollary 1: 假设\(W \in \mathbb{R}_+^{d \times d}\) , 则\(\mathcal{A}(W)\)能够表示有向无环图当且仅当

\[\mathrm{tr}(I+W)^d=d.
\]

\(\mathrm{tr}(e^{W \circ W}) =d\)

注: \(\circ\) 表示哈达玛积, 即对应元素相乘.

上面依然要求\(W\)各元素大于0, 一个好的办法是:

Theorem 1: 一个矩阵\(W \in \mathbb{R}^{d \times d}\), 则\(\mathcal{A}(W)\) 能表示有向无环图当且仅当

\[\mathrm{tr}(e^{W \circ W}) =d.
\]

proof:

\(\mathcal{A}(W)=\mathcal{A}(W \circ W)\).

\(\mathrm{tr}(I + W \circ W)^d =d\)

Theorem 2: 一个矩阵\(W \in \mathbb{R}^{d \times d}\), 则\(\mathcal{A}(W)\) 能表示有向无环图当且仅当

\[\mathrm{tr}(I + W \circ W)^d =d.
\]

注: \(W \circ W\)前面加个系数也是没关系的.

性质的推导

故, 此时我们只需设置

\[h(W) = \mathrm{tr}(e^{W\circ W}) - d
\]

显然满足1,2,3, 接下来我们推导其梯度

\[\begin{array}{ll}
\mathrm{d}h(W)
&= \mathrm{d}\: \mathrm{tr} (e^{W\circ W}) \\
&= \mathrm{tr} (\mathrm{d}e^{W\circ W}) \\
&= \mathrm{tr} (\mathrm{d}\sum_{k=1} \frac{M^k}{k!}) \\
&=\sum_{k=1} \mathrm{tr} ( \frac{\mathrm{d}M^k}{k!}) \\
&=\sum_{k=0} \mathrm{tr} ( \frac{M^k \mathrm{d}M}{k!}) \\
&= \mathrm{tr}(e^{W\circ W} \cdot \mathrm{d}(W\circ W)) \\
&= \mathrm{tr}(e^{W\circ W} \cdot (2W \circ \mathrm{d} W)) \\
&= \mathrm{tr}(e^{W\circ W} \circ 2W^T \cdot \mathrm{d} W) \\
\end{array}
\]

\[\nabla h(W) = (e^{W\circ W})^T \circ W.
\]

注: 其中\(M =W \circ W\).

求解

利用augmented Lagrangian转换为(这一块不是很懂, 但只是数值求解的东西, 不影响理解)

\[\min_W \max_{\alpha}\quad \ell (W;X) +\lambda \|W\|_1 + \frac{\rho}{2}|h(W)|^2 + \alpha h(W),
\]

具体求解算法如下:

代码

原文代码

DAGs with NO TEARS: Continuous Optimization for Structure Learning的更多相关文章

  1. 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 ...

  2. Masked Gradient-Based Causal Structure Learning

    目录 概 主要内容 最终的目标 代码 Ng I., Fang Z., Zhu S., Chen Z. and Wang J. Masked Gradient-Based Causal Structur ...

  3. Gradient-based Hyperparameter Optimization through Reversible Learning

    目录 概 主要内容 算法 finite precision arithmic 实验 Maclaurin D, Duvenaud D, Adams R P, et al. Gradient-based ...

  4. 论文解读(SUBLIME)《Towards Unsupervised Deep Graph Structure Learning》

    论文信息 论文标题:Towards Unsupervised Deep Graph Structure Learning论文作者:Yixin Liu, Yu Zheng, Daokun Zhang, ...

  5. 机器学习 —— 概率图模型(Homework: Structure Learning)

    概率图的学习真的要接近尾声了啊,了解的越多越发感受到它的强大.这周的作业本质上是data mining.从数据中学习PGM的结构和参数,完全使用数据驱动 —— No structure, No par ...

  6. Federated Optimization: Distributed Machine Learning for On-Device Intelligence

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:1610.02527v1 [cs.LG] 8 Oct 2016 坐标下降法:https://blog.csdn.net/qq_ ...

  7. A novel multi-swarm particle swarm optimization with dynamic learning strategy(一种新颖的具有动态学习策略的多种群粒子群优化算法)

    1.核心 在每个子种群的粒子被划分为普通粒子(ordinary particles)和交流粒子(communication particles),在每次迭代过程中,不同的粒子执行不同的进化操作.普通粒 ...

  8. ADAM : A METHOD FOR STOCHASTIC OPTIMIZATION

    目录 概 主要内容 算法 选择合适的参数 一些别的优化算法 AdaMax 理论 代码 Kingma D P, Ba J. Adam: A Method for Stochastic Optimizat ...

  9. Loss Landscape Sightseeing with Multi-Point Optimization

    目录 概 主要内容 代码 Skorokhodov I, Burtsev M. Loss Landscape Sightseeing with Multi-Point Optimization.[J]. ...

随机推荐

  1. MySQL8.0配置文件详解

    mysql8.0配置文件一.关键配置1. 配置文件的位置 MySQL配置文件 /etc/my.cnf 或者 /etc/my.cnf.d/server.cnf几个关键的文件:.pid文件,记录了进程id ...

  2. 紧张 + 刺激,源自一次 OOM 历险

    作者 | 蚂蝗 背景 ​ Erda 是集 DevOps.微服务治理.多云管理以及快数据管理等多功能的开源一站式企业数字化平台.其中,在 DevOps 模块中,不仅有 CI/CD.项目协同等功能,同时还 ...

  3. 4.3 rust func closure

    fn add_one_v1 (x: u32) -> u32 { x + 1 } let add_one_v2 = |x: u32| -> u32 { x + 1 }; let add_on ...

  4. awk的基本用法

    最近遇到导入的csv文件首行为日期,但需要将日期作为列导入到数据库中,直接使用ctl文件好像无法实现,了解到awk这个强大的命令. 导入的CSV文件除了首行为日期,其他的都是格式相同的.需要将首行单独 ...

  5. Git上项目代码拉到本地方法

    1.先在本地打开workspace文件夹,或者自定义的文件夹,用来保存项目代码的地方. 2.然后登陆GitHub账号,点击复制项目路径 3.在刚才文件夹下空白处点击鼠标右键,打开Git窗口 4.在以下 ...

  6. 【Linux】【Basis】块存储,文件存储,对象存储

    1. 块存储: 定义:这种接口通常以QEMU Driver或者Kernel Module的方式存在,这种接口需要实现Linux的Block Device的接口或者QEMU提供的Block Driver ...

  7. vue-cli4脚手架搭建二

    vue-cli4脚手架搭建一 vue create vue3 cd vue3 yarn serve http://localhost:8080/#/ main.js文件 import Vue from ...

  8. Synchronized深度解析

    概览: 简介:作用.地位.不控制并发的影响 用法:对象锁和类锁 多线程访问同步方法的7种情况 性质:可重入.不可中断 原理:加解锁原理.可重入原理.可见性原理 缺陷:效率低.不够灵活.无法预判是否成功 ...

  9. springmvc资源文件访问不到,undefined,jsp引用js文件目录

    资源访问失败: 该模块下springmvc.xml文件中添加配置: <mvc:resources mapping="/js/**" location="/js/&q ...

  10. 【Matlab】线性调频信号LFM 仿真

    [知识点] 生成序列 i = a:step:b 举例: i = 1:1:9 画图(子图) subplot(m,n,p)或者subplot(m n p) 总结起来就是,画一个m行n列的图. p表示在第p ...