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

题目:Diffusion Mechanism in Residual Neural Network: Theory and Applications

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

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

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

关注公众号:AI前沿速递,获取更多优质资源!


摘要

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

关键词

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

I. 引言

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

d x ( t ) d t = f ( x ( t ) , θ ( t ) ) , x ( 0 ) = x . \frac{d\mathbf{x}(t)}{dt} = f(\mathbf{x}(t), \boldsymbol{\theta}(t)), \quad \mathbf{x}(0) = \mathbf{x}. dtdx(t)=f(x(t),θ(t)),x(0)=x.

其中 f ( x , θ ) f(\mathbf{x}, \boldsymbol{\theta}) f(x,θ)是由 θ \boldsymbol{\theta} θ参数化的映射。显然,(1)的前向欧拉离散化恢复了残差连接,这激发了ResNets和ODE之间的联系。基于上述观察,许多最近的工作从两个角度提出:受ODE启发的神经网络和基于神经网络的ODE。具体来说,ODE启发的神经网络设计方法可以分为两个方向。一种设计网络的方法是通过不同的离散化方案展开ODE系统,构建端到端映射。典型的网络包括PolyNet、FractalNet和线性多步网络。另一种方法是通过修改ODE模型向当前网络架构中添加一些新的块,例如噪声注入、随机动态系统、添加阻尼项。由于ODE具有强大的数学基础,上述工作中提出的网络架构已经显示出提高的可解释性和性能。另一方面,基于神经网络的ODE模型通过神经网络参数化速度 f f f,并通过最优控制公式找到参数 θ \boldsymbol{\theta} θ。这些方法提高了传统ODE方法的表达能力,并在包括具有不规则边界的系统、流体力学领域的PDEs以及高维微分方程等各种问题中展示了有希望的结果。因此,ResNets和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

在ResNet [1]中,特定数据点 x i x_i xi在第k个残差块之后的特特征图定义为 x i k x^k_i xik。残差连接意味着 x i k x^k_i xik通过跳跃恒等链接加到 x i k + 1 x^{k+1}_i xik+1上。如果我们将卷积层、批量归一化层和其他层聚集在一起,并表示为函数 f f f,那么每个残差块可以写成:

x i k + 1 = x i k + f ( x i k , θ k ) , x^{k+1}_i = x^k_i + f(x^k_i, \theta^k), xik+1=xik+f(xik,θk),

其中 θ k \theta^k θk是第k个块的参数。从ODE的角度来看, f f f可以被视为速度场,而 x i k x^k_i xik x i k + 1 x^{k+1}_i xik+1可以被视为 x i x_i xi的起始位置和结束位置。引入一个时间步长 Δ t \Delta t Δt,可以被吸收在 f f f中,ResNet可以被视为以下ODE模型的前向欧拉离散化,该模型描述了 x i x_i xi的演变:

d x i ( t ) d t = f ( x i ( t ) , θ ( t ) ) , x i ( 0 ) = x i . \frac{d\mathbf{x}_i(t)}{dt} = f(\mathbf{x}_i(t), \boldsymbol{\theta}(t)), \quad \mathbf{x}_i(0) = \mathbf{x}_i. dtdxi(t)=f(xi(t),θ(t)),xi(0)=xi.

时间形成了一个连续的类比到层索引,每个层对应于演化的一次迭代。这个ODE只包含对流项,每个点独立移动,没有碰撞。为了增强特别是在未标记样本中的数据点之间的交互,我们在(3)中引入了额外的扩散项,得到以下对流-扩散ODE系统:

d x i ( t ) d t = f ( x i ( t ) , θ ( t ) ) − γ ∑ j = 1 N w i j ( x i ( t ) − x j ( t ) ) , \frac{d\mathbf{x}_i(t)}{dt} = f(\mathbf{x}_i(t), \boldsymbol{\theta}(t)) - \gamma \sum_{j=1}^{N} w_{ij} (\mathbf{x}_i(t) - \mathbf{x}_j(t)), dtdxi(t)=f(xi(t),θ(t))γj=1Nwij(xi(t)xj(t)),

对于所有的 i = 1 , 2 , . . . , N i = 1, 2, ..., N i=1,2,...,N,其中 N N N是点的数量, γ > 0 \gamma > 0 γ>0是一个控制扩散强度的参数, w i j ≥ 0 w_{ij} \geq 0 wij0 x i x_i xi x j x_j xj之间的权重。通过设计一个权重矩阵来描述点之间的相似性,我们可以期望相似的点被拉近,而不同的点被驱离。在本文中,对流项 f f f被设置为一个简单的2层网络,宽度为 w w w,即:

f ( x ( t ) , θ ( t ) ) = ∑ i = 1 w a t ( i ) σ ( w t ( i ) ⋅ x ( t ) + b t ( i ) ) , f(x(t), \boldsymbol{\theta}(t)) = \sum_{i=1}^{w} a_t^{(i)} \sigma(w_t^{(i)} \cdot x(t) + b_t^{(i)}), f(x(t),θ(t))=i=1wat(i)σ(wt(i)x(t)+bt(i)),

这里 x ( t ) ∈ R d x(t) \in \mathbb{R}^d x(t)Rd b t ( i ) ∈ R b_t^{(i)} \in \mathbb{R} bt(i)R a t ( i ) a_t^{(i)} at(i) w t ( i ) ∈ R d w_t^{(i)} \in \mathbb{R}^d wt(i)Rd,并且 f : R d → R d f: \mathbb{R}^d \rightarrow \mathbb{R}^d f:RdRd。激活函数 σ ( ⋅ ) \sigma(\cdot) σ()选择为ReLU。 θ ( t ) = [ w t ( i ) , b t ( i ) , a t ( i ) ] i = 1 w \boldsymbol{\theta}(t) = [w_t^{(i)}, b_t^{(i)}, a_t^{(i)}]_{i=1}^w θ(t)=[wt(i),bt(i),at(i)]i=1w是时间 t t t的网络权重集合。在下一节中,我们将基于新的ODE(4)导出一个实用的算法。

B. Algorithm

我们使用经典的Lie-Trotter分裂方案 [75] 对对流-扩散(4)进行离散化。在吸收时间步长 Δ t \Delta t Δt进入 f f f γ \gamma γ之后,我们得到:

x i k + 1 2 = x i k + f ( x i k , θ k ) , x_i^{k+\frac{1}{2}} = x_i^k + f(x_i^k, \theta^k), xik+21=xik+f(xik,θk),

x i k + 1 = x i k + 1 2 − γ ∑ j = 1 N w i j ( x i k + 1 2 − x j k + 1 2 ) . x_i^{k+1} = x_i^{k+\frac{1}{2}} - \gamma \sum_{j=1}^{N} w_{ij} (x_i^{k+\frac{1}{2}} - x_j^{k+\frac{1}{2}}). xik+1=xik+21γj=1Nwij(xik+21xjk+21).

对流步骤(6)几乎与残差块(2)相同,只是时间步长不同,这在实现中不是本质区别。添加的扩散步骤(7)可以被视为对流步骤(6)的稳定化。如果权重矩阵是预先计算的,扩散步骤是无参数的,因此提出的扩散项可以轻松地与任何现有的网络或算法以即插即用的方式结合。为了构建权重矩阵,我们使用高斯核 k ( x , y ) = exp ⁡ ( − ∥ x − y ∥ 2 2 / ( 2 σ 2 ) ) k(x, y) = \exp(-\| x - y \|_2^2 / (2\sigma^2)) k(x,y)=exp(xy22/(2σ2))来衡量数据点之间的相似性。 σ \sigma σ是调整权重分布的参数。接下来,我们引入两个操作符,Sparse和Normalize,以及一个超参数,ntop,以获得一个稀疏且平衡的权重矩阵。Sparse是一个截断操作符,使权重矩阵变得稀疏。在每一行中,它保留最大的ntop个条目,并将其他条目截断为0。Normalize对称地规范化权重矩阵。一旦构建,权重矩阵在训练过程中保持不变。

使用Lie-Trotter方案,我们在对流步骤(6)之后得到一个扩散步骤(7)。然而,在我们的实现中,通常每个对流步骤后面跟着多个扩散步骤。原因是扩散项具有强烈的数值刚性,如在线附录A中证明。当使用简单的显式欧拉离散化方法时,步长 γ \gamma γ应该足够小以保持数值稳定性。因此,为了保持一定的扩散强度,我们将使用简单的前向欧拉方案来离散化扩散项。此外,即使总强度很小,多个扩散层在实验中也给出了稍微更好的结果。因此,在网络中,我们在每个残差块后面添加了r个扩散层,每个层具有固定的步长 γ \gamma γ。我们的Diff-ResNet的说明可以在图1中找到。我们在算法1中总结了我们的方法。


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

IV. ANALYSIS OF DIFFUSION MECHANISM

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

A. 结构化数据假设

我们的数据集生成方式如下:假设所有的数据点来自 S = ⋃ i = 1 k S i S = \bigcup_{i=1}^{k} S_i S=i=1kSi。符号 ⋃ \bigcup 表示 S = ⋃ i = 1 k S i S = \bigcup_{i=1}^{k} S_i S=i=1kSi且对于所有的 i 1 ≠ i 2 i_1 \neq i_2 i1=i2,有 S i 1 ∩ S i 2 = ∅ S_{i_1} \cap S_{i_2} = \emptyset Si1Si2=。每个集合 S i S_i Si包含来自第 i i i类的点。我们进一步假设每个集合 S i S_i Si可以划分为几个不重叠且有界的子集 S i = ⋃ j = 1 l S i , j S_i = \bigcup_{j=1}^{l} S_{i,j} Si=j=1lSi,j,每个 S i , j S_{i,j} Si,j对应于一个子类。在二元分类中, k = 2 k=2 k=2 S = S 1 ∪ S 2 S = S_1 \cup S_2 S=S1S2 l l l是子类的数量,可能随着类别而变化。然而,我们可以将 l l l设置为所有类别中的最大值,并让不存在的子类 S i , j = ∅ S_{i,j} = \emptyset Si,j=。记 M = k l M = kl M=kl作为子集的总数。两个不相交集合 A , B A, B A,B之间的距离定义为

dist ( A , B ) = inf ⁡ x ∈ A , y ∈ B ∥ x − y ∥ 2 . \text{dist}(A, B) = \inf_{x \in A, y \in B} \|x - y\|_2. dist(A,B)=xA,yBinfxy2.

集合 A A A的直径定义为

diam ( A ) = sup ⁡ x , y ∈ A ∥ x − y ∥ 2 . \text{diam}(A) = \sup_{x, y \in A} \|x - y\|_2. diam(A)=x,yAsupxy2.

备注2:我们引入子类而不是直接使用类别的原因是,它可以减轻我们的可分性假设。我们不需要两个类别彼此很好地分开,这在现实世界的场景中是不现实的。相反,我们只需要局部子类形成簇。

现在我们准备陈述结构化数据假设。

(A) (直径的上界)存在 D > 0 D > 0 D>0,使得对于每个 ( i , j ) ∈ [ k ] × [ l ] (i, j) \in [k] \times [l] (i,j)[k]×[l],我们有: S i , j ∈ B ( x 0 , D / 2 ) S_{i,j} \in B(x_0, D/2) Si,jB(x0,D/2)对于某个 x 0 x_0 x0,然后

diam ( S i , j ) ≤ D . \text{diam} (S_{i,j}) \leq D. diam(Si,j)D.

(B) (距离的下界)存在 L > 0 L > 0 L>0,使得对于每个 ( i 1 , j 1 ) ≠ ( i 2 , j 2 ) ∈ [ k ] × [ l ] (i_1, j_1) \neq (i_2, j_2) \in [k] \times [l] (i1,j1)=(i2,j2)[k]×[l],我们有

dist ( S i 1 , j 1 , S i 2 , j 2 ) ≥ L . \text{dist} (S_{i_1,j_1}, S_{i_2,j_2}) \geq L. dist(Si1,j1,Si2,j2)L.

结构化数据假设的插图见图2。这里, L L L D D D类似于类间距离和类内距离,这是聚类领域广泛使用的术语。不同之处在于,我们分析中使用的直径是子类中点的局部类内距离的上界。从这个意义上说,结构化数据假设可能更适用于处理复杂数据集。例如,在MNIST数据集中,每个数字可能有不同的手写风格,这对应于不同的子类,适合我们的分析框架。结构化数据假设背后的直觉很简单:相似的样本应该接近,而不同的样本应该远离。

B. 理论分析

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

定义:集合 { ( x i , y i ) } i = 1 N \{(x_i, y_i)\}_{i=1}^{N} {(xi,yi)}i=1N,其中 x i ∈ R d x_i \in \mathbb{R}^d xiRd y i ∈ [ k ] y_i \in [k] yi[k],称为线性可分的,当且仅当存在一个超平面将整个空间 R d \mathbb{R}^d Rd切割成两个半空间,并且每个半空间中的数据点具有相同的标签。

定理1:(ResNet流的近似性质)如果所有 S i , j S_{i,j} Si,j ( i , j ) ∈ [ k ] × [ l ] (i, j) \in [k] \times [l] (i,j)[k]×[l],可以通过一组 M − 1 M-1 M1个平行超平面分开,即存在一个唯一的 S i , j S_{i,j} Si,j位于每对相邻平行超平面之间的区域。那么我们可以构造时间依赖参数 θ ( t ) = [ w t ( i ) , b t ( i ) , a t ( i ) ] i = 1 w \theta(t) = [w_t^{(i)}, b_t^{(i)}, a_t^{(i)}]_{i=1}^w θ(t)=[wt(i),bt(i),at(i)]i=1w在ResNet流中,

f ( x ( t ) , θ ( t ) ) = ∑ i = 1 w a t ( i ) σ ( w t ( i ) ⋅ x ( t ) + b t ( i ) ) , f(x(t), \boldsymbol{\theta}(t)) = \sum_{i=1}^{w} a_t^{(i)} \sigma(w_t^{(i)} \cdot x(t) + b_t^{(i)}), f(x(t),θ(t))=i=1wat(i)σ(wt(i)x(t)+bt(i)),

使得所有最终步骤2的区域 F i = { x ( 1 ) : x ( 0 ) ∈ S i , j , j ∈ [ l ] } F_i = \{x(1) : x(0) \in S_{i,j}, j \in [l]\} Fi={x(1):x(0)Si,j,j[l]} i ∈ [ k ] i \in [k] i[k]是线性可分的。我们需要 2 M + O ( d ) 2M + O(d) 2M+O(d)个不同的变量和 M / w M/w M/w层。

我们给出了证明的概述。考虑最简单的情况,其中每个 S i , j S_{i,j} Si,j只包含一个点,宽度 w w w也是1。我们的主要思想是构造一个ResNet流,使得每个子类被移动到一个适当的位置,具有更好的可分性。我们将总时间分成 N N N个间隔,并逐个处理点。解决最简单的情况后,我们扩展到 w > 1 w > 1 w>1的情况,即网络宽度更大。最后,我们证明了每个 S i , j S_{i,j} Si,j中有多于一个点的情况。

在经典的XOR数据集中,原始数据点 x i ( 0 ) = x i x_i(0) = x_i xi(0)=xi不是线性可分的。然而,定理1告诉我们:通过ODE流,我们可以使得输出特征 x i ( 1 ) x_i(1) xi(1)变得线性可分,以便适当的全连接层可以实现准确的分类。

我们的下一步是展示定理1中的条件可以通过引入扩散机制来满足。首先,我们给出了一个与距离-直径比有关的充分条件。

定理2。如果距离-直径比足够大,

L D ≥ M ( M − 1 ) π 4 d , \frac{L}{D} \geq \frac{M(M - 1)\sqrt{\pi}}{4\sqrt{d}}, DL4d M(M1)π ,

那么所有 S i , j S_{i,j} Si,j ( i , j ) ∈ [ k ] × [ l ] (i, j) \in [k] \times [l] (i,j)[k]×[l],可以通过一组 M − 1 M-1 M1个平行超平面分开。

这个证明依赖于将一个特定集合的表面积与单位球体进行比较。值得注意的是,在大多数情况下,子类的数量 M M M远小于 N N N。因此,不等式中的常数是可实现的。下一个命题展示了扩散步骤可以以指数速率增加这个比率。

命题1:假设每个子集 S i , j S_{i,j} Si,j ( i , j ) ∈ [ k ] × [ l ] (i, j) \in [k] \times [l] (i,j)[k]×[l]中的数据点在图 G = ( V , E ) G = (V, E) G=(V,E)中形成一个连通分量,并且每个 S i , j S_{i,j} Si,j是凸的。那么,距离-直径比增长到无穷大,即

lim ⁡ t → ∞ L ( t ) D ( t ) = ∞ . \lim_{t \to \infty} \frac{L(t)}{D(t)} = \infty. tlimD(t)L(t)=∞.

此外,增长率是指数级的。

证明命题1的基本思想是展示 L ( t ) L(t) L(t)是非递增的,而 D ( t ) D(t) D(t)以指数速率收敛到零。利用谱聚类理论,证明了每个子类沿着扩散过程收敛到其中心。

为了满足每个子集 S i , j S_{i,j} Si,j中的点在图中形成一个连通分量的假设,我们应该确保(1)没有边连接不同子集中的点(2)同一子集 S i , j S_{i,j} Si,j中的任意两个顶点是相互连接的。通过权重矩阵的构造,图中的每个顶点只与其 ntop \text{ntop} ntop个最近邻居相连。因此,第一个论点在 ntop \text{ntop} ntop不太大时得到满足,即最近邻居只包含来自同一子类的点。另一方面,一个k-最近邻图的连通性阈值是 O ( log ⁡ n ) O(\log n) O(logn) [76],在我们的情况下,n应该是每个子集中的点的数量。

上述分析揭示了扩散机制通过使同一子区域中的数据点更接近,而其他点相对更远,有助于组织数据点。随着距离-直径比的增加,使用ResNet流区分数据点变得容易。这个属性对于SSL/FSL问题很重要,因为它深入探索了点之间的关系。

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©中,特征与(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. 少样本学习

鉴于数据集 X = X s ∪ X q X = X_s \cup X_q X=XsXq,其中 X s = { ( x i , y i ) } i = 1 N 1 X_s = \{(x_i, y_i)\}_{i=1}^{N_1} Xs={(xi,yi)}i=1N1是带有标签信息的支持集, X q = { x j } j = 1 N 2 X_q = \{x_j\}_{j=1}^{N_2} Xq={xj}j=1N2是无标签的查询集,少样本学习的目标是在支持集 ∣ N 1 ∣ |N_1| N1非常小的情况下找到查询集中点的标签。在现有的少样本学习方法中,嵌入学习是一种典型方法,它将每个样本映射到低维空间,使得相似的样本接近,而不相似的样本远离。嵌入函数可以通过深度神经网络(即backbone)学习,该网络使用大量基础类别上的标记示例进行预训练。在少样本学习问题中,预训练的嵌入函数是固定的,并将所有数据样本映射到嵌入空间。

我们在三个少样本图像分类基准上进行实验:miniImageNet、tieredImageNet和CUB。miniImageNet和tieredImageNet都是ILSVRC-12数据集 [84]的子集,分别有100个和608个类别。CUB-200-2011 [85]是另一个细粒度图像分类数据集,有200个类别。我们遵循先前论文 [68],[86],[87]中的标准数据集拆分。所有图像都被调整为84×84的大小,遵循 [20]。

我们选择了两种广泛使用的网络,ResNet-18 [1]和WRN-28-10 [88]作为我们的backbone:后者通过添加更多的卷积层(28层)和特征平面(10倍)来扩展残差块。首先,我们使用交叉熵损失、标签平滑因子0.1、SGD优化器、标准数据增强和批量大小256来训练所有模型的基础类别上的backbone。注意,我们的训练过程不涉及任何元学习或情景训练策略。模型训练了T = 100个周期用于miniImageNet和tieredImageNet,以及T = 400个周期用于CUB,因为它的尺寸较小。我们使用多步调度器,在0.5T和0.75T时将学习率降低0.1。我们在验证集上评估了最近原型分类的准确性,并获得了最佳模型。嵌入训练过程通常与SimpleShot [68]和LaplacianShot [69]相似,但细节略有不同。最终我们得到了一个嵌入函数,将原始数据点映射到 R M \mathbb{R}^M RM,其中M = 512对于ResNet-18,M = 640对于WRN-28-10。

在我们为每个数据点获得特征向量之后,我们比较了5种典型的分类方法的性能,以强调扩散机制的有效性。

(1) 最近原型:每个类别 c c c的原型 m c m_c mc是支持集 X c s X_{cs} Xcs的平均值

m c = 1 ∣ X c s ∣ ∑ x ∈ X c s x . m_c = \frac{1}{|X_{cs}|} \sum_{x \in X_{cs}} x. mc=Xcs1xXcsx.

然后,如果查询样本与原型 m c m_c mc在欧几里得距离上最近,则将其分类为类别 c c c。这是最自然的分类方法,作为基线。

(2) 扩散:我们尝试最小化一个带有拉普拉斯正则化项的目标函数。在LaplacianShot [69]中,作者优化了以下损失函数

L = ∑ i = 1 N 2 ∑ c = 1 C y i , c ∥ x i − m c ∥ 2 + λ ∑ i , j = 1 N 2 w ( x i , x j ) ∥ y i − y j ∥ 2 , L = \sum_{i=1}^{N_2} \sum_{c=1}^{C} y_{i,c} \|x_i - m_c\|_2 + \lambda \sum_{i,j=1}^{N_2} w(x_i, x_j) \|y_i - y_j\|_2, L=i=1N2c=1Cyi,cximc2+λi,j=1N2w(xi,xj)yiyj2,

其中 N 2 = ∣ X q ∣ N_2 = |X_q| N2=Xq是查询样本的数量。 y i = [ y i , 1 , . . . , y i , C ] ∈ { 0 , 1 } C y_i = [y_{i,1}, ..., y_{i,C}] \in \{0, 1\}^C yi=[yi,1,...,yi,C]{0,1}C是在C维单纯形中,为每个查询点分配标签。 d d d是欧几里得距离。 w ( x i , x j ) w(x_i, x_j) w(xi,xj) x i x_i xi x j x_j xj之间的权重。

第一个损失项类似于最近原型分类。第二个损失项是众所周知的拉普拉斯正则化项。我们使用LaplacianShot [69]提供的迭代算法来最小化目标函数 min ⁡ y i L \min_{y_i} L minyiL。由于这里没有神经网络或对特征的操作,而只是标签传播,我们称这种方法为扩散。

(3) 对流:我们最小化支持集上的交叉熵损失

L = − ∑ i = 1 N 1 ∑ c = 1 C y i , c log ⁡ ( f ( x i ) c ) , L = -\sum_{i=1}^{N_1} \sum_{c=1}^{C} y_{i,c} \log (f(x_i)_c), L=i=1N1c=1Cyi,clog(f(xi)c),

使用梯度下降和简单的2层残差网络 f f f N 1 = ∣ X s ∣ N_1 = |X_s| N1=Xs是支持样本的数量。详细的网络结构可以在在线附录E.3.2中找到。在训练期间,数据点之间没有关系,残差网络是对流ODE的对应物,因此我们称这种方法为对流。

(4) 外部对流-扩散:我们最小化支持集上的交叉熵损失加上拉普拉斯正则化项

L = − ∑ i = 1 N 1 ∑ c = 1 C y i , c log ⁡ ( f ( x i ) c ) + μ ∑ i , j = 1 N w ( x i , x j ) ∥ f ( x i ) − f ( x j ) ∥ 2 2 , L = -\sum_{i=1}^{N_1} \sum_{c=1}^{C} y_{i,c} \log (f(x_i)_c) + \mu \sum_{i,j=1}^{N} w(x_i, x_j) \|f(x_i) - f(x_j)\|_2^2, L=i=1N1c=1Cyi,clog(f(xi)c)+μi,j=1Nw(xi,xj)f(xi)f(xj)22,

使用梯度下降和简单的2层残差网络。与(3)的区别在于我们在损失函数中添加了拉普拉斯正则化项。第一个拉普拉斯项的变化与我们对流-扩散ODE的扩散项一致。残差网络结构对应于对流,而拉普拉斯正则化对应于扩散。由于扩散在损失函数中以外部形式出现,我们称这种方法为外部对流-扩散。

(5) 内部对流-扩散:我们最小化支持集上的交叉熵损失

L = − ∑ i = 1 N 1 ∑ c = 1 C y i , c log ⁡ ( f ( x i ) c ) , L = -\sum_{i=1}^{N_1} \sum_{c=1}^{C} y_{i,c} \log (f(x_i)_c), L=i=1N1c=1Cyi,clog(f(xi)c),

使用梯度下降和简单的2层扩散残差网络(Diff-ResNet)。损失项与(3)相同,但不同之处在于我们在网络结构中内部添加了扩散层。通过比较(4)和(5),我们想验证将扩散作为网络结构的一部分而不是损失函数的一部分的必要性。

按照标准评估协议 [68],我们从测试类别中随机抽取了1000个5-way-1-shot和5-way-5-shot分类任务,每个类别有15个查询样本,并报告上述5种方法的平均准确性。

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

此外,我们研究了扩散机制中几个重要参数的影响:权重截断参数 ntop \text{ntop} ntop、扩散步数 r r r和步长 γ \gamma γ。我们在miniImageNet上使用ResNet-18和WRN作为backbone,对1000个5-way-1-shot任务进行了实验,并报告了不同参数下的平均准确性。

首先,我们调整了Sparse操作中的 ntop \text{ntop} ntop。我们选择 σ = [ ntop / 2 ] \sigma = [\text{ntop}/2] σ=[ntop/2]。结果如图7所示。从图中,我们注意到 ntop \text{ntop} ntop既不能太小也不能太大。太小的 ntop \text{ntop} ntop可能会破坏大型局部簇,而太大的 ntop \text{ntop} ntop会将不同类别的点纳入邻域。然而,与扩散强度相比,分类准确性对 ntop \text{ntop} ntop不太敏感。

接下来,我们研究了总扩散强度 r γ r\gamma rγ的影响。我们固定 γ = 0.5 \gamma = 0.5 γ=0.5并调整 r r r,范围从0到20。结果如图8所示。基于我们的实验,我们不应该将强度推至无穷大,因为在合成数据中,实际数据具有更复杂的几何结构,我们不能期望每个类别收敛到一个单点。

最后,我们固定总扩散强度 r γ = 5.0 r\gamma = 5.0 rγ=5.0,并改变 r r r从0到20,以研究步长的影响。我们要求 γ ≤ 1 \gamma \leq 1 γ1以确保稳定性。当总扩散强度太大时,例如 r < 5 r < 5 r<5时,我们设置 γ = 1.0 \gamma = 1.0 γ=1.0。如图9所示,当总扩散强度固定时,准确性几乎保持不变。因此,堆叠太多层是没有好处的。

总之,我们的Diff-ResNet的性能主要取决于总扩散强度 r γ r\gamma rγ。在固定强度的情况下,扩散层的数量 r r r和截断参数 ntop \text{ntop} ntop对性能的影响很小。我们已经在IV-B节后的命题1中简要讨论了 ntop \text{ntop} ntop的选择,并指出既不太大也不太小的 ntop \text{ntop} ntop更好。而不是根据不同的数据集或backbone挑选 ntop \text{ntop} ntop,我们在所有少样本学习实验中固定 ntop = 8 \text{ntop} = 8 ntop=8 σ = 4 \sigma = 4 σ=4,这表明适度的 ntop \text{ntop} ntop就足以获得良好的结果。至于扩散层的数量 r r r,通过在验证集上选择最佳扩散强度来确定。从我们的实验结果来看,对于1-shot任务,我们需要更多的层,而对于5-shot任务,则需要较少的层。此外,最佳扩散强度因数据集而异,因为每个数据集的几何属性不同。详细的参数选择在在线附录E.3中提供。

最后,我们想强调我们的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(内部对流-扩散与扩散)中彻底调查了我们的方法和他们之间的差异。

此外,我们还研究了扩散机制的计算成本。扩散层的实现仅仅是小规模的矩阵乘法,使用GPU非常高效。我们在不同数量的扩散层r的情况下运行了1000个分类任务,并使用Diff-ResNet报告了每个任务的平均计算时间。结果和准确性在图10中报告。总扩散强度固定为 r γ = 2.0 r\gamma = 2.0 rγ=2.0,除非当r = 1时我们选择 γ = 1.0 \gamma = 1.0 γ=1.0以确保稳定性。我们使用单个GeForce RTX 2080 Ti来收集运行时间。如前图9所述,固定扩散强度时,没有必要堆叠太多层。在两个子图中,2个扩散层已经可以实现最佳结果,而与无扩散相比,时间增加了约25%。此外,10个扩散层的时间大约是无扩散的两倍,10层足以在所有少样本任务中实现所需的扩散强度。

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

VI. CONCLUSION

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

声明

本文内容为论文学习收获分享,受限于知识能力,本文对原文的理解可能存在偏差,最终内容以原论文为准。本文信息旨在传播和学术交流,其内容由作者负责,不代表本号观点。文中作品文字、图片等如涉及内容、版权和其他问题,请及时与我们联系,我们将在第一时间回复并处理。

关注公众号:AI前沿速递,获取更多优质资源!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值