使用图自编码器来因果结构学习 《A Graph Autoencoder Approach to Causal Structure Learning》
abstract
NOTEARS方法将组合优化的结构学习问题转化为连续优化问题,使用梯度进行优化。
Introduction
Zheng 提出了一个 smooth characterization on acyclicity constraint。用h(x)描述有向无环性,且h(x)可导。
Gradient-based causal structure learning
现有 d 个节点 x_1,x_2,...,x_d,x \in R^l 。
假定数据的生成过程: $$ x_i = f_i(x_{pa(i)})+z_i $$ z \in R^l 是噪声。对于线性模型(SEM)来说,符合: $$ x_i = Xa_i+Z_i $$ A=[a_1,a_2,...,a_d]
有向无环约束写为: $$ tr(e^{A\bigodot A})-d=0 $$
graph autoencoder
计算图定义如下:
- X [d,l]
- MLP
- [d,hidden_dim]
- 与A相乘(线性变换)[d,d][d,hidden_dim]--->[d,hidden_dim]
- [d,hidden_dim]
- MLP
- [d,l]
Augmented Lagrangian Method
使用拉格朗日乘子法进行优化。使用的是一阶梯度。
优化一系列的拉格朗日函数L_{\rho,\alpha}^1,L_{\rho,\alpha}^2,...,L_{\rho,\alpha}^k
根据规则来更新 \rho,\alpha,两个量都会越变越大。
def train_loop():
for _ in range(k)
for _ in range(n):
# optimize current Lagragian function.
loss = loss_function(alpha,rho)
loss.backward()
optimizor.step()
update_alpha_and_rho()
评价
- 验证只使用了自定函数的合成数据,有可能对其他算法不公平;
- 充分利用NOTEARS的工作,good。