Wasserstein Generative Adversarial Networks

 

前置知识

  1. mode collaps.
  2. Gumbel-Softmax.
  3. GAN.
  4. WGAN.
  5. Improved WGAN.
  6. Relational-GCN.
  7. DDCP.
  8. Self-connection.
  9. mode collapse.
  10. diverge.

理论分析

解决什么问题?

根据所需的特性生成分子结构。

Implicit、likelihood-free、work on graph-structured data、GAN combine with RL、

如何表示分子结构?

无向图。原子 = 节点 = T维one-hot向量表示是什么原子。化学键 = 边 = Y维one-hot向量表示是什么类型的化学键。1个含有 N 个节点的分子,用1个 [N, T] 的张量表示所有节点,用1个 [N, N, Y] 的张量表示所有化学键。

如何解决离散化表示问题?

Gumbel-Softmax 对离散变量再参数化

如何解决节点顺序敏感问题?

图卷积 + 转置平均。

如何限制生成具有所需特性的分子结构?

强化学习。deterministic policy。DDPG。generator 作为 environmental state ,生成的分子图 $G$ 作为 action ,reward function $R_\psi(G)$ ,损失函数是 reward 与专业软件打分的均方差。同时,训练 generator 目标是最大化 reward 。

generator 如何 combine 两个损失?

$L(\theta)=\lambda{\cdot}L_{WGAN}+(1-\lambda){\cdot}L_{RL}$

网络结构

Generator - MLP

标准正态分布 中采样得到长度为 8 的向量,输入 generator

第一层 dense 128,tanh;第二层 dense 256,tanh;第三层 dense 512,tanh;得到 output

output -> 边层: dense $N{\cdot}N{\cdot}Y$ -> reshape [N, N, Y] -> 转置平均,得到 边张量

output -> 点层: dense $N{\cdot}T$ -> reshape [N, T],得到 点张量

这两个张量中的数值都是概率表示。从中采样得到相同大小的稀疏张量,就是一个表示分子结构的图。

解决离散化表示问题的三种处理方法

$f(s)=(s-\ln(-\ln(t)))/temperature$ ,其中,$t$ 是与 $s$ shape 相同、从均匀分布中采样得到的张量;$temperature=1.0$

  1. 正向反向都使用 $softmax(s)$
  2. 正向反向都使用 $softmax(f(s))$
  3. 正向使用 $one_hot(argmax(f(s)))$ ,反向使用 $softmax(f(s))$
损失函数

生成部分: $L_{WGAN}=min(\mathbb{E}_{z~p(z)}[log(1-D(G(\vec z)))]$

强化部分: $L_{RL}=max(\mathbb{E}_{z~p(z)}[Q(G(\vec z))-baseline])$

优化器

Adam

Discriminator - RGCN、Impoved WGAN

输入 [N, T] 和 [N, N, Y] 的张量,输出 1 个标量。

图卷积部分

第一层,RGCN 128,tanh;第二层,RGCN 64,tanh;得到 output

图聚合部分

output 与 点张量 按第-1维拼接,

i = dense 128,sigmoid;j = dense 128,tanh;reduce_sum(i * j, 1), tanh;dense 128,tanh;dense 64,tanh ;得到 feature 。再dense 1,得到 logit ,表示 输入的图是真图的概率

损失函数
$max( \mathbb{E}{x~\mathbb{P}_r}[D(\vec x)]-\mathbb{E}{z~p(z)}[D(G(\vec z))] +\lambda\cdot\mathbb{E}_{x~\mathbb{P}_r}[(   \nabla_xD(\vec x)   -1)^2])$
优化器

Adam

Q Network - DDCP

输入 [N, T] 和 [N, N, Y] 的张量,输出 1 个标量。

结构同 Discriminator ,最后多一个 sigmoid ,得到 reward

损失函数
$min(\mathbb{E}_{x~\mathbb{P}_r}[ Q(\vec x)-R(\vec x) ]+\mathbb{E}_{z~p(z)}[ Q(G(\vec z))-R(Q(\vec z)) ])$
优化器

Adam

代码实现

实验结论

Q网络冷启动

刚开始 Q网络 不能得出精确的分数,如果这时候把 $L_{RL}$ 考虑在内,那么 ganerator 很难收敛。

解决办法:把数据集分成两半,前一半训练的时候不考虑 $L_{RL}$ ,后一半训练的时候再考虑。

$\lambda$ 的影响

$\lambda$ 越小,有效性 越高。对 多样性新颖性 没有明显影响。

各项指标表现更好

  1. 直接处理图形数据比用 RNN 处理字符串更好。
  2. 使用 DCP 能够更有效地计算梯度,惩罚生成的无效图。

多样性很低

  1. ORGAN 最大可处理长度 51 的字符串,所以能生成更大的分子;而 MolGAN 只能生成 9 个原子的分子。
  2. ORGAN 使用 SP ,可以更好地探索多样性。