当前位置: 首页 > news >正文

图神经网络和分子表征:5. Completeness

大家都知道 “两点确定一线,三点确定一平面”,那么多少个变量可以确定一个分子呢?这是最近顶刊们热烈讨论的话题。
(据笔者不完全统计)最早在 SphereNet (2022 ICLR)论文里,摘要上就开始讨论 completeness 了。后来,ClofNet (2022 ICML)和 ComENet (2022 NeruIPS)直接在标题里就标明 Complete (两个Net名字中的 C 就是 Complete 意思)。

从模型设计角度看,实现 Completeness 似乎成为了提升模型性能的一条捷径。诸多研究小组加入战场,completeness 这个词逐渐演变成了罗生门。在最近的 LEFTNet (2023 NeruIPS)中,作者重新提及 completeness ,似乎能够从一个更高的视角看待这一问题。

本文将首先介绍 SphereNet 和 ClofNet 中有关完备性的观点。两篇论文的作者均花费很多篇幅强调模型的完备性,却没有深入思考 local completeness 如何转化为 global completeness。ComENet 首先意识到了这一点,通过固定两个刚体结构间的旋转键尝试固定整个分支。然而,ComENet 对刚体结构间的相对自由度进行了误判,仅仅考虑了两刚体结构共线平面中的一个自由度,没有将其放在立体的环境中思考。最后,LEFTNet 仔细论证了这一点,补齐了全部三个自由度,最终实现了 Global Completeness。

这篇博客中,我将首先介绍不变模型考虑 Completeness 的代表 SphereNet,向量模型考虑 Completeness 的代表 ClofNet。最后,我将介绍对 local to global 展开讨论的两篇文章 ComENet 和 LEFTNet。

SphereNet 中的 Completeness

在 图神经网络和分子表征:3. 不变网络最后的辉煌-CSDN博客 中我们提到,SphereNet 是 DimeNet 的改进之作。一个朴素的想法是,在引入角度的基础上进一步引入二面角将十分有潜力进一步提高精度。当然,这并非是 AI 研究员首创的想法。

在传统的计算化学领域,距离、角度、二面角所构成的内坐标体系已经被广泛用于改造输入坐标。基于内坐标的几何构型优化被认为大幅降低了势能面的自由度,提高了构型优化的速度。例如,Gaussian 就支持冗余(Redundant)内坐标、z-matrix,广义内坐标(generalized internal coordinates)等关键词。大家感兴趣可以看以下链接中的说明:

z-matrix:

  1. 维基百科:https://en.wikipedia.org/wiki/Z-matrix_(chemistry)
  2. 一个案例:https://www.chm.bris.ac.uk/pt/ajm/mmhtm/MM_L2p16.htm
  3. 优缺点详细解析:https://www.cup.uni-muenchen.de/ch/compchem/geom/internal.html

冗余内坐标(Gaussian 构型优化默认格式):https://gaussian.com/opt/

广义内坐标:https://gaussian.com/gic/

形式多样内坐标的设计本意是希望3D坐标能够由距离、角度、二面角唯一表示,并能够据此复现出原始结构。如下所示:
在这里插入图片描述
SphereNet 原文中多次提到的完备性正是基于这样的理念:

  1. 3D 坐标可以预测性质。
  2. 3D 坐标能够转化为不变性的距离、角度、二面角。
  3. 距离、角度、二面角能够预测不变性质。
    在这里插入图片描述

作者思路可以进一步小结为:之前的模型只是将 3D 坐标转换成了距离和角度,我把二面角添上就完备了,所以一定会有精度提高!具体转换框架见 图神经网络和分子表征:3. 不变网络最后的辉煌-CSDN博客

其实这样的想法忽略了很多问题:

  1. 3D 坐标转化为距离、角度、二面角不能有信息损失。换言之,作者设计的转换框架需要有效鉴别所有结构。但是作者在原文就列举了一个反例,作者设计的框架可以鉴别手性分子(下图a,b),但不能鉴别一些特殊案例(下图b,c):
    在这里插入图片描述

  2. 3D 坐标转换为内坐标的方式并非只有唯一解。在 z-matrix 的这个案例中(Internal coordinates of a molecule (bris.ac.uk)),乙烯6个原子,3个原子的确定都涉及了二面角,但是参考平面可以有多种选择。作者在原文指出,GemNet 3-hop 的消息传递模式可以做到完备性,笔者此处表示质疑。如何设计规则拿到正则、完备、物理的几何信息,传统的量子化学软件已经给出了很多解(见上),SphereNet 和 GemNet 显然没有达到上述方法的理论深度。
    请添加图片描述

  3. 即便转换过程没有损失,消息传递(local to global)过程 也会带来损失。SphereNet 原文完全没有考虑到消息传递(local to global)过程。这一点同样出现在 ClofNet 中,而 ComENet 和 LEFTNet 都对这一过程进行了讨论。

总体来说,SphereNet 中的 Completeness 还是一个 local Completeness。作者的想法就是对 3D 坐标完成不变替代,没有深入考虑后续传递过程。

ClofNet

ClofNet 这个框架本系列还没详细讲过。这篇论文和 LEFTNet 一样,读起来让人非常痛苦。下面就简单介绍下笔者的理解吧。

ClofNet 故事起源

ClofNet 在故事开头指出,现有表征框架无法有效纳入恒电势等真实物理环境。
在这里插入图片描述
在之前的表征框架中(EGNN),两原子排斥力可以映射到原子向量差上。但原子向量差的形式无法有效反应外加的恒电场。作者指出,如果我们能够建立起一个局域的坐标系,就可以将各种方向的向量标量化。如此以来,我们在消息传递的内部,可以只用标量

ClofNet 中的 Complete local frame

ClofNet 论文读起来有着对 EGNN 非常明显的模仿痕迹。比如公式 1 直接照搬了 EGNN 的定义
请添加图片描述

EGNN 本身是一个非常经典的框架,此处碍于笔者的精力,不作展开。

但原作者一个很明显的思路是:EGNN 基于原子坐标向量差去做迭代,只能做原子连线上的性质预测,例如原子受力,类似恒电势就不行。为了解决这个问题,作者拓展了原子坐标向量差的概念:坐标向量差,坐标向量叉乘定义一个平面,加上该平面上的法向向量,三个向量构成了一个正则坐标系

请添加图片描述

任何有关两原子的向量在该正则坐标系下均有唯一标量坐标,这样即可完成向量向标量的映射。

ClofNet 中的消息传递

写到这里的时候,笔者已经看 ClofNet 这篇论文很久了。这篇论文里的定理证明实在是太多了,这里只放一下笔者粗浅的理解。

一种尝试理解新模型的方式是用已经建立起的框架规则去套。在 On the Expressive Power of Geometric Graph Neural Networks 这篇论文里,作者对 PAINN 做了如下归纳总结:

在这里插入图片描述

其消息传递过程可以归纳为向量和标量两条平行的路径。

前文已经提到,ClofNet 的消息传递和 EGNN 是基本一致的:
请添加图片描述

我们从下往上看,第2,3行公式表明 ClofNet 依旧是面向点编程的,将点的性质作为核心的迭代对象。同时,ClofNet 采用和 PAINN 一致的思路,即,标量、向量两条并行的迭代路线

ClofNet 和 PAINN 的不同之处在于消息本身的设计(第一行),以及消息是如何影响向量性质迭代的(第二行),标量性质的迭代似乎和 PAINN 是一样的。

PAINN 里,消息分为了标量的消息和向量的消息,分别用于标量和向量的迭代。但是 ClofNet 似乎仅有标量的消息,向量的消息通过标量的向量化实现。(第二行)

其实说到这里,把上述三段话中的 ClofNet 换成 EGNN 也完全成立。标量的向量化这个概念已经出现在了 EGNN 的设计框架中。所以,ClofNet 真正的创新在于局域坐标系的建立,进而拓展了向量标量间相互转化这个概念。

现在我们小结一下 ClofNet 的消息传递过程:

  1. 从大的视角看, ClofNet 遵从了 PAINN 的设计思想,面向点编程+向量、标量两条平行的迭代路线。我们可以直接套用 PAINN 的图:

    在这里插入图片描述

  2. 当然,需要把两个 m 的来源抹掉,同时向量 m 依赖于标量 m
    在这里插入图片描述

  3. 在构建这两个 m 的过程中, ClofNet 设计了一个完备的局域坐标系,将向量标量化,进行迭代计算后再重新向量化。

具体实现细节,请各位读者阅读原文和源码。

ClofNet 中的 Completeness

前文中,我们介绍了 SphereNet 的 Completeness。可以看到,作者十分强调3D坐标向不变几何信息转化的过程中不能出现信息损失。 ClofNet 中并不涉及复杂的多体几何关系, ClofNet 和 PAINN 一样是向量、标量双通路模型。因此,角度、二面角信息隐藏在了向量模型的加减中,无需多虑。笔者认为, ClofNet 中的 Completeness 更多是相对于 EGNN 而言的。因为 EGNN 只能表示原子连线方向的性质(原子相互作用力等),而 ClofNet 则进一步,通过设计局域坐标系,实现了恒电势等向量信息的拟合。意义不在于增加了多少的几何鉴别能力,而是增加了完备的、无损的向量信息拟合能力,因此叫 complete。

值得注意的是,此处的 complete 依然是一个局域的概念,因为作者并没有考虑 local to global 对 Completeness 的影响,这一点在 LEFTNet 中被重点讨论。

ComENet 和 LEFENet 中的 Completeness

ComENet 的消息传递过程在前面博客已经讲过了。图神经网络和分子表征:3. 不变网络最后的辉煌-CSDN博客

在 ComENet 论文的2.2节,作者详细介绍了引入第二个二面角的目的:

  1. 在距离+角度+一个二面角的模式下,我们可以做到局域结构的完备性,但这只局限于一近邻的范围。这跟 SphereNet 的思路基本一致 (SphereNet 做到了二近邻的完备性)。
  2. 如下图所示,局域坐标系的设定可以将R1和R2两个基团变成刚体(完备性),但是包含R1和R2的整个分支是否是一个刚性结构呢?

在这里插入图片描述

  1. 这就是前文多次提到的,local to global 的完备性。ComENet 是这样解释的:i 的 local 是蓝色区域,可以看作上图中的其中一个基团 R1。j 的 local 是黄色区域,可以看作上图基团 R2. 刚性结构 R1 和 R2 间唯一的自由度就是两个刚性结构的夹角,下右图。如果我们把这个夹角固定,整个分支就变成了一个刚性结构。考虑到每个节点都将衍生出一个 local,只要我们能将相邻两个 local 完全冻住,整个体系又是一个连通图,这样整个体系都将被唯一确定。

在这里插入图片描述

  1. 这是 ComENet 中的描述,整个论证过程十分精彩,但是在 LEFTNet 中,作者指出 刚性结构 R1 和 R2 间自由度并不唯一,如果我们在 R1 和 R2 中分别建立局域正交坐标系,那么两个坐标系间的相互转换存在 3 个自由度。 ComENet 描述简化了两个刚体结构。将 刚体结构 R1 简化为了 上右图紫色平面, R2 简化为了上右图黄色平面。如果我们只是平面间的 Freeze,确实只需要一个自由度。但事实是,两个刚体结构都是立体的,我们应该考虑的是两个立体空间相互之间的转换。

在这里插入图片描述

  1. 如上图所示,作者十分犀利的指出,ComENet 中的 torsion angle 只是两个 local frames 相互转换间的其中一个自由度。
  2. LEFTNet 通过设计合理的消息传递机制(FTE)实现了 local to global 的完备性. LEFTNet 的技术细节太多,后面再详细展开。

相关文章:

图神经网络和分子表征:5. Completeness

大家都知道 “两点确定一线,三点确定一平面”,那么多少个变量可以确定一个分子呢?这是最近顶刊们热烈讨论的话题。 (据笔者不完全统计)最早在 SphereNet (2022 ICLR)论文里,摘要上就…...

css-渐变色矩形

效果图&#xff1a; 代码&#xff1a; html: <!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"viewport" content"initial-scale1.0, user-scalableno" /><title></title><link …...

使用easypoi-spring-boot-starter 4.1.1导入excel报错NoSuchMethodError和NoSuchMethodError

前言 使用easypoi进行excel的导入遇到的错误以及解决办法 easypoi项目地址&#xff1a;https://gitee.com/lemur/easypoi easypoi的Maven依赖&#xff1a; <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter<…...

matlab中类的分别之handle类和value类——matlab无法修改类属性值的可能原因

写在之前&#xff08;吐槽&#xff09; 最近由于变化了一些工作方向&#xff0c;开始需要使用matlab进行开发&#xff0c;哎哟喂&#xff0c;matlab使用的我想吐&#xff0c;那个matlab编辑器又没代码提示&#xff0c;又没彩色&#xff0c;我只好用vscode进行代码编辑&#xf…...

3. t2t_vit inference

前言 对vit 进行fp16推理 参考链接: https://github.com/open-mmlab/mmpretrain/tree/master/configs/t2t_vit run code : https://mmclassification.readthedocs.io/en/latest/getting_started.html#inference-and-test-a-dataset https://mmclassification.readthedo…...

SpringMVC Day 05 : Spring 中的 Model

前言 欢迎来到 SpringMVC 系列教程的第五天&#xff01;在之前的教程中&#xff0c;我们已经学习了如何使用控制器处理请求和返回视图。今天&#xff0c;我们将深入探讨 Spring 中的 Model。 在 Web 应用程序开发中&#xff0c;数据的传递和展示是非常重要的。SpringMVC 提供…...

redis6.0源码分析:字典扩容与渐进式rehash

文章目录 字典数据结构结构设计dictType字典类型为什么字典有两个哈希表&#xff1f;哈希算法 扩容机制扩容前置知识字典存在几种状态&#xff1f;容量相关的关键字段定义字典的容量都是2的幂次方 扩容机制字典什么时候会扩容&#xff1f;扩容的阈值 & 扩容的倍数哪些方法会…...

【C++迭代器iterator】

迭代器 i t e r a t o r 迭代器iterator 迭代器iterator 在 容器 v e c t o r 容器vector 容器vector 中的使用 迭代器 i t e r a t o r 迭代器iterator 迭代器iterator 一般使用在 容器 v e c t o r 容器vector 容器vector 的 遍历 遍历 遍历&#xff0c;充当 遍历指针 遍…...

基于群居蜘蛛算法的无人机航迹规划

基于群居蜘蛛算法的无人机航迹规划 文章目录 基于群居蜘蛛算法的无人机航迹规划1.群居蜘蛛搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用群居蜘蛛算法来优化无人机航迹规划。 …...

火爆全网,Python+Requests+Pytest+YAML+Allure实现接口自动化测试(附源码)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 本项目实现接口自…...

【深度学习】【NLP】如何得到一个分词器,如何训练自定义分词器:从基础到实践

文章目录 什么是分词&#xff1f;分词算法使用Python训练分词器步骤1&#xff1a;选择分词算法步骤2&#xff1a;准备训练语料步骤3&#xff1a;配置分词器参数步骤4&#xff1a;训练分词器步骤5&#xff1a;测试和使用分词器 代码示例&#xff1a;使用SentencePiece训练分词器…...

线程池的线程回收

线程池 线程池里面分为核心线程和非核心线程。 核心线程是常驻在线程池里面的工作线程&#xff0c;它有两种方式初始化&#xff1a; 向线程池里面添加任务的时候&#xff0c;被动初始化 主动调用 prestartAllCoreThreads 方法 当线程池里面的队列满了的情况下&#xff0c;为了增…...

【2023.10.25练习】数据库-函数1

任务描述 本关任务&#xff1a;编写函数fun_1完成学生选课操作。输入参数&#xff1a;学号、课程名&#xff0c;函数返回值&#xff1a;操作结果。 如果该生已有该门课程的选修记录&#xff0c;则函数返回-1&#xff1b;如果该门课程无先修课&#xff0c;则将选课信息添加到选…...

基于水循环算法的无人机航迹规划-附代码

基于水循环算法的无人机航迹规划 文章目录 基于水循环算法的无人机航迹规划1.水循环搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用水循环算法来优化无人机航迹规划。 1.水循环…...

JVM调优(10)JVM的运行时数据区

一、概述 对于 C C 来说&#xff0c;在内存管理领域&#xff0c;JVM既拥有最高的权利&#xff0c;但是同时他们又是从事最基础工作的劳动人员&#xff0c;因为他们担负着每一个对象从开始到结束的维护责任。而对于Java来说&#xff0c;再虚拟机自动内存管理的帮助下&#xff0…...

Python网络爬虫介绍

视频版教程&#xff1a;一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium 什么是网络爬虫&#xff1f; 网络爬虫&#xff08;又称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在FOAF社区中间&#xff0c;更经常的称为网页追逐者&#xff09;&#xff…...

iOS QR界面亮度调整

亮度调事&#xff0c;不久在QR界面切换的时候还要考虑进入前台后台时的操作 1.QR界面功能实现代码。 QR界面- (void)viewWillAppear:(BOOL)animated {[super viewWillAppear:animated];[[NSUserDefaults standardUserDefaults] setValue:([UIScreen mainScreen].brightness) …...

Linux shell编程学习笔记17:for循环语句

Linux Shell 脚本编程和其他编程语言一样&#xff0c;支持算数、关系、布尔、字符串、文件测试等多种运算&#xff0c;同样也需要进行根据条件进行流程控制&#xff0c;提供了if、for、while、until等语句。 之前我们探讨了if语句&#xff0c;现在我们来探讨for循环语句。 Li…...

Go语言用Resty库编写的音频爬虫代码

目录 一、Go语言与Resty库简介 二、音频爬虫的实现 1、确定抓取目标 2、使用Resty发送HTTP请求 3、解析响应数据 4、下载音频文件 5、并发下载音频文件 三、注意事项 总结 随着互联网的飞速发展&#xff0c;网络爬虫逐渐成为数据获取和分析的重要工具。在音频领域&…...

AWTK 液体流动效果控件发布

液体流动效果控件。 主要特色&#xff1a; 支持水平和垂直方向。支持正向和反向流动。支持设置头尾的图片。支持设置流动的图片。支持设置速度的快慢。支持启停操作。 准备 获取 awtk 并编译 git clone https://github.com/zlgopen/awtk.git cd awtk; scons; cd -运行 生成…...

紧急提醒!项目管理人员不要乱签字,否则真会坐牢!

在工程项目里&#xff0c;人证不合一早已不是新鲜事&#xff0c;项目经理、安全员、资料员之间“代签”几乎成了一种心照不宣的默契。忙起来的时候&#xff0c;一张签到表、一份验收单传过来&#xff0c;顺手帮不在场的同事填上名字&#xff0c;很多人觉得这不过是抬抬手的事&a…...

还在熬夜起草各类通知?2026便捷AI办公好物,轻松写完正式公文

作为一名在行政岗摸爬滚打五年的职场人&#xff0c;我每天的工作不是泡在各类会议里&#xff0c;就是埋头起草通知、整理纪要。相信不少行政、文秘岗位的朋友都和我有一样的困扰&#xff1a;公司部门多、会议密&#xff0c;每周光是例会、项目协调会、临时部署会就要开三四场&a…...

利用 AI 导出鸭将 DeepSeek 内容一键转为 PDF

在日常使用 AI 助手进行技术调研或文档整理时&#xff0c;我们常常会遇到一个痛点&#xff1a;生成的优质内容往往停留在网页对话框中&#xff0c;难以直接转化为便于归档、打印或离线阅读的格式。尤其是像 DeepSeek 这样输出结构清晰、代码片段丰富的长文&#xff0c;如果只能…...

视频理解新范式:COOT模型实现对象-场景联合建模的视频描述生成

1. 项目概述&#xff1a;让视频自己“开口说话”的底层逻辑你有没有遇到过这样的场景&#xff1a;手头有一段3分钟的产品演示视频&#xff0c;需要快速生成一段精准的图文摘要发给客户&#xff1b;或者在做无障碍内容开发时&#xff0c;得为一段教学视频配上逐帧语义描述&#…...

如何快速配置FanControl风扇控制:从安装到优化的完整指南

如何快速配置FanControl风扇控制&#xff1a;从安装到优化的完整指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending…...

【设计模式 14】责任链:谁来拍板

这一课讲责任链模式。什么在变&#xff1a;处理链路经常调整&#xff0c;审批层级和条件经常变。怎么挡&#xff1a;处理者串成链&#xff0c;每个只决定"签还是传"。那张采购申请单在三个部门之间转了十七天。 十七天。买的东西是一批进口检测设备&#xff0c;总价两…...

DeepSeek-R1 vs Qwen2.5 vs Claude-3:17项硬指标对比,谁才是2024高性价比AI模型黑马?

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek性价比优势分析 DeepSeek 系列模型&#xff08;如 DeepSeek-V2、DeepSeek-Coder、DeepSeek-MoE&#xff09;在开源大模型生态中展现出显著的性价比优势&#xff0c;尤其在推理效率、训练成本与下游任务…...

扫描电镜(SEM)会产生哪些信号?

当高能电子束与样品相互作用时&#xff0c;会产生多种类型的信号。这些信号提供了有关材料表面形貌、成分和结构的关键信息。1.二次电子&#xff08;SE&#xff09;是入射电子将样品表面附近原子中的低能电子激发出来的。它们携带表面敏感信息&#xff08;深度<10 nm&#x…...

UE4SS终极指南:掌握虚幻引擎游戏修改的核心技术

UE4SS终极指南&#xff1a;掌握虚幻引擎游戏修改的核心技术 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_mirrors/re/RE-UE4SS UE…...

ElevenLabs支持贵州话吗?2024最新实测结果+3种绕过官方限制的合规接入方案

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;ElevenLabs对贵州话的原生支持现状与底层语音技术解析 ElevenLabs当前官方模型库中尚未提供针对贵州话&#xff08;含贵阳话、遵义话等主要方言变体&#xff09;的独立语言选项或预训练语音模型。其公开支持的…...