nature communications论文 解读

题目《Transfer learning with graph neural networks for improved molecular property prediction in the multi-fidelity setting》

这篇文章主要讨论了如何在多保真数据环境(multi-fidelity setting)下,利用图神经网络(GNNs)结合迁移学习技术,改进分子性质预测的效果。

研究背景:

在分子性质预测中,不同来源的数据通常具有不同的保真度

  • 低保真数据:便宜、容易获取,但预测精度较低(如粗粒度模拟数据)。
  • 高保真数据:更准确,但代价昂贵(如实验测量或高精度量子化学计算)

  • 迁移学习的基本方法

  • 迁移学习(Transfer Learning)是解决多保真问题的一种策略,分为两个步骤:

  • 预训练(Pre-training)

    • 在低保真数据集 DSD_SDS​ 上训练模型,学习低保真领域的特征。
    • 结果是一个在低保真任务上的预测器 fSf_SfS​。
  • 微调(Fine-tuning)

    • 将预训练模型的部分权重迁移到高保真任务的模型 fTf_TfT​,并在高保真数据集 DTD_TDT​ 上进行微调。
    • 通常,模型的一些层会被冻结(如图卷积层),只训练其余部分,以避免过拟合并减少计算复杂度。

 

图神经网络中的实现

在 GNN 框架下,模型可以分为两部分:

  • 图卷积层(GCN layers):提取图结构的特征。
  • 读出层(Readout layers):将图卷积层的输出转换为最终预测。
冻结策略:

GNN 的迁移学习可以根据冻结部分的不同分为以下三种方法:

  1. 冻结图卷积层,训练读出层:只更新输出部分,适合低保真和高保真领域特征相似的场景。
  2. 训练图卷积层,冻结读出层:对图结构进行进一步调整。
  3. 全部可训练:不冻结任何层,适合当领域间差异较大时。

文章中的实验结果表明,冻结图卷积层、训练读出层的效果最好。

 方法:

迁移学习

带自适应读出层的图神经网络(GNN)监督式变分图自动编码器(VGAE)

 

基于图神经网络的多保真度数据迁移学习结构图

图神经网络中的标准读出函数(如求和、求平均和求最大值)没有任何参数,因此不适合迁移学习任务。本文提出了一种新的神经网络架构读出函数,它能够将学习到的节点表示聚合为图嵌入。在微调阶段,固定图神经网络中负责学习节点表示的部分,并在小样本的下游任务中微调读出层。本文采用了集合Transformer读出函数,保留了标准读出函数的排列不变性特性。因为图可以看作节点的集合,本文利用这种架构作为图神经网络的读出函数。

在该Transformer中,编码器由多个经典的多头注意力块组成,但没有位置编码。解码器组件由投影的多头注意力块组成,经过多个自注意力模块链和线性投影块进行进一步处理。与典型的基于集合的神经网络结构只能单独处理单个元素不同,本文提出的自适应读出函数能够建模由邻域聚合方案生成的所有节点表示之间的相互作用。该架构的一个特点是,图表示的维度可以从节点输出的维度和聚合方案中分离出来。

变分图自编码器(VGAE)

变分图自编码器(VGAE)由概率编码器和概率解码器组成。与在向量值输入上操作的标准变分自编码器(VAE)架构不同,VGAE通过图卷积层的叠加得到编码器部分,学习表示隐空间编码高斯分布的参数矩阵μ和σ。该模型通常假设图中存在自环,即邻接矩阵的对角线由1组成。解码器通过sigmoid函数传递隐变量之间的内积,从而重构邻接矩阵中的元素。通过优化证据下界(ELBO)损失函数来训练VGAE,该损失函数由表示学习的重建误差和变分分布q(⋅)与先验p(⋅)之间的Kullback-Leibler散度(KL散度)正则化项组成。由于图的邻接矩阵通常是稀疏的(即Aij=0的元素远多于Aij=1的元素),因此在训练过程中通常对Aij=0的样本进行采样,而不是取所有的负样本。

作者通过在VGAE的表示空间中加入前馈组件,将标签信息引入VGAE的训练优化过程,从而实现了有监督的变分图自编码器。实际上,从传统的VAE过渡到图上的VGAE,再到建模分子结构的VGAE并非简单的过程,主要有以下两个原因:一是原始VGAE只重建图的连通性信息,而不重建节点(原子)特征。这与传统的VAE不同,后者的潜在表示直接针对实际输入数据进行优化。二是对于分子级别的预测任务和潜在空间表示,VGAE的读出功能至关重要。标准读出函数会导致类似完全无监督训练的无信息表示,在迁移学习任务中表现较差。因此,本文提出的监督变分图自编码器在图表示学习方面是一个重要进步,尤其适用于建模具有挑战性的分子任务。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter:SlideTransition位移动画,Interval动画延迟

配置vsync&#xff0c;需要实现一下with SingleTickerProviderStateMixinclass _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin{// 定义 AnimationControllerlate AnimationController _controller;overridevoid initState() {super.…

svn 崩溃、 cleanup失败 怎么办

在使用svn的过程中&#xff0c;可能出现整个svn崩溃&#xff0c; 例如cleanup 失败的情况&#xff0c;类似于 这时可以下载本贴资源文件并解压。 或者直接访问网站 SQLite Download Page 进行下载 解压后得到 sqlite3.exe 放到发生问题的svn根目录的.svn路径下 右键呼出pow…

GPT系列文章

GPT系列文章 GPT1 GPT1是由OpenAI公司发表在2018年要早于我们之前介绍的所熟知的BERT系列文章。总结&#xff1a;GPT 是一种半监督学习&#xff0c;采用两阶段任务模型&#xff0c;通过使用无监督的 Pre-training 和有监督的 Fine-tuning 来实现强大的自然语言理解。在 Pre-t…

Linux线程(Linux和Windows的线程区别、Linux的线程函数、互斥、同步)

Linux线程&#xff08;Linux和Windows的线程区别、Linux的线程函数、互斥、同步&#xff09; 1. 线程介绍 线程的概念&#xff1a; 线程是 CPU 调度的基本单位。它被包含在进程之中&#xff0c;是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流&#xff0…

Large Spatial Model:End-to-end Unposed Images to Semantic 3D 论文解读

目录 一、概述 二、相关工作 1、SfM和可微神经表示 2、端到端的Image-to-3D 三、LSM 1、密集几何预测 2、2D信息特征提取 3、点特征融合 4、可微渲染 5、损失函数 四、实验 一、概述 该论文提出一种大型空间模型&#xff08;Larget Spatial Model,LSM&#xff09;…

Leetcode207. 课程表(HOT100)

链接 题解&#xff1a;先统计入度为0的点&#xff0c;如果一个节点入度为0&#xff0c;说明没有课程指向它&#xff0c;那么你就可以学习它了。反之说明还有先修课。 注意&#xff1a;图存在拓扑排序等价于图不存在环。其实可以想出&#xff1a;如果是一个环&#xff0c;那么…

JavaScript将至

JS是什么&#xff1f; 是一种运行在客户端&#xff08;浏览器&#xff09;的编程语言&#xff0c;实现人机交互效果 作用捏&#xff1f; 网页特效 (监听用户的一些行为让网页作出对应的反馈) 表单验证 (针对表单数据的合法性进行判断) 数据交互 (获取后台的数据, 渲染到前…

Centos-stream 9,10 add repo

Centos-stream repo前言 Centos-stream 9,10更换在线阿里云创建一键更换repo 自动化脚本 华为centos-stream 源 , 阿里云centos-stream 源 华为epel 源 , 阿里云epel 源vim /centos9_10_repo.sh #!/bin/bash # -*- coding: utf-8 -*- # Author: make.h

网络安全概论

一、 网络安全是一个综合性的技术。在Internet这样的环境中&#xff0c;其本身的目的就是为了提供一种开放式的交互环境&#xff0c;但是为了保护一些秘密信息&#xff0c;网络安全成为了在开放网络环境中必要的技术之一。网络安全技术是随着网络技术的进步逐步发展的。 网络安…

【Android】android compat理解

1&#xff0c;前提 即便是在同一手机上安装的不同apk&#xff0c;其编译的apk不同&#xff0c;也会导致行为上的差异。如SDK34有限制后台启动&#xff0c;但如果安装的apk所依赖的sdk是33&#xff0c;则不会表现出此差异。这是如何实现的呢&#xff1f;其实&#xff0c;本质是…

《数据结构》学习系列——图(中)

系列文章目录 目录 图的遍历深度优先遍历递归算法堆栈算法 广度优先搜索 拓扑排序定义定理算法思想伪代码 关键路径基本概念关键活动有关量数学公式伪代码时间复杂性 图的遍历 从给定连通图的某一顶点出发&#xff0c;沿着一些边访问遍图中所有的顶点&#xff0c;且使每个顶点…

【C++】static修饰的“静态成员函数“--静态成员在哪定义?静态成员函数的作用?

声明为static的类成员称为类的静态成员&#xff0c;用static修饰的成员变量&#xff0c;称之为静态成员变量&#xff1b;用 static修饰的成员函数&#xff0c;称之为静态成员函数。静态成员变量一定要在类外进行初始化 一、静态成员变量 1)特性 所有静态成员为所有类对象所共…

MySQL面试-1

InnoDB中ACID的实现 先说一下原子性是怎么实现的。 事务要么失败&#xff0c;要么成功&#xff0c;不能做一半。聪明的InnoDB&#xff0c;在干活儿之前&#xff0c;先将要做的事情记录到一个叫undo log的日志文件中&#xff0c;如果失败了或者主动rollback&#xff0c;就可以通…

JavaScript中的this指向绑定规则(超全)

JavaScript中的this指向绑定规则&#xff08;超全&#xff09; 1.1 为什么需要this? 为什么需要this? 在常见的编程语言中&#xff0c;几乎都有this这个关键字&#xff08;Objective-C中使用的是self),但是在JavaScript中的this和常见的面向对象语言中的this不太一样 常见面…

Linux---ps命令

​​​​​​Linux ps 命令 | 菜鸟教程 (runoob.com) process status 用于显示进程的状态 USER: 用户名&#xff0c;运行此进程的用户名。PID: 进程ID&#xff08;Process ID&#xff09;&#xff0c;每个进程的唯一标识号%CPU: 进程当前使用的CPU百分比%MEM: 进程当前使用的…

【Spiffo】环境配置:VScode+Windows开发环境

摘要&#xff1a; 在Linux下直接开发有时候不习惯快捷键和操作逻辑&#xff0c;用Windows的话其插件和工具都更齐全、方便&#xff0c;所以配置一个Windows的开发环境能一定程度提升效率。 思路&#xff1a; 自己本地网络内远程连接自己的虚拟机&#xff08;假定用的是虚拟机…

[ubuntu]编译共享内存读取出现read.c:(.text+0x1a): undefined reference to `shm_open‘问题解决方案

问题log /tmp/ccByifPx.o: In function main: read.c:(.text0x1a): undefined reference to shm_open read.c:(.text0xd9): undefined reference to shm_unlink collect2: error: ld returned 1 exit status 程序代码 #include <stdio.h> #include <stdlib.h> #…

Java基于Spring Boot框架的房屋租赁系统,附源码

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

librdns一个开源DNS解析库

原文地址&#xff1a;librdns一个开源DNS解析库 – 无敌牛 欢迎参观我的个人博客&#xff1a;无敌牛 – 技术/著作/典籍/分享等 介绍 librdns是一个开源的异步多功能插件式的解析器&#xff0c;用于DNS解析。 源代码地址&#xff1a;GitHub - vstakhov/librdns: Asynchrono…

CTFHUB--yeeclass-web

复现平台CTFHUB靶机为一个完整类论坛网页&#xff0c;题目给了服务端完整代码 代码审计 /src/submit.php Line56-63: 可以看到提交数据存入的时候将$_SESSION["username"]."_"作为前缀&#xff0c;生成了一个uniqid。uniqid的生成方式即{sec:08x}{usec:0…