2017-PMLR-Neural Message Passing for Quantum Chemistry

news2024/11/26 19:24:20

2017-PMLR-Neural Message Passing for Quantum Chemistry


Paper: https://arxiv.org/pdf/1704.01212.pdf
Code: https://github.com/brain-research/mpnn

量子化学的神经信息传递

这篇文献作者主要是总结了先前神经网络模型的共性,提出了一种消息传递神经网络(MPNN)的单一通用框架,并在此框架内探索其他新颖的变化。在重要的分子性质预测基准上使用MPNN展示了最先进的结果。
MPNN框架如下图所示:

主要贡献:

  • 开发了一种MPNN,可在所有13个目标上实现最先进的结果,并预测13个目标中11个目标的DFT在化学精度范围内。

  • 开发了几种不同的MPNN,可以预测DFT在13个目标中的5个的化学精度范围内,同时仅对分子的拓扑结构进行操作(没有空间信息作为输入)。

  • 开发了一种通用方法,用于训练具有更大节点表示的 MPNN,而不会相应增加计算时间或内存,与以前的高维节点表示的 MPNN 相比,节省了大量成本。

消息传递神经网络

MPNN模型:节点特征 x v x_v xv和边缘特征 e v w e_{vw} evw 的无向图 G G G 。正向传递有两个阶段,消息传递阶段和Readout阶段。消息传递阶段运行T个时间步长,并根据消息函数 M t M_t Mt和顶点更新函数 U t U_t Ut进行定义。在消息传递阶段,图中每个节点的隐藏状态 h v t h^t_v hvt根据消息 m v t + 1 m^{t+1}_v mvt+1根据

其中,在总和中, N ( v ) N (v) N(v) 表示图 G G G v v v 的邻居。readout阶段使用一些Readout函数 R R R 根据

消息函数 M t M_t Mt、顶点更新函数 U t U_t Ut和readout函数 R R R 都是学习的可微函数。 R R R 在节点状态集上运行,并且必须对节点状态的排列不变,以便 MPNN 对图同构不变。作者通过指定使用的消息函数 M t M_t Mt、顶点更新函数 U t U_t Ut 和readout函数 R R R来定义文献中的先前模型。

先前模型

  • 用于学习分子指纹的卷积网络
  • 门控图神经网络
  • 交互网络
  • 分子图卷积
  • 深度张量神经网络
  • 基于拉普拉斯方法

MPNN 变体

作者使用 d d d 来表示图中每个节点的内部隐藏表示的维度,并使用 n n n来表示图中节点的数量。对 MPNN 的实现通常运行在有向图上,具有用于传入和传出边缘的单独消息通道,在这种情况下,传入消息 m v m_v mv m v i n m^{in}_v mvin m v o u t m^{out}_v mvout的串联。将该图视为有向图,其中每个原始边都成为具有相同标签的传入边和传出边。请注意,边的方向没有什么特别之处,它只与参数绑定有关。将无向图视为有向图意味着消息通道的大小为 2d 而不是 d。

消息函数

矩阵乘法: 从 GG-NN 中使用的消息函数开始,该函数由等式定义

边缘网络: 为了允许向量值边特征,提出了消息函数 M ( h v , h w , e v w ) = A ( e v w ) h w M(hv, h_w, e_{vw}) = A(e_{vw})h_w M(hv,hw,evw)=A(evw)hw,其中 A ( e v w ) A(e_{vw}) A(evw) 是一个神经网络,它将边向量 e v w e_{vw} evw 映射到 d × d d × d d×d 矩阵。

对消息:矩阵乘法规则的一个属性是,从节点 w w w到节点 v v v 的消息只是隐藏状态 h w h_w hw 和边缘 e v w e_{vw} evw 的函数。特别是,它不依赖于隐藏状态 h v t h^t_v hvt。理论上,如果允许节点消息同时依赖于源节点和目标节点,则网络可能能够更有效地使用消息通道。这里,沿边 e e e w w w v v v 的消息是 m w v = f ( h w t , h v t , e v w ) m_{wv} = f(h^t_w, h^t_v, e_{vw}) mwv=f(hwt,hvt,evw),其中 f f f是一个神经网络。将上述消息函数应用于有向图时,使用了两个单独的函数, M i n M_{in} Min M o u t M_{out} Mout。哪个函数应用于特定边 e v w e_{vw} evw取决于该边的方向。

虚拟图元素

探索了两种不同的方法来更改消息在整个模型中的传递方式。最简单的修改涉及为未连接的节点对添加单独的“虚拟”边缘类型。这可以作为数据预处理步骤实现,并允许信息在传播阶段长距离传播。

Readout功能

尝试了两个Readout功能。首先是GG-NN中使用的Readout函数,由公式4定义。该模型首先将线性投影应用于每个元组 ( h v T , x v ) (h_v^T,x_v) (hvTxv),然后将投影元组的集合 T = { ( h v T , x v ) } T = \{(h_v^T,x_v)\} T={(hvTxv)}作为输入。然后,经过 M 个计算步骤后,set2set 模型生成一个图级嵌入 q ∗ q^∗ q,该嵌入与元组 T 的顺序不变。

Multiple Towers

为了解决 O ( n 2 d 2 ) O(n^2d^2) O(n2d2)时间复杂度,我们将 d d d 维节点嵌入 h v t h^t_v hvt 分解为 k k k 个不同的 d / k d/k d/k 维嵌入 h v t , k h^{t,k}_v hvt,k,并分别对 k k k 个副本中的每个副本运行传播步骤,以获得临时嵌入 h ~ v t + 1 , k , v ∈ G { \tilde{h}^{t+1,k}_v , v \in G} h~vt+1,k,vG,为每个副本使用单独的消息和更新函数。根据方程将每个节点的 k k k 个临时嵌入混合在一起

输入表征

有关所有特征列表,请参见表 1。

其中:
**化学图:**在没有距离信息的情况下,邻接矩阵条目是离散键类型:单键、双键、三键或芳烃键类型。
距离箱:矩阵乘法消息函数假定离散的边类型,因此为了包含距离信息,将绑定距离分成 10 个箱。
原始距离特征: 当使用在向量值边上操作的消息函数时,邻接矩阵的条目是5维的,其中第一维表示原子对之间的欧氏距离,其余四个是键类型的一个热编码。

QM9 Dataset

数据集中的分子由氢 (H)、碳( C)、氧(O)、氮(N)和氟(F)原子组成,最多包含 9 个重(非氢)原子。大约134k个药物样的有机分子,它们跨越了广泛的化学领域。

结果


在表2中,MPNN 在 13 目标中的 11 个目标上实现了化学精度,在所有 13 个目标上都达到了最先进的水平。


表 3 中,这三种GG-NN模型修改有助于所有 13 个目标,并且 Set2Set 输出在 13 个目标中的 5 个目标上实现了化学精度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/336236.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

掌握了这项技能的性能测试师,90%都升职加薪了

初入职场的新人该怎么做才能让自己快速成长?在公司一直做着手工测试,如何才能提升自己,避免陷入“只涨年龄不涨经验”的尴尬?做为一名软件测试工程师,我们不得不去面对这些问题,有的人找到了答案&#xff0…

你不会还不知道如何监测用户的网络是否在线吧?

我最近遇到一个需求,要给网站添加一个用户网络离线提醒。要求我们要实时监测用户的网络状态,当用户断网了,我们要立马给用户弹出一个断网提醒。 那你可能会问,为什么要做这么一个需求呢?用户断网了,网页不…

华为、南卡和漫步者蓝牙耳机怎么选?国产高性价比蓝牙耳机推荐

随着蓝牙耳机的快速发展,现如今使用蓝牙耳机的人也越来越多。其中,日益增多的国产蓝牙耳机品牌也逐渐被大众认识、认可。目前一些热销的国产蓝牙耳机,如华为、南卡和漫步者等都是大家比较熟知的品牌。那么,这三个品牌哪个性价比高…

已解决SqlServer报错Arithmetic overflow error converting expression to data type int

本文记录(pymssql.OperationalError) (8115, b’Arithmetic overflow error converting expression to data type int.DB-Lib error message 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\n’)报错解决方法,亲测有效&#x…

教师教学短视频录制有好用工具分享:

别再为制作微课发愁了啦,掌握这7款微课制作神器软件,让你的工作效率超级加倍! 话不多说,一起来看看有哪些宝藏软件吧~ canvas 平台:电脑、网页、手机 定位:超多模板的制图软件 制作PPT、手抄报、奖状都…

手把手带你体验ChatGPT

1、ChatGPT介绍 ChatGPT,美国OpenAI 研发的聊天机器人程序 ,于2022年11月30日发布 。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人…

修复 KubeSphere 内置 Jenkins 的 Apache Log4j2 漏洞

作者:老Z,中电信数智科技有限公司山东分公司运维架构师,云原生爱好者,目前专注于云原生运维,云原生领域技术栈涉及 Kubernetes、KubeSphere、DevOps、OpenStack、Ansible 等。 简介 生产环境 KubeSphere 3.3.0 部署的…

【网络~】

网络一级目录二、socket套接字三、UDP数据报套接字四、TCP流套接字一级目录 1.局域网、广域网 2.IP地址是什么? IP地址是标识主机在网络上的地址 IP地址是如何组成的? 点分十进制,将32位分为四个部分,每个部分一个字节&#xff…

He3 更新:中文

系统级更新 焕然一新的主界面 这一次对整体 UI 界面做了一个大的调整,整体更加扁平美观,布局更加紧凑协调,视觉层面更加集中聚焦。 旧版 新版 工具内容居中 上下文工具以及关联工具放置在右侧,工具内容居中,在使…

ASP.NET Core3.1实战教程---基于Jquery单文件上传

这个必须记录一下费劲啊!废了我2天的时间,昔日的net快速已经没落....就文件上传都这么费劲。 先说下要求(在线apk文件上传实现手机端整包更新): 1、为了简化需求文件上传和数据提交分开执行 2、选完文件后按钮变成上…

web前端——HTML+CSS

整体框架 HTML CSS CSS进阶 CSS盒子模型 定位装饰 CSS精灵图 目录 基础认识 HTML 一、HTML概念 二、HTML页面固定结构 三、HTML标签的结构 四、标签学习 1、排版标签 1)标题标签 2)段落标签 3)换行标签 4)水平线…

【LeetCode】1223. 掷骰子模拟

1223. 掷骰子模拟 题目描述 有一个骰子模拟器会每次投掷的时候生成一个 1 到 6 的随机数。 不过我们在使用它时有个约束,就是使得投掷骰子时,连续 掷出数字 i 的次数不能超过 rollMax[i](i 从 1 开始编号)。 现在,…

第八节 Linux 设备树

Linux3.x 以后的版本才引入了设备树,设备树用于描述一个硬件平台的板级细节。在早些的linux内核,这些“硬件平台的板级细节”保存在linux 内核目录“/arch”,以ARM 平台为例“硬件平台的板级细节”保存在“/arch/arm/plat-xxx”和“/arch/arm…

python面试准备之--算法一

文章目录时间复杂度空间复杂度递归汉诺塔问题(递归实例)查找列表查找顺序查找(Linear Search)二分查找排序列表排序冒泡排序(Bubble Sort)选择排序插入排序快速排序堆排序归并排序希尔排序计数排序基数排序时间复杂度 时间复杂度是…

机器(深度)学习中的 Dropout

在这篇文章[1]中,我将主要讨论神经网络中 dropout 的概念,特别是深度网络,然后进行实验,通过在标准数据集上实施深度网络并查看 dropout 的影响,看看它在实践中实际影响如何。 1. Dropout是什么? ★ 术语“…

迷宫最短路径【Java实现】

题目描述 现有一个n∗m大小的迷宫,其中1表示不可通过的墙壁,0表示平地。每次移动只能向上下左右移动一格,且只能移动到平地上。假设左上角坐标是(1,1),行数增加的方向为x增长的方向,列数增加的方向为y增长的方向&#…

Protocol Buffers V3语法全解

目录protobuf介绍protobuf使用protoc命令语法定义消息类型指定字段类型分配字段编号指定字段规则添加更多消息类型注释保留字段从.proto文件生成了什么?值类型默认值枚举使用其他消息类型导入定义嵌套类型更新消息类型未知字段any任意类型oneofoneof 特性兼容性问题…

awk命令

一.介绍 awk是专门为文本处理设计的编程语言,是一门数据驱动的编程语言。与sed类似,都是以数据驱动的行处理软件,主要用于数据扫描,过滤和汇总。数据可以来自于标准输入,管道或者文件。 二.语法 awk是一种处理文本文件…

Vite+Vue3实现版本更新检查,实现页面自动刷新

ViteVue3实现版本更新检查,实现页面自动刷新1、使用Vite插件打包自动生成版本信息2、Vite.config.ts配置3、配置环境变量4、路由配置现有一个需求就是实现管理系统的版本发版,网页实现自动刷新页面获取最新版本 搜索了一下,轮询的方案有点浪费…

Mysql:避免重复的插入数据方法汇总

最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我介绍4种方法: …