Equivariant Graph Neural Networks

news2024/10/7 11:22:44

论文链接:https://arxiv.org/abs/2102.09844

  • 一种新模型来学习与旋转、平移、反射和排列等变的图神经网络,称为 E(n)-等变图神经网络 (EGNN)

尽管深度学习在很大程度上取代了手工制作的特征,但许多进步严重依赖于深度神经网络中的归纳偏差。(inductive bias)

将神经网络限制为和研究问题相关函数的一种有效方法是,利用问题的对称性、变换等变性(equivariance),通过研究某个对称组来简化当前问题的计算。

  • CNN的卷积是等变形、池化是近似不变性;
  • GNN的点的排列顺序是等变性(不同点的排列对应不同的邻接矩阵,但是最终这张graph表达的信息是一样的)

许多问题都表现出 3D 平移和旋转对称性

  • 这些对称操作的集合记为SE(3) ,如果包含反射,那么集合记为 E(3)。 通常希望对这些任务的预测相对于 E(3) 变换是等变的或不变的。

最近,已经提出了等变E(3) 或 SE(3) 的各种形式和方法。 其中许多工作在研究中间网络层的高阶表示类型方面实现了创新。 然而,这些高阶表示的转换需要计算成本高昂的系数或近似值。 此外,在实践中,对于许多类型的数据,输入和输出仅限于标量值(例如温度或能量,在文献中称为 type-0)和 3D矢量(例如速度或动量,在文献中称为 type-1)

  • 它是平移、旋转和反射等变 (E(n)),以及关于输入点集的置换等变。 模型比以前的方法更简单,同时模型中的等变性不限于 3 维空间,并且可以扩展到更大的维空间,而不会显着增加计算量。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

等变性:先平移/旋转/排列再映射,和先映射再平移/旋转/排列 效果是一样的

论文中探索了三种等变性:

  1. Translation equivariance
  2. Rotation and relection equivariance
  3. Permutation equivariance.
    • 置换同变性:在这里插入图片描述
    • 置换不变性:在这里插入图片描述
    • 简单来说,置换不变性使得输出与输入顺序无关,而置换同变性使得输出顺序与输入顺序对应
    • 显然置换同变函数后面接一个置换不变的函数,得到的函数还是置换不变的。
    • 什么时候需要这两类函数?因为图天然具有无序性,当我们关心节点特征时,我们希望改变节点标号时,节点特征不变,或者说节点特征的排序要根据节点编号做出重排,这时候就需要置换同变性;当我们关心图特征时,希望改变节点标号不影响图特征,就需要置换不变性。
    • GNN 的置换同变性称为全局同变性(Global Equivariance),将聚合算子的置换不变性称为局部不变性(Local Invariance),显然,局部不变性诱导全局同变性。
      • 聚合算子的置换不变性对于全局的置换同变性来说,是非必要的
      • 直接定义全部同变 GNN 仅有理论价值,无实际价值
    • 那么有没有办法设计新的不满足不变性的聚合算子,使得 GNN 整体上仍具有同变性,但是具有更强的表达能力呢?答案是肯定的,只需引入局部同变性(Local Equivariance),即
    • 局部同变性:相同邻域结构的节点具有相同的表示
      在这里插入图片描述
      在这里插入图片描述
  • 三大关键点:消息函数、更新函数和聚合函数 , 这决定了GNN的表达能力
    在这里插入图片描述

参考:https://www.cnblogs.com/hilbert9221/p/14443747.html

消息传递框架 MPNN

在这里插入图片描述
在这里插入图片描述

GCN & GAT & GSAGE

https://zhuanlan.zhihu.com/p/412296850

等变神经网络综述

  • 在物理和化学领域,很多问题需要去处理带有几何特征的图。

例如,化学小分子和蛋白质都可以建模成一个有原子和其化学键关系组成的几何图。在这个图中,除了包含原子的一些内在特征以外,我们还需要考虑到每个原子在空间的三维坐标这一几何特征。而在物理学的多体问题中,每个粒子的几何特征则包括坐标,速度,旋转等。

不同于一般特征,这些几何特征往往都具备着一些对称性和等变性。正因为如此,基于对对称性的建模,大量基于图神经网络的改进模型在近年来被提出。这一类模型,因为克服了传统图神经网络无法很好处理这类具有等变对称性质的特征的缺点,被统称为等变图神经网络。

例如,在预测分子的能量时,我们需要这个预测对于输入的几何特征是不变的,而在分子动力学应用中,我们则需要预测的结果和输入的几何特征是等变的。

通用框架

在这里插入图片描述

在这里插入图片描述

基于不可约表示信息的模型

这类模型基于表示论中关于紧群的线性表示可以拆解为一系列的不可约表示的直积这一理论。从而在 SE(3) 群中构建满足等变性质的消息模型。

  • 例如,在 TFN 中:
    在这里插入图片描述
    有大量的工作基于 TFN 结构做了相应的扩展,例如加入 Attention 机制, 引入非线性的 Clebsch-Gordan 系数等。但是这类方法计算复杂度都较高,且不可约表示仅仅适用于特定的群。这约束了这类模型的表达能力。

基于正则表示信息的模型

在这里插入图片描述
LieTransformer 基于此思想,引入了自注意力机制来进一步提高模型的性能。基于李群正则表示的模型在群的选取上更加灵活,但是由于要进行离散化和采样,需要在效率和性能之间做出权衡。同时,以上的更新只考虑了标量信息 h,但难以直接推广到对几何信息 x 的更新,除非综合哈密顿网络等工作中的更新方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/704185.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux watch命令

在Linux中,有时需要每隔一段时间比如一秒或者两秒刷新一次,这时就可以使用watch 命令。如图: 每隔两秒刷新查看一下磁盘使用情况。

Chrome DevTools常用功能指南

目录 Elements Styles DOM结构 增删属性 模拟元素的伪状态,方便调试 Computed Layout Event Listeners Network Application 资源列表(可改)本地存储Cookie、WebStorage(localStorage、sessionStorage) Sourc…

【Linux进程】进程状态 {进程状态的介绍,进程状态的转换,Linux中的进程状态,浅度睡眠VS深度睡眠,僵尸进程VS孤儿进程,调度器的作用}

进程状态 一、基本进程状态 1.1 进程状态介绍 创建状态:当一个进程被创建时,它处于创建状态。在这个阶段,操作系统为进程分配必要的资源(将代码和数据拷贝到内存,创建PCB结构体等),并为其分配一…

SpringBoot开发Restful风格的接口实现CRUD功能

基于SpringBoot开发一个Restful接口 前言一、什么是SpringBoot?二、实战---基于SpringBoot开发一个Restful接口1.开发前的准备工作1.1 添加相关依赖 (pom文件) 1.2 创建相关数据库和表1.3 数据库配置文件 2.实战开发---代码逻辑2.1 实体类2.2…

数据结构 | 顺序队列

一、数据结构定义 typedef int QueueType; typedef struct seqQueue {int MAXNUM; // 队列中能存放的最大元素个数int front, rear; // 队列的队首,队尾QueueType element[100]; // 存放连续空间的起始地址 } *SeqQueue; 二、方法概览 SeqQueu…

软件测试不行了?2023软件测试行情分析

1 绪论 本文先对互联网对时代和社会变革进行了论述,然后再由互联网时代对软件工业模式变革进行了介绍,最后引出附属于软件工业的测试行业在新形势下的需求变化,并对趋势进行了分析,并最终给出了相关的从业人员的职业发展建议。…

《PyTorch深度学习实践》第五讲 用PyTorch实现线性回归

b站刘二大人《PyTorch深度学习实践》课程第五讲用PyTorch实现线性回归笔记与代码:https://www.bilibili.com/video/BV1Y7411d7Ys?p5&vd_sourceb17f113d28933824d753a0915d5e3a90 PyTorch官网教程:https://pytorch.org/tutorials/beginner/pytorch_w…

vue3 elementplus table根据某id相同合并单元格

根据表格中id相同的合并单元格 1.标签上加入合并方法 <el-table:data"tableData.data"selection-change"handleSelectionChange":span-method"arraySpanMethod">/*** 合并行*/ interface SpanMethodProps {row: ListPageType;column: Tabl…

Edge浏览器提示您开启了窗口拦截程序解决方法

最近在使用edge浏览器兼容性的时候&#xff0c;发现登录窗口弹出后&#xff0c;经常被拦截&#xff0c;后面经过在网上上和自己实际测试&#xff0c;终于解决了这个问题。 操作步骤如下&#xff1a; 第一步&#xff0c;找到右上角三个点的图标&#xff0c;点击一哈 第二步&am…

基于Java校园教务系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

无权限复制时怎样获取内容

在body中contenteditable"true"&#xff0c;然后直接在html文档中复制

【Spring Boot统一功能处理】用户登录权限校验与拦截器,拦截器与传统的校验方式想比有什么好处呢? ? ?我们一起去探索其中的奥秘吧! ! !

前言: 大家好,我是良辰丫,今天我们要学习Spring Boot统一功能处理,什么叫统一功能呢?我们在javaEE初阶学习过前后端交互,约定交互时的统一格式,其中这种约定就是一个统一功能.&#x1f48c;&#x1f48c;&#x1f48c; &#x1f9d1;个人主页&#xff1a;良辰针不戳 &#x1f…

VS Code报错 No module named ‘torch‘ (但已经安装了pytorch)

一、复现错误程序 创建一个python文件 test.py&#xff0c;其内容为&#xff1a; import torch print(torch.__version__)使用VS Code打开并运行该程序时&#xff0c;会出现以下错误&#xff1a; ModuleNotFoundError: No module named ‘torch’ 二、解决方案 选择适合的Pyt…

Python测试应用与工具

文章目录 前言环境准备unittestpytestpytest插件 mock最后 前言 例如&#xff1a;随着人工智能的不断发展&#xff0c;机器学习这门技术也越来越重要&#xff0c;很多人都开启了学习机器学习&#xff0c;本文就介绍了机器学习的基础内容。 Python测试应用与公具 今天跟大家分享…

MVTEC 3D dataset

官网&#xff1a;https://www.mvtec.com/company/research/datasets/mvtec-3d-ad/downloads https://www.mvtec.com/company/research/datasets/mvtec-3d-adhttps://www.mvtec.com/company/research/datasets/mvtec-3d-ad 数据大小&#xff1a;13个G 1. 介绍 MVTec 3D异常检测…

【lora模块调试:亿百特lora-型号E22-400T30D-V=初步调试踩坑-认识模块-了解协议(1)】

【lora模块调试&#xff1a;亿百特lora-型号E22-400T30D-V初步调试踩坑-认识模块-了解协议&#xff08;1&#xff09;】 1、概述2、实验环境3-1&#xff1a;先行了解3-2&#xff1a;经验总结4、硬件线路连接方式1、厂家提供的ttl转usb的模块2、使用开发板上的串口3、自己弄个转…

基于Java+Vue前后端分离网上拍卖系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

智能批量剪辑系统源码开发者如何减少服务器成本?

一、智能混剪批量剪辑自研与接入第三方“如阿里云”接口的差别 智能混剪批量剪辑自研和接入第三方"如阿里云"接口的差别主要在于技术实现和功能定制。自研混剪系统需要团队投入大量时间和资源来研发和维护&#xff0c;并且能够根据用户需求定制和优化功能&#xff0…

6 中断概览(STM32HAL库)

目录 中断概览 STM32异常和中断介绍 STM32的异常一览 STM32的中断表一览 中断的优先级 中断的优先级分组 优先级分组 嵌套向量中断控制器(NVIC)功能 中断概览 什么是中断&#xff1f; 中断是指计算机运行过程中&#xff0c;出现某些意外情况需主机干预时&#xff0c;机器…

如何理解Spring Bean?

文章目录 一、什么是 Spring Bean&#xff1f;二、定义Spring Bean 有哪些方式&#xff1f;三、Spring 容器是如何加载 Bean 的&#xff1f; 我一共分三段来介绍&#xff0c;首先&#xff0c;介绍什么是 Spring Bean&#xff1f;然后&#xff0c;定义Spring Bean 有哪些方式&am…