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. Shell 格式化输出printf、awk

    目录 Shell 文件的格式化与相关处理 printf.awk 格式化打印printf 案例.格式化输出文件内容 输出命令echo 案例 awk数据处理工具 语法格式 处理流程 AWK内置变量 条件 ...

  2. idea 启动debug的时候throw new ClassNotFoundException(name)

    idea 启动debug的时候throw new ClassNotFoundException(name) 启动debug就跳转到此界面 解决办法 这个方法只是忽略了抛异常的点,并没有真正解决问题.后 ...

  3. JVM结构详解

    JVM 结构详解 JVM 结构图 程序计数器(PC 寄存器) 程序计数器的定义 程序计数器是一块较小的内存空间,是当前线程正在执行的那条字节码指令的地址.若当前线程正在执行的是一个本地方法,那么此时程 ...

  4. Spark(十六)【SparkStreaming基本使用】

    目录 一. SparkStreaming简介 1. 相关术语 2. SparkStreaming概念 3. SparkStreaming架构 4. 背压机制 二. Dstream入门 1. WordC ...

  5. 快速挂起VIM以及调出被挂起的VIM的方法

    vim中开了多窗口后有时需要临时切出去执行shell指令,查看结果,在vim中用%很不方便查看结果,要切出去又要逐个小窗口:q,非常麻烦. 上网一查竟然有挂起的方法: 挂起:ctrl-z 调出:fg ...

  6. 哪里可以下载支付宝demo或者sdk

    http://club.alipay.com/read-htm-tid-9976972.html 这里有所有的demo和sdk包括移动产品的demo.在他的论坛里面呢 真心恶心啊.不放到主页.

  7. 【AWS】【Basis】基础概念

    1.基础服务类型: 1.1. 链接: 官方文档,很详细:https://www.amazonaws.cn/products/#compute_networking/?nc1=f_dr 这个是一个whi ...

  8. golang vendor

    安装参考 https://blog.csdn.net/huwh_/article/details/77169858 Go 1.5引入了vendor文件夹,其对语言使用,go命令没有任何影响.若某个路径 ...

  9. SSM框架整合后使用pagehelper实现分页功能

    一.导入pagehelper-5.1.10.jar和jsqlparser-3.1.jar两个jar包 二.配置pagehelper 2.1 在mybatis配置文件中配置 <plugins> ...

  10. 【JavaWeb】【学习】【过滤器】Filter 的简单应用

    实现效果 在编辑框中输入暗号:如果暗号正确,则跳转到正确页面:如果暗号错误,则跳转到错误界面. [入口界面] [错误界面] [成功界面] [项目结构] JSP文件 本练习有两个jsp页面 页面1:in ...