人工智能学习离不开实践的验证,推荐大家可以多在
FlyAI-AI竞赛服务平台
多参加训练和竞赛,以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例,支持算法能力变现以及快速的迭代算法模型。
摘要
: 药物发现和材料科学的一个基本问题是设计具有优化化学性质的任意分子。由于分子本质上是组合在一起的,化学结构中的任何小扰动都可能导致所需分子性质的大变化。因此,这是一个极具挑战性的数学和计算问题。此外,随 ...
|
论文标题:
A Two-Step Graph Convolutional Decoder for Molecule Generation
论文链接:
https://arxiv.org/abs/1906.03412
引言
1.1 论文动机
药物发现和材料科学的一个基本问题是设计具有优化化学性质的任意分子。由于分子本质上是组合在一起的,化学结构中的任何小扰动都可能导致所需分子性质的大变化。因此,这是一个极具挑战性的数学和计算问题。
此外,随着原子和键的组合排列数量的不断增加,有效分子的空间也越来越大。目前,大多数药物都是经过化学和药理学专家多年的反复试验而制作的。最近
机器学习
和
深度学习
的进展开辟了一个新的研究方向,有望学习这些分子空间来优化分子生成,减少实验流程。
1.2 论文工作
论文提出了一个分子生成自动编码器框架。分子图首先被编码成一个连续的潜在表示 ,然后再被解码回一个分子。编码过程很简单,但解码过程仍然具有挑战性。
在本工作中,我们介绍了一个简单的两步译码过程。在第一步,一个完全连接的
神经网络
使用潜在的向量 生成一个分子式,例如二氧化碳(一个碳和两个氧原子)。
在第二步中,图形卷积神经网络使用相同的潜在向量 在第一步中产生的原子之间建立键(例如,将在碳和每个氧之间建立一个双键)。这个两步过程,首先生成一袋原子,然后组装,允许开发一个高效的分子自动编码器。
本文方法
图1表示自动编码器框架。在本节中,详细介绍系统的各个部分:
2.1 分子编码器
2.4 位置编码
当 GCN 处理此图时,碳原子上的特征将无法彼此区分(以及连接碳和氧的 3 条边上的特征)。为了弥补这一对称性问题,我们引入了一些位置特征,允许将同一类型的原子嵌入到不同的向量中,从而区分同一类型的原子。
最后,输入和输出分子之间不需要匹配,因为使用了相同的原子顺序。
2.6 束搜索
由于潜在的原子价破坏,所提出的一次性解码器可能不能产生化学上有效的分子。我们使用波束搜索技术来产生一个有效分子。波束搜索的定义如下。我们从一条随机的边开始。
实验
3.1 数据集
本文使用的 ZINC 分子数据集,该数据集有 250k 类药物分子,有 38 个重原子(氢原子除外)。数据集最初是用 smile 编码的,并使用开源的化学信息学软件包 Rdkit2 来获得规范的 smile 表示。
3.2 分子重构
表 2 给出了结果表示,我们的系统不只是简单地记忆训练集,它还能够生成 100% 的新的有效分子。此外,所有的新分子都是不同的,因为新颖性度量是 100%(生成数据集中分子的百分)。图2展示了一些生成的分子。
3.3 性质优化
第二个任务是生产具有理想化学性质的新分子。本文选择目标性质为辛醇-水分配系数(logP),由合成可达性(SA)评分和长循环次数惩罚。为了进行分子优化,我们训练我们的 VAE 同时自动编码训练分子和目标化学性质。
利用梯度上升法对潜在空间的化学性质进行优化,然后对分子进行解码并计算目标性质。本文对训练集中属性值排名前 100 的分子进行了优化。表 3 报告了我们的模型和文献中排名前 3 的分子。
第三个任务是生成具有优化化学性质的新分子,同时约束原始分子和生成分子之间的分子相似性。在表4中报告了性能的改进和原始分子与生成分子之间的分子相似性。图4给出了约束优化的分子与分子距离。
总结
针对分子生成任务,本文引入了一种简单有效的 VAE 模型。解码器可以一次性生成分子式和键结构。据我们所知,这也是束搜索首次用于改进分子生成任务,beam 搜索可以高度并行化,就像自然语言处理系统一样,总体而言,本文提出的技术更容易实现。
|
更多精彩内容请访问
FlyAI-AI竞赛服务平台
;为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台;每周免费提供项目开源算法样例,支持算法能力变现以及快速的迭代算法模型。
挑战者,都在FlyAI!!!
人工智能学习离不开实践的验证,推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛,以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例,支持算法能力变现以及快速的迭代算法模型。摘要: 药物发现和材料科学的一个基本问题是设计具有优化化学性质的任意分子。由于分子本质上是组合在一起的,化学结构中的任何小扰动都可能导致所需分子性质的大变化。因此,这是一个极具挑战性的数学和计算问题。此外,随 ... ...
DeepChem教程 6:
图
卷
积
本教程我们学习更多的“
图
卷
积
”。处理
分子
数据有一个最为强大的深度学习工具。原因是
分子
可以很自然的看作
图
。注意,这类的标准的化学
图
形我们从高中就开始
用于
可视化
分子
作为
图
。在本教程的后一部分,我们将更详细的探求这种关系。我们将更深入的理解这些系统是如何工作的。
什么是
图
卷
积
?
考虑一下一种常
用于
处理
图
像的标准的卷
积
神经网络
。每个像素有一个矢量数值,如红、绿、蓝通道值。数据传递给一系列的卷
积
层。每一层组合数据自像素及它的邻居以产生新的像素的矢量数据。早期的层检测局部的模式,
在深度学习中,
图
卷
积
神经网络
特别适合处理化学
分子
数据,也经常被
用于
处理
分子
数据。
这是因为化学
分子
本身就是一个
图
数据。但是如何将
分子
转化为
图
神经网络
可以使用的数据格式呢?
接下来就做简单的介绍。
首先,标准的卷
积
网络,最简单最传统的就是CNN,convolutional neural network,是处理
图
片最常用的
神经网络
模型。
CNN的输入是像素矩阵,每一个像素都是一个含有三个元素的向量,代表红黄蓝的数值。所..
```python
import tensorflow as tf
from tensorflow.keras.layers import Input, Conv2D, MaxPooling2D, UpSampling2D
from tensorflow.keras.models import Model
# 定义编码器
def encoder(input_shape):
inputs = Input(shape=input_shape)
x = Conv2D(16, (3, 3), activation='relu', padding='same')(inputs)
x = MaxPooling2D((2, 2), padding='same')(x)
x = Conv2D(8, (3, 3), activation='relu', padding='same')(x)
x = MaxPooling2D((2, 2), padding='same')(x)
x = Conv2D(8, (3, 3), activation='relu', padding='same')(x)
encoded = MaxPooling2D((2, 2), padding='same')(x)
return Model(inputs, encoded)
# 定义
解码
器
def decoder(input_shape):
inputs = Input(shape=input_shape)
x = Conv2D(8, (3, 3), activation='relu', padding='same')(inputs)
x = UpSampling2D((2, 2))(x)
x = Conv2D(8, (3, 3), activation='relu', padding='same')(x)
x = UpSampling2D((2, 2))(x)
x = Conv2D(16, (3, 3), activation='relu')(x)
x = UpSampling2D((2, 2))(x)
decoded = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)
return Model(inputs, decoded)
# 定义编码
解码
模型
def autoencoder(input_shape):
inputs = Input(shape=input_shape)
encoder_model = encoder(input_shape)
decoder_model = decoder(encoder_model.output_shape[1:])
encoded = encoder_model(inputs)
decoded = decoder_model(encoded)
return Model(inputs, decoded)
# 创建编码
解码
模型
input_shape = (28, 28, 1)
model = autoencoder(input_shape)
model.summary()
这个示例代码使用了 TensorFlow 和 Keras 库来构建一个简单的卷
积
神经网络
编码
解码
模型。编码器部分包含卷
积
层和最大池化层,
用于
将输入
图
像编码为低维表示。
解码
器部分包含卷
积
层和上采样层,
用于
将编码后的低维表示
解码
为重建
图
像。最后,通过将编码器和
解码
器连接起来,构建了完整的编码
解码
模型。
请注意,这只是一个简单的示例,实际应用中可能需要根据具体问题进行更复杂的模型设计和调参。