2017-PMLR-Neural Message Passing for Quantum Chemistry
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模型:节点特征 xvx_vxv和边缘特征 evwe_{vw}evw 的无向图 GGG 。正向传递有两个阶段,消息传递阶段和Readout阶段。消息传递阶段运行T个时间步长,并根据消息函数MtM_tMt和顶点更新函数UtU_tUt进行定义。在消息传递阶段,图中每个节点的隐藏状态 hvth^t_vhvt根据消息 mvt+1m^{t+1}_vmvt+1根据

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

消息函数 MtM_tMt、顶点更新函数 UtU_tUt和readout函数 RRR 都是学习的可微函数。RRR 在节点状态集上运行,并且必须对节点状态的排列不变,以便 MPNN 对图同构不变。作者通过指定使用的消息函数 MtM_tMt、顶点更新函数 UtU_tUt 和readout函数 RRR来定义文献中的先前模型。
先前模型
- 用于学习分子指纹的卷积网络
- 门控图神经网络
- 交互网络
- 分子图卷积
- 深度张量神经网络
- 基于拉普拉斯方法
MPNN 变体
作者使用 ddd 来表示图中每个节点的内部隐藏表示的维度,并使用 nnn来表示图中节点的数量。对 MPNN 的实现通常运行在有向图上,具有用于传入和传出边缘的单独消息通道,在这种情况下,传入消息 mvm_vmv是 mvinm^{in}_vmvin和 mvoutm^{out}_vmvout的串联。将该图视为有向图,其中每个原始边都成为具有相同标签的传入边和传出边。请注意,边的方向没有什么特别之处,它只与参数绑定有关。将无向图视为有向图意味着消息通道的大小为 2d 而不是 d。
消息函数
矩阵乘法: 从 GG-NN 中使用的消息函数开始,该函数由等式定义

边缘网络: 为了允许向量值边特征,提出了消息函数 M(hv,hw,evw)=A(evw)hwM(hv, h_w, e_{vw}) = A(e_{vw})h_wM(hv,hw,evw)=A(evw)hw,其中 A(evw)A(e_{vw})A(evw) 是一个神经网络,它将边向量 evwe_{vw}evw 映射到 d×dd × dd×d 矩阵。
对消息:矩阵乘法规则的一个属性是,从节点 www到节点 vvv 的消息只是隐藏状态 hwh_whw 和边缘 evwe_{vw}evw 的函数。特别是,它不依赖于隐藏状态 hvth^t_vhvt。理论上,如果允许节点消息同时依赖于源节点和目标节点,则网络可能能够更有效地使用消息通道。这里,沿边 eee 从 www 到 vvv 的消息是 mwv=f(hwt,hvt,evw)m_{wv} = f(h^t_w, h^t_v, e_{vw})mwv=f(hwt,hvt,evw),其中 fff是一个神经网络。将上述消息函数应用于有向图时,使用了两个单独的函数,MinM_{in}Min和 MoutM_{out}Mout。哪个函数应用于特定边 evwe_{vw}evw取决于该边的方向。
虚拟图元素
探索了两种不同的方法来更改消息在整个模型中的传递方式。最简单的修改涉及为未连接的节点对添加单独的“虚拟”边缘类型。这可以作为数据预处理步骤实现,并允许信息在传播阶段长距离传播。
Readout功能
尝试了两个Readout功能。首先是GG-NN中使用的Readout函数,由公式4定义。该模型首先将线性投影应用于每个元组(hvT,xv)(h_v^T,x_v)(hvT,xv),然后将投影元组的集合T={(hvT,xv)}T = \{(h_v^T,x_v)\}T={(hvT,xv)}作为输入。然后,经过 M 个计算步骤后,set2set 模型生成一个图级嵌入 q∗q^∗q∗,该嵌入与元组 T 的顺序不变。
Multiple Towers
为了解决O(n2d2)O(n^2d^2)O(n2d2)时间复杂度,我们将 ddd 维节点嵌入 hvth^t_vhvt 分解为 kkk 个不同的 d/kd/kd/k 维嵌入 hvt,kh^{t,k}_vhvt,k,并分别对 kkk 个副本中的每个副本运行传播步骤,以获得临时嵌入 h~vt+1,k,v∈G{ \tilde{h}^{t+1,k}_v , v \in G}h~vt+1,k,v∈G,为每个副本使用单独的消息和更新函数。根据方程将每个节点的 kkk 个临时嵌入混合在一起

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

其中:
**化学图:**在没有距离信息的情况下,邻接矩阵条目是离散键类型:单键、双键、三键或芳烃键类型。
距离箱:矩阵乘法消息函数假定离散的边类型,因此为了包含距离信息,将绑定距离分成 10 个箱。
原始距离特征: 当使用在向量值边上操作的消息函数时,邻接矩阵的条目是5维的,其中第一维表示原子对之间的欧氏距离,其余四个是键类型的一个热编码。
QM9 Dataset
数据集中的分子由氢 (H)、碳( C)、氧(O)、氮(N)和氟(F)原子组成,最多包含 9 个重(非氢)原子。大约134k个药物样的有机分子,它们跨越了广泛的化学领域。
结果

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

表 3 中,这三种GG-NN模型修改有助于所有 13 个目标,并且 Set2Set 输出在 13 个目标中的 5 个目标上实现了化学精度。
相关文章:
2017-PMLR-Neural Message Passing for Quantum Chemistry
2017-PMLR-Neural Message Passing for Quantum Chemistry Paper: https://arxiv.org/pdf/1704.01212.pdf Code: https://github.com/brain-research/mpnn 量子化学的神经信息传递 这篇文献作者主要是总结了先前神经网络模型的共性,提出了一种消息传递神经网络&am…...
Python:每日一题之全球变暖(DFS连通性判断)
题目描述 你有一张某海域 NxN 像素的照片,"."表示海洋、"#"表示陆地,如下所示: ....... .##.... .##.... ....##. ..####. ...###. ....... 其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿…...
企业级安全软件装机量可能大增
声明 本文是学习大中型政企机构网络安全建设发展趋势研究报告. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 研究背景 大中型政企机构是网络安全保护的重中之重,也是国内网络安全建设投入最大,应用新技术、新产品最多的机构…...
为什么要用频谱分析仪测量频谱?
频谱分析仪是研究电信号频谱结构的仪器,用于信号失真度、调制度、谱纯度、频率稳定度和交调失真等信号参数的测量,可用以测量放大器和滤波器等电路系统的某些参数,是一种多用途的电子测量仪器。从事通信工程的技术人员,在很多时候…...
Python环境搭建、Idea整合
1、学python先要下载什么? 2、python官网 3、idea配置Python 4、idea新建python 学python先要下载什么? python是一种语言,首先你需要下载python,有了python环境,你才可以在你的电脑上使用python。现在大多使用的是pyt…...
HTTP请求返回304状态码以及研究nginx中的304
文章目录1. 引出问题2. 分析问题3. 解决问题4. 研究nginx中的3044.1 启动服务4.2 ETag说明4.3 响应头Cache-Control1. 引出问题 之前在调试接口时,代码总出现304问题,如下所示: 2. 分析问题 HTTP 304: Not Modified是什么意思? …...
【GD32F427开发板试用】使用Arm-2D显示电池电量
本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:boc 【虽迟但到】 由于快递的原因,11月份申请的,12月1日才收到GD32F427开发板。虽然姗姗来迟,但也没有减少…...
TS第二天 Typesrcipt编译
文章目录自动编译tsconfig.json配置选项include 比较重要excludeextendsfilescompilerOptions 比较重要自动编译 手动模式:每次ts文件修改完,手动编译一次 tsc 01.ts监视模式:ts文件修改完,自动监视编译 tsc 01.ts -w编译所有文…...
基于C#制作一个飞机大战小游戏
此文主要基于C#制作一个飞机大战游戏,重温经典的同时亦可学习。 实现流程1、创建项目2、界面绘制3、我方飞机4、敌方飞机5、子弹及碰撞检测实现流程 1、创建项目 打开Visual Studio,右侧选择创建新项目。 搜索框输入winform,选择windows窗体…...
git修改历史提交(commit)信息
我们在开发中使用git经常会遇到想要修改之前commit的提交信息,这里记录下怎么使用git修改之前已经提交的信息。一、修改最近一次commit的信息 首先通过git log查看commit信息。 我这里一共有6次commit记录。 最新的commit信息为“Merge branch ‘master’ of https:…...
代码解析工具cpg
cpg 是一个跨语言代码属性图解析工具,它目前支持C/C (C17), Java (Java 13)并且对Go, LLVM, python, TypeScript也有支持,在这个项目的根目录下: cpg-core为cpg解析模块的核心功能,主要包括将代码解析为图,core模块只包括对C/C/Ja…...
Linux虚拟机部署Java环境-Jdk-Mysql
Linux虚拟机部署 author hf 1.安装 电脑安装x-shell工具,然后使用堡垒机基础控件windows版进行安装扫描,最后点击自动检测,保证能扫描到X-shell工具的安装路径 使用堡垒机登录快照夏选择工具点击Xshell进行连接 查看linux版本 root:~# ca…...
每日学术速递2.9
CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV、cs.AI、cs.LG、cs.IR 1.Graph Signal Sampling for Inductive One-Bit Matrix Completion: a Closed-form Solution(ICLR 2023) 标题:归纳单比特矩阵完成的图信号采样&am…...
【Linux】进程优先级 | 进程的切换 | 环境变量详解
🤣 爆笑教程 👉 《看表情包学Linux》👈 猛戳订阅 🔥 💭 写在前面:我们先讲解进程的优先级,探讨为什么会存在优先级,以及如何查看系统进程、进程优先级的修改。然后讲解进程的切…...
leaflet 实现左卷帘效果 (代码示例045)
第045个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中实现左卷帘效果,这里主要引用了leaflet-side-by-side这个插件,直接调用的话,CSS方面有些问题,需要自行调整一下。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实现效果 文章目录 示例效果配…...
程序的翻译环境和执行环境
程序环境和预处理🦖程序的翻译环境和执行环境🦖详解编译链接🐳 翻译环境🐳 详解编译过程🐳 运行环境🦖预处理详解🐳 预定义符号🐳 #define🦀 #define 定义标识符…...
2023最新量化优选股票参考(2.9)
还是周一发的那些股票(可以看我周一的文章),安心持仓就好,跑赢指数是大概率的事情,也大概率获得正收益。 其实我知道大家都没法全天一直看盘操作,毕竟要工作,我也是一样,没法一直看盘…...
深眸科技以科技赋能智慧物流搭建,实现周转箱拆垛作业智能化
数字化时代下市场竞争的核心要素转化为科技的竞争,智能化技术的投入是企业占据市场竞争绝对优势的重要支撑。深眸科技凭借轻辙视觉引擎实现周转箱拆垛作业的智能化突破。人力成本增加,企业积极转变特别是在后疫情时代,人力成本迅猛增加&#…...
R数据分析:孟德尔随机化中介的原理和实操二
delta方法 上面的流程跑通之后,对于中介分析,我们需要报告间接效应的估计值和置信区间,还有中介比例的估计值和置信区间,类似下面的这样: 但是其实我们是光跑孟德尔是得不到上面的需要的值的(比如间接效应…...
【SQL开发实战技巧】系列(十二):三问(如何对字符串字母去重后按字母顺序排列字符串?如何识别哪些字符串中包含数字?如何将分隔数据转换为多值IN列表?)
系列文章目录 【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL开发实战技巧…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
