深度学习的新突破:Difformer模型

人工智能咨询培训老师叶梓 转载标明出处

在现实世界中,数据之间的复杂相互依赖性是一个普遍存在的现象。这种错综复杂的依赖关系,对于传统的机器学习算法来说,是一个巨大的挑战。因为它们通常假设数据是独立同分布的,这使得算法难以捕捉数据的内在几何结构,进而影响到模型学习到的实例表示的质量。为了解决这一难题,来自上海交通大学的研究团队联合牛津大学和亚马逊网络服务的学者们,共同提出了一种创新的解决方案:基于能量约束的扩散模型。

这一模型的核心思想是,通过将数据集中的实例逐步编码到一系列演化状态中,从而实现信息在实例间的交互和融合。在这个过程中,一个精心设计的能量函数起到了关键作用,它作为约束条件,确保了实例表示在潜在结构上的全局一致性。这种基于物理扩散原理的方法,不仅为机器学习领域带来了新的视角,也为处理复杂数据依赖性问题提供了一种有效的工具。

在这一研究的推动下,Difformer模型应运而生。它包含两种版本:一种是计算复杂度较低的版本,适合处理大规模数据集;另一种则更为高级,能够捕捉更复杂的数据结构。实验结果表明,无论是在节点分类、半监督图像和文本分类,还是时空动态预测等任务中,Difformer模型均展现出了卓越的性能。

方法

图1Difformer模型的整体架构和工作流程中描绘了一个数据集或批次的实例通过一个扩散过程被编码成隐藏状态,该过程旨在最小化一个正则化能量函数。在这个过程中,数据的特征在不同的层之间传播,通过最优的相互连接结构实现信息的传递。

在深度学习领域,处理部分标记实例集时,如何有效捕捉实例间的复杂关系并学习到有用的表示是一个挑战。能量约束的几何扩散变换器(Energy Constrained Geometric Diffusion Transformers),即Difformer通过模拟热扩散过程来逐渐将数据集中的实例编码到演化状态中,进而实现信息的交互和融合。

几何扩散模型是Difformer架构的起点,它将整个数据集视为一个整体,并通过各向异性的扩散过程产生实例表示。这种扩散过程由偏微分方程(PDE)描述,灵感来源于黎曼流形上的热扩散类比。

  • 状态函数:使用向量值函数 定义了在时间t 和位置i 的实例状态。
  • 扩散过程:通过一个PDE来描述实例状态的演化,该PDE包含边界条件。其中,定义了控制任意两个实例之间在时间t 的扩散强度的扩散系数矩阵。
  • 梯度与散度:梯度算子 ∇ 测量源状态和目标状态之间的差异,散度算子 ∇∗ 则在点上汇总信息流。

扩散过程的数值解可以通过显式欧拉方案来实现,其中包含了时间步长 τ。经过重新排列,可以得到:

该迭代过程在 τ∈(0,1) 时可以稳定收敛。经过有限次的传播步骤后,可以使用最终状态进行预测。

定义合适的扩散系数函数是实现期望扩散过程的关键,这需要在最大化信息效用和保持一定一致性之间找到平衡。通过引入一个能量函数来衡量给定步骤中实例状态的假定质量,进而约束扩散过程。

  • 能量函数:能量函数 通过添加一个非递减且凹函数δ 来促进对实例之间大差异的鲁棒性。
  • 能量约束扩散:扩散过程描述了实例状态的微观行为,而能量函数提供了一个宏观视角来量化一致性。期望最终状态能够产生低能量,这表明物理系统达到了稳定点。

通过这种方式,Difformer模型将实例状态的演化引向产生较低能量的状态,从而在数据的潜在结构上实现了有效的信息融合。

基于上述理论,研究者们提出了两种实际的Difformer模型实现:简单扩散模型(DIFFORMER-s)和高级扩散模型(DIFFORMER-a)。

  • 简单扩散模型:采用线性函数 来定义扩散系数,从而实现线性复杂度的计算。
  • 高级扩散模型:采用非线性函数 ​,以捕捉更复杂的潜在结构。

为了提升Difformer模型的表达能力和适用性,采纳两种策略:

  1. 通过在每层后添加全连接层进行层级变换,这允许模型在特征传递后调整和优化实例表示,使模型能够更灵活地适应不同数据特征;
  2. 当存在图结构数据时,模型通过结合邻接矩阵来融合实例间的拓扑关系,使信息传递过程考虑了实例间的实际连接,从而提高了模型对复杂结构数据的捕捉能力。这些改进使得Difformer在多种数据集和任务上都展现出了优越的性能。

Difformer模型通过能量约束的几何扩散过程,有效地处理了现实世界数据的复杂依赖性问题,为大模型在各种任务中的应用提供了新的视角和工具。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

评论留言“参加”或扫描微信备注“参加”,即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory。关注享粉丝福利,限时免费录播讲解。

LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

实验

验证任务包括基于图的节点分类、无输入图的图像和文本分类,以及时空动态预测。在这些评估中,Difformer 与多种与之密切相关的模型进行了比较,这些模型专为特定任务设计。

Difformer 在三个引文网络数据集Cora、Citeseer和Pubmed上进行了测试,结果显示在表2中。比较的基线模型包括多层感知器(MLP)、标签传播(LP)和ManiReg等经典图基半监督学习(SSL)模型,以及SGC、GCN、GAT及其变体GCN-kNN、GAT-kNN和Dense GAT等图神经网络(GNN)模型。此外,还考虑了LDS和GLCN等强大的结构学习模型。表2表明,Difformer 在这三个数据集上都取得了最好的结果,与没有非线性的模型(如SGC、GRAND-l和DGC-Euler)相比,Difformer-s在Cora和Pubmed数据集上的表现尤为突出。

Difformer 还被应用于两个大规模图数据集:ogbn-Proteins和Pokec。表3展示了结果。由于数据集的规模较大(两个图的节点数分别为0.13M和1.63M),许多模型在单张V100 GPU上进行全图训练时会遇到可扩展性问题。因此,只比较了Difformer-s和标准GNN模型,并采用了小批量训练。结果显示,Difformer 在这两个数据集上的表现都优于常见的GNN模型,这表明其在处理大规模数据集方面的有效性。

Difformer 在CIFAR-10、STL-10和20News-Group数据集上进行了测试,以评估其在有限标签情况下的分类性能。对于20News数据集,选取了10个主题,并使用TF-IDF值大于5的词作为特征。对于CIFAR和STL图像数据集,首先使用自监督方法SimCLR训练ResNet-18提取特征图作为实例的输入特征。表4报告了Difformer和包括MLP、ManiReg、GCN-kNN、GAT-kNN、DenseGAT和GLCN在内的竞争对手的测试准确率。在几乎所有情况下,两种Difformer模型的性能都远超过MLP,这表明学习实例间的相互依赖性是有效的。另外Difformer在性能上也大幅超过了GCN和GAT,这表明其在适应不同层时具有优越性。

考虑了三个时空数据集,每个数据集由一系列图快照组成,节点被视为实例,每个实例都有一个整数标签(例如,Chickenpox或Covid的报告病例)。任务是基于先前的快照预测一个快照的标签。表5比较了四种Difformer变体(其中Difformer-s w/o g表示不使用输入图的Difformer-s模型)与基线模型的测试均方误差(MSE)。结果表明,两种不使用输入图的Difformer变体在四分之六的情况下甚至优于使用输入结构的对应模型。这表明Difformer的扩散性估计模块可以学习有用的结构以进行有根据的预测,而输入结构并不总是对预测有积极作用。

图2(a)比较了使用其他扩散函数的Difformer变体,这些扩散函数与能量最小化没有本质联系。结果一致表明,采用的扩散形式产生了优越的性能,这验证了从原则性能量最小化中得出的扩散性设计的效力。图2(b)讨论了模型深度K和步长τ对Cora性能的影响。曲线表明,步长影响模型性能以及随模型深度变化的趋势。当使用较大的步长(例如,τ = 0.5)时,模型可以在较少的层中获得优越的性能;当使用较小的步长(例如,τ = 0.1)时,模型需要堆叠更多层才能具有竞争力。这可能是因为较大的τ有助于在每次扩散迭代中更集中地从其他实例获取全局信息,这在较少层中带来了更有益的信息,但可能导致深层模型的不稳定性。而使用较小的τ可以增强模型对深层模型深度的不敏感性,这通常会降低其他基线模型(如GCN和GAT)的性能。

Difformer模型的提出,为处理现实世界中复杂的数据依赖性问题提供了一种有效的解决方案。Difformer模型的代码已经在GitHub上公开:https://github.com/qitianwu/DIFFormer

论文链接:https://arxiv.org/pdf/2301.09474v4 

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

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

相关文章

JS在线加密解密工具

快捷工具网得JS加密解密工具为您提供JS加密解密,js加解密工具,JS在线加解密,JS代码在线加解密,该工具基于eval方法的加密与解密功能,用户可将js代码加密成eval方法执行形式的代码,也可将eval方法加密过的代码进行解密操作。是一款非常简便实用的在线Java…

AC自动机详解,原理、优化分析,代码实现

零、前言 对于模式串匹配问题,在很多基础的数据结构课程中都有涉及到,如 KMP 算法,BM算法,Trie。 但是给定文本串,我们有多个模式串要去查询。难道要多次调用KMP / BM,或者在Trie上多次查询吗&#xff1f…

2024 研究生数学建模竞赛(F题)建模秘籍|X射线脉冲星光子到达时间建模|文章代码思路大全

铛铛!小秘籍来咯! 小秘籍团队独辟蹊径,运用轨道动力学模型,脉冲轮廓折叠,几何传播时延模型,相对论修正计算,泊松分布模拟等强大工具,构建了这一题的详细解答哦! 为大家量…

数据预处理方法—数据标准化和数据归一化

1.数据标准化 1.1 概念: 标准化是将数据转化为均值为0,标准差为1的分布。通过标准化处理,所有特征在同一个尺度上,使得模型更加稳定和高效,尤其适用于正态(高斯)分布的数据。 1.2 原理 标准化…

【HTTP】构造HTTP请求和状态码

状态码 用于响应中,表示响应的结果如何 正确?错误?什么原因? HTTP 中的状态码都是标准约定好的 200 OK 成功了,一切顺利 在抓包到的响应中 404 Not Found 访问的资源(URL 中的路径)没找…

【已解决】编译报错:fatal error: Eigen/Core: 没有那个文件或目录 #include <Eigen/Core>

1、如果没有安装过Eigen,可以使用以下git指令进行下载,或者也可以通过以下网址下载 git clone https://gitlab.com/libeigen/eigen.git网址1:https://eigen.tuxfamily.org/index.php?titleMain_Page 网址2: https://gitlab.com/libeigen/ei…

BeautifulSoup与lxml解析网页:技术详解与实战案例

目录 一、引言 1.1 网页解析的重要性 1.2 BeautifulSoup与lxml简介 二、安装BeautifulSoup和lxml 三、BeautifulSoup基础 3.1 创建BeautifulSoup对象 3.2 基本元素 3.3 遍历和搜索文档树 3.4 CSS选择器 四、lxml基础 4.1 解析HTML 4.2 XPath选择器 4.3 CSS选择器 …

简单多状态dp第二弹 leetcode -删除并获得点数 -粉刷房子

740. 删除并获得点数 删除并获得点数 分析: 使用动态规划解决 这道题依旧是 打家劫舍I 问题的变型。 我们注意到题目描述,选择 x 数字的时候, x - 1 与 x 1 是不能被选择的。像不像 打家劫舍 问题中,选择 i 位置的金额之后,就不…

C++速通LeetCode中等第20题-随机链表的复制(三步简单图解)

方法图解: class Solution { public:Node* copyRandomList(Node* head) {if ( !head ) {return nullptr;}Node *cur head;// 1. 在原节点的每个节点后创建一个节点while ( cur ) {Node *newNode new Node(cur -> val);newNode -> next cur -> next;cur …

大小端字节序 和 内存高低地址顺序

目录 1. 大小端字节序 1.1 什么是大小端字节序? 1.2 为什么有大小端字节序? 1.3 习题:用程序结果判断大端小端 2. 各种易混淆的高低地址顺序 2.1 监视窗口的地址表示【计算机标准展示方式】 2.2 横向地址表示 2.3 一个字节 与 多个字节 的地址…

g1:基于 Llama,用提示工程实现类似 o1 的深度推理

开源项目 g1 利用巧妙的提示策略,在 Groq 硬件上使用 Llama-3.1 70b 模型实现了类似 OpenAI o1 的推理链能力。g1 将推理过程可视化,并结合多种技巧引导 LLM 进行深度思考,显著提升了其在逻辑问题上的准确率,为 LLM 推理能力的提升…

Win10 安装Node.js 以及 Vue项目的创建

一、Node.js和Vue介绍 1. Node.js Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。它允许你在服务器端运行 JavaScript,使得你能够使用 JavaScript 来编写后端代码。以下是 Node.js 的一些关键特点: 事件驱动和非阻塞 I/O:Node…

【24华为杯数模研赛赛题思路已出】国赛F题第二套思路丨附参考代码丨免费分享

2024年数模研赛E题解题思路 X 射线脉冲星光子到达时间建模思路分析 该题目是天文学背景的数学建模题目,其涉及到物理学中关于光线传播过程受多种因素的共同干扰的复合模型,以及天体和卫星的坐标变换和运动模型,首先我们要,建立卫…

JavaScript使用leaflet库显示信息窗口

前言 我们可千万不能忘记我们之前花的流程图哦,我们所有的计划都按照我们的流程图来去构建; 我们已经完成了,页面的加载,也已经完成获取用户当前的位置坐标,并且我们通过地图的API将当前的位置在地图中渲染出来&…

基于协同过滤推荐算法的影视推荐系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 精品专栏:Java精选实战项目源码、Python精…

缓存数据和数据库数据一致性问题

根据以上的流程没有问题,但是当数据变更的时候,如何把缓存变到最新,使我们下面要讨论的问题 1. 更新数据库再更新缓存 场景:数据库更新成功,但缓存更新失败。 问题: 当缓存失效或过期时,读取…

【C++】C++库:如何链接外部库、静态链接和动态链接,以及如何自建库并使用

十三、C库:如何链接外部库、静态链接和动态链接,以及如何自建库并使用 本篇讲C库,先讲如何在项目中使用外部库,包括静态链接和动态链接的实现;再讲如何在VisualStudio中自建模块或库项目,让所有项目都能使…

Java-数据结构-排序-(一) (。・ω・。)

文本目录: ❄️一、排序的概念及引用: ➷ 排序的概念: ➷ 常见的排序算法: ❄️二、插入排序的实现: ➷ 1、直接插入排序: ☞ 直接插入排序的基本思想: ☞ 直接插入排序的实现: ▶…

OBB-最小外接矩形包围框-原理-代码实现

前言 定义:OBB是相对于物体方向对齐的包围盒,不再局限于坐标轴对齐,因此包围点云时更加紧密。优点:能够更好地贴合物体形状,减少空白区域。缺点:计算较为复杂,需要计算物体的主方向&#xff0c…

linux 操作系统下dhcpd命令介绍和案例应用

linux 操作系统下dhcpd命令介绍和案例应用 DHCP(动态主机配置协议)在Linux操作系统中用于自动为网络中的设备分配IP地址和其他网络配置 DHCP的基本概念 DHCP协议通过UDP工作,主要有两个用途: 自动分配IP地址给网络中的设备。提…