神经信息传递法(MPNN)—预测分子和材料特性

神经信息传递法(MPNN)—预测分子和材料特性

前言

基于图神经网络(GNN)的方法在模拟复杂相互作用方面具有巨大的潜力,被广泛应用于分子量子力学性质以及材料预测的预测。目前为止,传统的机器学习模型普遍应用于预测分子性质,与GNN不同,ML模型需要先对分子特征进行操作,尽管这些分子特征是各种分子性质的良好预测指标,不过基于网络训练的模型,效果可能会更好。

1.消息传递神经网络(MPNN)

​ 近年来,随着量子化学计算和分子动力学模拟等实验展开了巨大的数据量,图神经网络能够应用于分子模型(原子系统的对称性),MPNN正是可以应用于图上的监督学习框架。在图中,所有数据节点相互连接,意味着数据不再独立,这使得大多数标准机器学习模型无法使用。图神经网络可以从图形中提取数值数据或使用直接对此类数据进行操作的模型。这种架构可以从图形中提取数值数据或使用直接对此类数据进行操作的模型

1.1 MPNN概念

MPNN概念很简单,图中的每个节点都有一个隐藏状态(即特征向量)。对于每个节点Vt,我们将所有相邻节点的隐藏状态和可能的边与节点Vt本身聚合在一起。然后,我们使用获得的消息和该节点先前的隐藏状态来更新节点Vt的隐藏状态

在这里插入图片描述

注:节点V1的消息传递架构的一个非常简单的示例。在这种情况下,消息是邻居隐藏状态的总和。更新函数是消息mh1之间的平均值(图参考该网站

​ 主要有三个方程定义了MPNN框架。从相邻节点获得的消息由以下等式给出:
m v t + 1 = ∑ w ∈ N ( v ) M t ( h v t , h w t , e v w ) m_{v}^{t+1}=\sum_{w \in N(v)} M_{t}\left(h_{v}^{t}, h_{w}^{t}, e_{v w}\right) mvt+1=wN(v)Mt(hvt,hwt,evw)
​ 它是从邻居节点获得所有消息Mt的总和。Mt是一个任意函数,它取决于相邻节点的隐藏状态和边缘。我们可以通过保留一些输入参数来简化这个函数。使用一个方程来更新节点Vt的隐藏状态:
h v t + 1 = U t ( h v t , m v t + 1 ) h_{v}^{t+1}=U_{t}\left(h_{v}^{t}, m_{v}^{t+1}\right) hvt+1=Ut(hvt,mvt+1)
​ 节点Vt的隐藏状态是通过用新获得的消息Mv更新旧的隐藏状态获得的。从上图可以了解,更新函数Ut是之前隐藏状态与消息的平均值。我们重复这个消息传递算法指定的次数。最后建立读出阶段公式:
y ^ = R ( { h v T ∣ v ∈ G } ) \hat{y}=R\left(\left\{h_{v}^{T} \mid v \in G\right\}\right) y^=R({ hvTvG})
​ 在该式,我们可以提取所有更新的隐藏状态并创建一个描述整个图的最终特征向量。然后将该特征向量作为标准机器学习模型的输入。

2. MPNN用于分子特性预测

​ 参考keras官方案例将通过MPNN来预测血脑屏障通透性(blood-brain barrier permeability)的分子特性。数据集将从MoleculeNet.org下载。

2.1 数据集

​ 该数据包含2050个分子。每个分子都有对应的名称,标签和SMILES字符串。BBB是将血液与脑细胞外液隔开的膜,因此阻止了大多数药物(分子)到达大脑。正因为如此,BBBP对于研究针对中枢神经系统的新药的开发非常重要。该数据集的标签是二进制(0或1),表示分子的渗透性。

​ 首先导入相关库:

import os

# Temporary suppress tf logs
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import warnings
from rdkit import Chem
from rdkit import RDLogger
from rdkit.Chem.Draw import IPythonConsole
from rdkit.Chem.Draw import MolsToGridImage

# Temporary suppress warnings and RDKit logs
warnings.filterwarnings("ignore")
RDLogger.DisableLog("rdApp.*")

np.random.seed(42)
tf.random.set_seed
  • 14
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MPNN(Message Passing Neural Network)是一种用于图数据的神经网络模型,与传统的图神经网络相比,它在消息传递和图更新的方式上有所不同,但也有相似之处。 首先,MPNN与传统图神经网络在图数据的表示上有相似之处,都需要将图数据转化为节点和边的特征向量表示。这样可以保留图的拓扑结构和节点的属性信息,便于网络学习和预测。因此,它们都可以用于图相关的任务,如节点分类、图分类等。 然而,在消息传递和图更新的方式上,MPNN与传统图神经网络存在差异。传统图神经网络通常使用全局池化操作,将所有节点的特征进行聚合,然后通过全连接层进行预测。这种方式忽略了不同节点之间的交互和信息传递。 相比之下,MPNN采用了消息传递的机制,通过节点之间的消息传递来更新节点的特征。它具有两个主要的步骤:消息传递和节点更新。在消息传递过程中,每个节点将自己的特征与其邻居节点的特征进行信息交互,通过消息函数将信息传递给邻居节点。在节点更新过程中,每个节点将接收到的消息进行聚合,并结合自身的特征进行更新。这种消息传递和节点更新的方式更加注重了节点之间的交互和信息传递,能够更好地学习图的局部结构和动态变化。 综上所述,MPNN与传统的图神经网络相比,在消息传递和图更新的方式上有一定的区别。MPNN通过消息传递和节点更新的方式来学习图的信息,更注重节点之间的交互和信息传递,能够更好地捕捉图的局部结构和动态变化。而传统图神经网络通常使用全局池化操作,对节点进行聚合处理。但它们都可以用于图相关的任务,根据具体的应用场景选择合适的模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值