©PaperWeekly 原创 · 作者|张玮玮
学校|东北大学硕士
研究方向|情绪识别
论文标题:
Crystal Graph Neural Networks for Data Mining in Materials Science
论文链接:
https://storage.googleapis.com/rimcs_cgnn/cgnn_matsci_May_27_2019.pdf
代码链接:
https://github.com/Tony-Y/cgnnOQMD 数据库(这个数据库比较大,提供 python API 与晶体结构可视化,可以使用 MySQL 读入):OQMD [2]
晶体材料性质一般通过输入晶胞内的原子数目、原子分子坐标、晶格常数利用密度泛函理论(DFT)计算得出。机器学习方法在加速新材料设计方面正变得越来越流行,其预测材料性能的准确性接近从头算计算,但计算速度要快数量级。最近有人提出用称为晶体图来表示晶体材料 [1] ,适应于晶体图的卷积神经网络利用平衡键距作为空间信息成功地预测了材料的体积特性。预备知识
1.1 晶格常数(点阵常数) 晶胞三个棱的常数以及这三个棱之间的夹角 6 个参数组成。按晶格常数的不同可以分为七大晶系。在本文中点阵矢量定义为 。1.2 原子坐标
原子坐标有两种表示形式:分数坐标和笛卡尔坐标。分数坐标是把点阵矢量看成是单位矢量下确定原子位置; 笛卡尔坐标是绝对坐标,是直角坐标系与斜角坐标系的统称,考虑点阵常数的大小。本文利用的是原子的分数坐标 。笛卡尔坐标可以和分数坐标相互转换,在 定义的晶胞中,第 个原子的笛卡尔位置计算为 ,单元格体积 必须大于 0。 1.3 晶体性质 晶体材料的总能量取决于晶体结构 ,并且可以使用 DFT 来近似计算,其中,原子数目为 。近似能量表示为:,可以通过最小化总能量来得到平衡结构: 表示平衡能的最小值。DFT 计算也给出体积特性,如形成能 、单位单元体积 、带隙 和总磁化强度 。 1.4 数据集 现有的理论材料数据库包含了无机晶体材料的松弛结构及其性能。The Materials Project(MP)数据库拥有 86k 条目,大多与实验观察到的结构有关。The Open Quantum Materials Database(OQMD v1.2)包含 563k 个与实验和假设化合物相关的条目。晶体图神经网络
晶体图神经网络(CGNNs)引入了一种比例不变的图协调器(Crystal Graph Coordinator)来构成晶体图,用于在 OQMD 数据集上训练 CGNN 模型。CGNN模型对每一种测试材料的形成能、单元体积、带隙和总磁化强度等体积特性进行了预测,其平均误差小于数据库中相应的误差。将预测的带隙和总磁化率用于金属绝缘体和非磁-磁材料二元分类。 CGNN 框架如图 1 所示,CG-Gen 是原子序数的函数,会产生平衡结构下的晶体图 , 是有向边的集合 。P-CGNN 是一个预测平衡特性的多任务模型,。S-CGNN 是在 条件下,推导出晶胞形状 和原子分数坐标 。本文通过预测的晶胞体积来缩放 来获得平衡晶胞 。2.1 The Crystal Graph Coordinator
为了训练 CGNN 和 CG-Gen,框架需要一组由平衡结构组成的晶体图。在晶体学中,用泰森多边形找出原子的最近邻居,参考文献 [1] 运用了该方法。CGNN 引入了一种晶体图协调器,它通过聚类来连接原子间的原子间距。由于使用了体积校正因子和缩放距离,晶体图在单位单元的任何均匀变形下都具有不变性。伪代码如下图所示:源代码如下所示:
def get_neighbors(geom):
elems = [Element.from_Z(z) for z in geom.atomic_numbers]#通过原子序数来得到元素种类;OQMD数据库共有89种化学元素,原子序数为1到83,89到94
radii = np.array([get_radius(e) for e in elems])#原子半径是从PyMatGen库获得
cutoff = radii[:,np.newaxis] + radii[np.newaxis, :]#将任意两个原子的半径相加,比如有4种原子,则返回一个4*4的矩阵。
vol_atom = (4 * np.pi / 3) * np.array([r**3 for r in radii]).