Diffusion Mechanism in Residual Neural Network: Theory and Applications

embedded/2024/10/19 12:13:14/

残差神经网络中的扩散机制:理论与应用

作者:Tangjun Wang; Zehao Dou; Chenglong Bao; Zuoqiang Shi

源码链接:https://github.com/shwangtangjun/Diff-ResNet

摘要

扩散是一种在许多物理过程中出现的基本内部机制,描述了不同对象之间的相互作用。在许多训练样本受限的学习任务中,扩散将标记和未标记的数据点连接起来,是实现高分类精度的关键组成部分。许多现有的深度学习方法在训练神经网络时直接施加融合损失。在这项工作中,受对流-扩散常微分方程(ODEs)的启发,我们提出了一种新颖的扩散残差网络(Diff-ResNet),将扩散内部引入到神经网络的架构中。在结构化数据的假设下,证明了所提出的扩散块可以增加距离直径比,这提高了类间点的可分性,并减少了局部类内点之间的距离。此外,该性质可以很容易地被残差网络采用,以构建可分离的超平面。在各种数据集上的合成二元分类、半监督图节点分类和少样本图像分类的广泛实验验证了所提出方法的有效性。

关键词

  • 扩散,残差神经网络,常微分方程,半监督学习,少样本学习。

I. 引言

残差网络(ResNet)及其变体,包含不同层之间的跳跃连接,在深度学习中是大有希望的网络架构。与非残差网络相比,ResNet显著提高了训练稳定性和泛化精度。为了理解ResNet的成功,最近一系列工作建立了它与常微分方程(ODEs)的联系。设x\in \mathbb{R}_{}^{n}为一个数据点,ResNet的ODE模型是:

深度学习方法的成功高度依赖于大量的训练样本,但收集训练数据需要大量的劳动工作,有时由于隐私或安全问题,在许多应用领域中是不可能的。为了减轻对训练数据的依赖,半监督学习(SSL)和少样本学习(FSL)近年来受到了极大的关注。半监督学习通常使用大量的未标记数据,与标记数据一起,构建更好的分类器。少样本学习是一种更近期的范式,与半监督学习密切相关,主要区别在于支持集(标记点)的大小要小得多。SSL和FSL的一个共同特点是利用未标记样本来解决标记集受限的问题。有关SSL和FSL的综述,请参见[18],[21]。在这项工作中,我们专注于解决SSL问题的基于深度学习的方法。一般来说,深度SSL方法可以分为两类:一致性正则化和熵最小化。一致性正则化要求对输入的微小扰动不会显著改变输出。基于此思想的Π-Model和其更稳定的版本Mean Teacher要求不同传递中的随机网络预测几乎没有干扰。VAT用“最坏”的扰动替换了随机扰动,这种扰动可以最大程度地影响预测函数的输出。熵最小化与自训练密切相关,鼓励对未标记数据进行更有信心的预测。EntMin对未标记样本的预测施加低熵要求。伪标签将高预测置信度的未标记样本作为标记样本输入网络以训练更好的分类器。此外,一些整体方法试图将当前有效的SSL方法统一到一个框架中,例如MixMatch,FixMatch。尽管存在许多在各种任务中取得令人印象深刻结果的深度SSL方法,但一致性正则化或熵最小化方法在SSL/FSL分类中的内部机制仍然不清楚。

为了揭开SSL和FSL中的这一谜团,我们提出了一个基于ODE的深度神经网络,它基于ODE和ResNet之间的联系。如(1)所示,ResNet的当前ODE对应物是对流方程。每个由(1)控制的点都独立演化。当有大量训练样本可用时,这种演化过程是可以接受的,但当监督样本的数量减少时,性能会显著恶化。因此,直接将(1)应用于SSL/FSL可能存在问题。为了解决这个问题,我们在(1)中引入了扩散机制,得到了对流-扩散方程。离散化后,我们得到了基于扩散的残差神经网络。强加的扩散在训练数据有限的领域中是关键组成部分,它在样本(包括标记和未标记的)之间强制执行交互。事实上,值得一提的是,在诸如流体动力学、建筑物理、半导体等复杂系统中,对流和扩散机制总是同时出现,这强烈激发了将扩散整合到深度ResNets中。

在样本之间强加交互作用是一个经典的想法,已经出现在许多现有的SSL方法中,但将对流和扩散结合在网络架构中尚未被充分探索。此外,大多数方法通过在损失函数中添加拉普拉斯正则化项来引入扩散,这在基于图的SSL中广泛使用。在这种情况下,调整拉普拉斯正则化项的权重并不容易,通常对任务敏感。与上述方法不同,我们明确地在ResNet中添加了扩散层。所提出的扩散层在内部强加样本之间的交互,并且在SSL/FSL中显示出更高的有效性。更重要的是,我们对扩散ODE进行了理论分析,并展示了其在数据样本间距离-直径比方面的优势,这为所提出的方法提供了坚实的基础。总之,我们的主要贡献如下:

  • 我们提出了一个对流-扩散ODE模型来解决SSL/FSL问题,这导致在适当的离散化后将扩散层添加到ResNets中。所提出的基于扩散的ResNet通过设计好的网络架构加强了标记和未标记数据点之间的关系,而不是在总损失中施加扩散损失。据我们所知,这是第一次尝试将扩散机制内部整合到深度神经网络架构中。

  • 在结构化数据的假设下,证明了扩散机制能够加速分类过程,使得来自不同子类的样本可以被分开,而来自同一子类的样本将被聚集在一起。利用这种性质,我们可以理论上构建一个残差网络,确保输出特征是线性可分的。这一分析为我们的方法提供了数学基础。

  • 在各种任务和数据集上的广泛实验验证了我们的理论结果和所提出的Diff-ResNet的优势。

本文的其余部分组织如下。相关工作在第二节给出。第三节介绍了我们的扩散残差网络的公式和细节,第四节提供了扩散机制的理论分析。在第五节中报告了各种任务的实验结果。我们在第六节总结了本文。

III. DIFFUSION RESIDUAL NETWORKS

在本节中,我们从ODE的角度引入扩散机制,并基于扩散ODE的数值方案提出Diff-ResNet。

A. The ODE Formulation

B. Algorithm

 备注1:在扩散步骤(7)中,第i个数据点的特征图取决于前一层所有数据点的特征图,这在数据点总数过大的任务中是不现实的。在我们的实现中,我们采用了小批量训练策略。也就是说,每个批次中的权重相应地被稀疏化和规范化。

IV. ANALYSIS OF DIFFUSION MECHANISM

在本节中,我们将从理论上分析扩散机制的有效性。为了简化问题,我们只考虑二元分类问题,我们的分析可以自然地扩展到多类情况。

A. 结构化数据假设

B. 理论分析

我们在此展示本文的理论结果,以解释扩散机制在二元分类中的作用。由于空间限制,我们将所有证明推迟到在线附录中。

V. EXPERIMENTS

在本节中,我们将展示扩散机制在合成数据上的效用,并报告Diff-ResNet在半监督图学习任务和少样本学习任务上的性能。

A. 合成数据

我们在四个经典的合成数据集上进行了实验:XOR、moon、circle和spiral。在XOR数据集中,我们直接应用扩散而不使用任何对流。然后我们可以清楚地看到点的演变过程,验证了命题1。其他三个数据集用来展示扩散在分类任务中的有效性。由于篇幅限制,请参考在线附录E.1.4查看更多结果。

我们随机收集了100个点,分别位于以(0,0),(0,2),(2,0),(2,2)为中心的四个圆上,半径为0.75。这四个圆被视为对应于四个子类的子集。以(0,0)和(2,2)为中心的圆属于同一类别,并用红色标记。以(2,0)为中心的蓝色点类似生成。这里,我们展示了当扩散强度趋向于无穷大时点的演变。如第三节B所述,我们通过使用小步长γ堆叠扩散步骤以确保稳定性。在图3中,给出了经过1、10、20和200次扩散步骤后点的分布。在这个例子中,初始直径为D = 1.5,而距离为L = 0.5,这不满足命题1中的充分条件L > D。然而,如图3所示,扩散仍然有效。同一子类中的数据点汇聚成单点。我们还从图3(b)中观察到,距离-直径比确实以指数方式增长到无穷大。

备注3。一些人可能会对使用“扩散”这个术语表示怀疑,因为它实际上是将相似的点聚集在一起,在视觉上创建高密度区域。然而,图3中显示的现象并不与扩散的定义相矛盾。一个点的能量由其坐标表示。我们期望图连接的相邻元素将交换能量,直到能量在所有连接的元素中均匀分布。因此,扩散机制作为将点聚集在一起的作用。

接下来,我们展示了在包含1000个平面数据点的二元分类任务中残差网络中扩散的有效性。这些点形成了两个圆。两个类别用不同的颜色标记。我们使用了隐藏维度为2的残差网络(这样我们可以方便地可视化特征)。实验设置的详细信息可以在在线附录E.1中找到。在训练有或没有扩散机制的残差网络时,我们在最终分类层之前绘制了特征图,如图4所示。请注意,我们绘制的不是输入数据点。因此,即使没有扩散,点也必须通过一个随机初始化的残差块。所以在图4(c)中,特征与(a)中的原始输入点不同。circle数据集的结果在图4中显示。

如图4所示,扩散可以降低噪声。在图4(f)、(g)和(h)中,特征非常清晰,而在图4(e)中,特征仍然嘈杂。此外,扩散步骤使得最终特征更容易分离。在图4(h)中,特征可以通过一条直线轻松分离,而在没有扩散的情况下,特征不是线性可分的,如图4(e)所示。不足为奇的是,在这种情况下,考虑到ResNet总共只有18个参数,ResNet未能给出正确的分类。在扩散步骤的帮助下,即使是这个只有18个参数的小网络也可以给出正确的分类,这表明扩散在分类问题中非常有用。

B. 图学习

我们研究了扩散在图上的半监督学习问题中的效果。在扩散步骤中,一个关键点是如何确定权重,以正确描述数据点之间的关系。然而,在图中这不是问题,因为权重已经以邻接矩阵的形式给出。我们报告了在最广泛使用的引用网络基准测试中的分类结果,包括Cora、Citeseer和Pubmed。这些数据集是引用网络,其中节点是文档,边是引用链接,特征是稀疏的词袋向量。具体的数据集统计信息在在线附录E.2.1中给出。此外,我们没有使用固定的Planetoid [38]拆分,而是遵循[77],报告了所有数据集使用100个随机拆分和每个拆分20个随机初始化的结果。

图学习中的主流方法,如GCN [78]、GraphSAGE [79]和GAT [80],包含聚合步骤,这些步骤使用邻接矩阵从邻居中聚合特征信息,然后使用聚合信息预测标签。与这些传统范式不同,我们的方法由对流和扩散步骤组成。对流步骤充分利用了标签信息,而扩散步骤在数据样本之间交换特征信息。邻接矩阵仅在扩散步骤中使用。

我们比较了我们的方法与几种图学习方法:三种最受欢迎的架构GCN、GraphSAGE(它的两个变体)、GAT,以及最近的基于ODE的GNN架构,连续图神经网络(CGNN)[81]、图神经普通微分方程(GDE)[82]和图神经扩散(GRAND)[47]。详细的网络结构和参数设置可以在在线附录E.2中找到。分类结果在表I中报告。Diff-ResNet明显优于没有扩散的ResNet(No-Diff-ResNet)。平均准确率提高了15%以上,这是扩散带来好处的有力证据。此外,尽管我们的扩散网络与主流网络有很大的不同,我们的方法在图学习方法中仍然取得了与经典和最新方法相媲美的结果。因此,我们为半监督图学习问题提出了一条替代路径。

此外,据报道,基于邻域信息聚合的方法会随着深度增加而遭受过平滑问题 [56],[83]。如图5所示,当网络深度增加到32时,GCN的性能平均下降了50%以上。与GCN不同,我们的Diff-ResNet不使用聚合,因此节点的表示不会收敛到某个值并且变得无法区分。当层数增加到32时,Diff-ResNet的性能仅下降了不到10%,这部分是由于深层网络训练的负担。这证明了我们的网络结构与主流架构有很大的不同。 

 C. 少样本学习

 我们使用T-SNE [89]在图6中可视化了1-shot和5-shot任务中扩散前后的特征。标记的数据用星号表示(支持数据)。未标记的数据用圆圈表示。在1-shot场景中,我们可以观察到最初很难将点分开。然而,借助扩散机制的帮助,同一子类中的点被驱得更近,使得分类变得更容易。在5-shot任务中,由于样本点已经具有良好的可分性,扩散机制的改进并不像1-shot任务那样显著。尽管如此,我们可以验证引入子类在结构化数据假设中的必要性,因为蓝色的点确实被分成了两个子集。

 最后,我们想强调我们的Diff-ResNet可以实现最先进的性能。为了进行公平的比较,我们采用了LaplacianShot [69]中使用的一些技巧,我们在在线附录E.3中进行了详细说明。我们还去除了[62],[72]中的平衡类别假设,并报告了相应的结果,因为我们的Diff-ResNet不使用这样的假设。我们随机抽取了10,000个5-way-1-shot和5-way-5-shot分类任务,并报告了平均准确性和相应的95%置信区间在表III中。表III中用于比较的网络结果收集自[68],[69],[87]。在所有数据集和各种backbone中,Diff-ResNet在大多数情况下都获得了最高的分类准确性,除了在miniImageNet上的5-shot任务中使用WRN-28-10作为backbone。5-shot任务上Diff-ResNet的性能提升不如1-shot任务显著,这与表II中的观察一致。至于与LaplacianShot [69]相比相对较小的性能提升,我们已经在消融研究II(内部对流-扩散与扩散)中彻底调查了我们的方法和他们之间的差异。

然而,与[48],[68],[69]等方法相比,我们的方法需要更多的时间。在每个少样本任务中,在推理阶段,我们的方法需要训练一个小的神经网络。注意,我们不是尝试重新训练或微调backbone网络。相反,我们训练一个只包含两个隐藏层和一个扩散块的小网络。推理的加速将在未来的工作中研究。

VI. CONCLUSION

在本文中,受带有扩散机制的ODE模型启发,我们提出了一种新颖的Diff-ResNet,通过在残差块中添加一个简单而强大的扩散层。我们对扩散机制进行了理论分析,并证明了扩散项将显著增加局部类内距离与类间距离的比率。通过在少样本学习和半监督图学习问题上的广泛实验,验证了所提出的Diff-ResNet的性能。未来的工作涉及扩散机制的鲁棒性、在少样本学习推理阶段加速Diff-ResNet、从扩散ODE扩展到扩散PDE,以及在极低标签率的半监督学习中扩散的效果。


http://www.ppmy.cn/embedded/128734.html

相关文章

【服务器部署】Docker部署小程序

一、下载Docker 安装之前,一定查看是否安装docker,如果有,卸载老版本 我是虚拟机装的Centos7,linux 3.10 内核,docker官方说至少3.8以上,建议3.10以上(ubuntu下要linux内核3.8以上&#xff0c…

C++算法练习-day7——707.设计链表

题目来源:. - 力扣(LeetCode) 题目思路分析 在编程中,链表是一种常见的数据结构,用于存储一系列元素,但与数组不同,链表中的元素在内存中不必连续存储。每个元素(称为节点&#xf…

Linux权限管理

Linux权限管理是Linux系统中保证系统安全性和管理效率的重要手段。Linux权限主要涉及对文件和目录的操作权限,包括读(r)、写(w)和执行(x)三种基本权限。 一、Linux权限的基本概念 权限类型:Linux中的权限分为读(r)、写(w)和执行(x)三种。这些权限分别对应于文件…

【AIGC】优化长提示词Prompt:提升ChatGPT输出内容的准确性与实用性

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯长提示词的挑战💯谷歌的优化长提示词技术关键因素分析 💯长提示词的设计原则💯优化长提示词的新框架方法💯实验结果分析不…

生产力工具|vscode for mac的安装python库和使用虚拟环境(一)

一、在vscode中运行python代码(mac或windows) (一)在vscode中安装Python插件 若想在vscode中高效率的编辑Python代码,需要安装Python插件,点击下图中红框内的按钮: 然后在左上角的搜索框中输入…

C++初阶

目录 一.命名空间 1.命名空间定义 2.命名空间使用 二.C输入&输出 三.缺省参数 四. 函数重载 五.引用 1.常引用 2.传值、传引用效率比较 3.引用和指针的区别 4.引用和指针的不同点: 小知识点: 六.内联函数 七.auto关键字(C11) 1.auto的使用细则 八.基于范围…

Python知识梳理总结思维导图

Python 语法简洁且富有表现力。它采用简洁的缩进方式来划分代码块,增强了代码的可读性。变量无需事先声明类型,可随时赋值并根据值自动确定类型。Python 支持多种数据类型,包括整数、浮点数、字符串、列表、元组、集合和字典等。函数定义使用…

【Git】基本操作+分支管理

Git基本操作 Git仓库创建 Git仓库的基本认知 Git仓库就是一个用来跟踪和管理项目文件变化的地方,其记录了所有的修改历史,可以回退到之前的任何一个历史版本 工作区:正在进行实际操作的文件夹暂存区:临时保存想要提交修改的区域…