【原创】韩国科学技术院Yousung Jung课题组NMI期刊论文:欲擒故纵——基于广义模板的有机反应性预测图神经网络...

本文主要是介绍【原创】韩国科学技术院Yousung Jung课题组NMI期刊论文:欲擒故纵——基于广义模板的有机反应性预测图神经网络...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

b736da840ae4d53caae83438069c7fab.png

预测有机反应的结果是化学领域的一个基本问题。当前对有机反应结果的预测主要依赖于化学家在实验中积累的经验。为了推进化学领域的数字化,进一步加快合成路线的设计,开发精度更高的预测有机反应结果智能体势在必行。目前用于预测有机反应结果的机器学习模型可以分为基于模板的方法和无模板方法两种,但两种方法都有一定的局限性。无模板方法通过机械地翻译化学语言或编辑分子图预测反应结果,相比于知识渊博的化学家通过确定反应中心和应用所学的化学知识来对结果进行预测,智能体预测的结果缺乏可解释性,而基于模板的方法由于模板中包含了太多详细信息,模板的覆盖率和可伸缩性较低,很大程度上限制了该方法在预测有机反应结果中的应用。

韩国科学技术院Yousung Jung小组针对以上问题,设计了广义反应模板(GRTs)和基于图神经网络的智能体LocalTransformGRTs能显著降低详细信息对模板的约束,显著提高模板的覆盖率和可伸缩性;LocalTransform通过确定反应中心和应用GRTs来预测反应结果。近日,该项研究工作发表在Nature Machine Intelligence期刊(Nat Mach Intell 4, 772–780 (2022).)【1】。

智能体设计

有机反应主要是一个电子重排的过程,受这一点启发,该小组设计了广义反应模板的提取流程,如1所示,首先去掉反应中心原子的原子类型信息,再将原子描述为两个部分,第一部分代表了原子的动作,由四种反应基本动作(ATTACKBREAKCHANGEREMOTE)组合表示,另一部分代表了原子氢原子数和形式电荷的变化,将反应中心的所有原子进行描述,推导出最后的GRT。随后,该小组将训练集中410000个反应导入该流程,合并相似的GRT,最后得到了2986GRT

6c00fc0890ec4e51b6604a6af3a57539.png

1 广义反应模板的提取流程

在获得了GRTs之后,该小组开发了名为LocalTransform的基于图神经网络的智能体,如2所示,首先通过带全局注意力的图神经网络提取反应物中原子和化学键的反应性特征,再对各基团间的反应性进行排序,确定反应中心,最后应用GRTs预测反应结果,并给每个可能的结果进行打分。

ca4301130238babfdaa30e340aa6ad83.png

2 LocalTransform的流程

智能体性能测试

该小组首先测试了新设计的GRTs的覆盖率和可伸缩性,选择前一次研究【2】所使用的模板与其在同一测试集下进行对比,前者用30762个模板覆盖了90.3%的反应,而后者用2968个模板覆盖了99.7%的反应。除此之外,新设计的GRTs中覆盖率最高的前100个模板就覆盖了94.6%的数据集。综合以上两点,该小组设计的GRTs在覆盖率和可伸缩性上有了明显的提高。

为了测试LocalTransform的预测性能,该小组首先将训练好的模型用USPTO-480K数据集进行测试,并与对应任务的其他模型比较,结果如1所示,与现有的模型相比,LocalTransform在预测精度上取得了优异的成绩,尤其是相比于同为图网络的MEGAN模型,LocalTransform的预测精度在表中所有的top-k下均超越了前者。随后,该小组将由80个反应组成的标准数据集按照反应模板的稀有度分类,并将其交给人类专家和不同的模型进行预测 ,结果如3所示,在所有稀有度类别中,LocalTransform的预测精度均为最佳。

1 各种机器模型的top-k精确匹配精度对比表

5d35dbf8a8144cfbbd2d7dc08e9fc164.png

9d6c63468a0bd89004880477bff1d061.png

3 不同的预测方法对不同类型反应的预测精度

该小组还将预测结果的打分和预测精度进行关联分析,发现预测精度与预测结果的分数高度相关,高分数段的大部分预测结果有着高精度,因此用户可以将LocalTransform的打分结果理解为预测结果的可信度。

最后,该小组选取了一些预测失败的结果进行分析,发现一部分错误预测的反应如果用当前的化学知识进行推断,其人为推断结果与预测结果一致,而反应的真实结果用已知的化学知识无法解释,从侧面体现出该小组设计的智能体具有在现有的化学知识范围内准确预测反应结果的能力。

小结:本研究发现,在设计模板的过程中,适当忽略反应中的详细信息,可以增加模板的覆盖性和可伸缩性,再结合带全局注意力机制的图神经网络,可以提高模型的预测精度。但是这个模型在未来将面对更多的挑战,如过于依赖正确的原子映射、难以处理立体选择性反应等。未来随着算力的不断提升,算法的不断精进,智能体对反应机理的学习不断深入,相信会有更合理的解决方法。

参考文献

【1】 Chen, S., Jung, Y. A generalized-template-based graph neural network for accurate organic reactivity prediction. Nat Mach Intell 4, 772–780 (2022). 

【2】 Coley, C. W . et al. A graph-convolutional neural network model for the prediction of chemical reactivity. Chem. Sci.10, 370–377 (2019).

这篇关于【原创】韩国科学技术院Yousung Jung课题组NMI期刊论文:欲擒故纵——基于广义模板的有机反应性预测图神经网络...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/580324

相关文章

C++的模板(八):子系统

平常所见的大部分模板代码,模板所传的参数类型,到了模板里面,或实例化为对象,或嵌入模板内部结构中,或在模板内又派生了子类。不管怎样,最终他们在模板内,直接或间接,都实例化成对象了。 但这不是唯一的用法。试想一下。如果在模板内限制调用参数类型的构造函数会发生什么?参数类的对象在模板内无法构造。他们只能从模板的成员函数传入。模板不保存这些对象或者只保存他们的指针。因为构造函数被分离,这些指针在模板外

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

记录AS混淆代码模板

开启混淆得先在build.gradle文件中把 minifyEnabled false改成true,以及shrinkResources true//去除无用的resource文件 这些是写在proguard-rules.pro文件内的 指定代码的压缩级别 -optimizationpasses 5 包明不混合大小写 -dontusemixedcaseclassnames 不去忽略非公共

人工智能机器学习算法总结神经网络算法(前向及反向传播)

1.定义,意义和优缺点 定义: 神经网络算法是一种模仿人类大脑神经元之间连接方式的机器学习算法。通过多层神经元的组合和激活函数的非线性转换,神经网络能够学习数据的特征和模式,实现对复杂数据的建模和预测。(我们可以借助人类的神经元模型来更好的帮助我们理解该算法的本质,不过这里需要说明的是,虽然名字是神经网络,并且结构等等也是借鉴了神经网络,但其原型以及算法本质上还和生物层面的神经网络运行原理存在

python实现最简单循环神经网络(RNNs)

Recurrent Neural Networks(RNNs) 的模型: 上图中红色部分是输入向量。文本、单词、数据都是输入,在网络里都以向量的形式进行表示。 绿色部分是隐藏向量。是加工处理过程。 蓝色部分是输出向量。 python代码表示如下: rnn = RNN()y = rnn.step(x) # x为输入向量,y为输出向量 RNNs神经网络由神经元组成, python

神经网络第四篇:推理处理之手写数字识别

到目前为止,我们已经介绍完了神经网络的基本结构,现在用一个图像识别示例对前面的知识作整体的总结。本专题知识点如下: MNIST数据集图像数据转图像神经网络的推理处理批处理  MNIST数据集          mnist数据图像 MNIST数据集由0到9的数字图像构成。像素取值在0到255之间。每个图像数据都相应地标有“7”、“2”、“1”等数字标签。MNIST数据集中,

神经网络第三篇:输出层及softmax函数

在上一篇专题中,我们以三层神经网络的实现为例,介绍了如何利用Python和Numpy编程实现神经网络的计算。其中,中间(隐藏)层和输出层的激活函数分别选择了 sigmoid函数和恒等函数。此刻,我们心中不难发问:为什么要花一个专题来介绍输出层及其激活函数?它和中间层又有什么区别?softmax函数何来何去?下面我们带着这些疑问进入本专题的知识点: 1 输出层概述 2 回归问题及恒等函数 3

神经网络第一篇:激活函数是连接感知机和神经网络的桥梁

前面发布的文章介绍了感知机,了解了感知机可以通过叠加层表示复杂的函数。遗憾的是,设定合适的、能符合预期的输入与输出的权重,是由人工进行的。从本章开始,将进入神经网络的学习,首先介绍激活函数,因为它是连接感知机和神经网络的桥梁。如果读者认知阅读了本专题知识,相信你必有收获。 感知机数学表达式的简化 前面我们介绍了用感知机接收两个输入信号的数学表示如下:

多层感知机不等于神经网络?

在前一章节(https://blog.csdn.net/u012132349/article/details/86166324),我们介绍了感知机可以实现与门、或门、非门。只需给定合适的参数(w1, w2, b)并利用Python就可以简单实现对输入的任意(x1,x2),输出0或1。     今天我们将介绍感知机的局限性(严格说是单层感知机的局限性)。这里我们想用感知机实现异或门,所谓异

C++标准模板库STL介绍

STL的六大组成部分 STL(Standard Template Library)是 C++ 标准库中的一个重要组成部分,提供了丰富的通用数据结构和算法,使得 C++ 编程变得更加高效和方便。STL 包括了 6 大类组件,分别是算法(Algorithm)、容器(Container)、空间分配器(Allocator)、迭代器(Iterator)、函数对象(Functor)、适配器(Adapter)