DAGs with NO TEARS: Continuous Optimization for Structure Learning

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{0,1}d×d来表示, 其中Aij=1 表示 node i 指向 node j. 进一步的, 我们想要表示有向无环图(DAG), 则A需要满足额外的性质, 保证无环.

现在的问题是, 有一堆观测数据XRn×d, 如何通过这些数据推测其(特征之间的)关系, 即对应的A.

主要内容

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

Xj=wjTX+zj,

其中

W=[w1|w2||wd]Rd,

z为随机的噪声.

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

Wij0Aij=1,Wij=0Aij=0.

故我们目标通常是:

minW(W;X)=12nXXWF2,s.t.A(W)D,

其中D表示有向无环图.

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

F(W;X)=(W;X)+λW1,

minWF(W;X)s.t.A(W)D.

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

h(W)=0,

满足

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

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

等价条件的推导

tr(IW)1=d

Proposition 1: 假设WR+d×dW<1, 则A(W)能够表示有向无环图当且仅当

tr(IW)1=d.

proof:

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

tr(Ak)=0tr(Wk)=0,k=1,

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

tr(IW)1=tr(k=0Wk)=tr(I)=d.

tr(Wk)0, 故

tr(IW)1=d

当且仅当

tr(Wk)=0.

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

tr(eW)=d

注: eA=I+k=1Akk!.

Proposition 2: 假设WR+d×d, 则A(W)能够表示有向无环图当且仅当

tr(eW)=d.

proof:

证明是类似的.

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

tr(Wk)=0

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

Proposition 3: 假设WR+d×d , 则A(W)能够表示有向无环图当且仅当

tr(Wk)=0,k=1,2,,d.

proof:

是显然的, 证明只需说明

tr(Wk)=0,k=1,2,,dtr(Wk),k1.

假设W的特征多项式为p(λ)=k=0dβkλk,βd=1, 则有

p(W)=k=0dβkWk=0.

进一步有

Wd=k=0d1βkWkWd+1=k=1dβkWk+1tr(Wd+1)=k=1dβktr(Wk+1)=0.

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

Corollary 1: 假设WR+d×d , 则A(W)能够表示有向无环图当且仅当

tr(I+W)d=d.

tr(eWW)=d

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

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

Theorem 1: 一个矩阵WRd×d, 则A(W) 能表示有向无环图当且仅当

tr(eWW)=d.

proof:

A(W)=A(WW).

tr(I+WW)d=d

Theorem 2: 一个矩阵WRd×d, 则A(W) 能表示有向无环图当且仅当

tr(I+WW)d=d.

注: WW前面加个系数也是没关系的.

性质的推导

故, 此时我们只需设置

h(W)=tr(eWW)d

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

dh(W)=dtr(eWW)=tr(deWW)=tr(dk=1Mkk!)=k=1tr(dMkk!)=k=0tr(MkdMk!)=tr(eWWd(WW))=tr(eWW(2WdW))=tr(eWW2WTdW)

h(W)=(eWW)TW.

注: 其中M=WW.

求解

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

minWmaxα(W;X)+λW1+ρ2|h(W)|2+αh(W),

具体求解算法如下:

image-20210527202839747

代码

原文代码

posted @   馒头and花卷  阅读(1928)  评论(2编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2019-05-27 Python Revisited Day 09 (调试、测试与Profiling)
点击右上角即可分享
微信分享提示