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开发实战技巧…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...