当前位置: 首页 > ds >正文

新的激活函数B-SiLU和NeLU:ReLU函数的复兴

摘要

在深度学习架构中建模复杂的激活函数已成为一个独特的研究方向。诸如GELU、SELU和SiLU等函数提供了平滑的梯度和改进的收敛特性,使其成为最先进模型中的热门选择。尽管存在这一趋势,但经典的ReLU函数仍因其简洁性、内在稀疏性以及其他有利的拓扑特性而备受青睐。然而,ReLU单元容易出现不可逆的失活现象——即所谓的“ReLU死亡问题”——这限制了其整体有效性。在本研究中,我们引入了ReLU的替代梯度学习(Surrogate Gradient Learning for ReLU,简称SUGAR)方法,作为一种新颖的即插即用正则化器,用于深度架构。SUGAR在正向传播过程中保留标准的ReLU函数,但在反向传播过程中用平滑的替代函数替换其导数,以避免梯度归零。我们证明,当SUGAR与精心选择的替代函数配对时,能显著提升卷积网络架构(如VGG-16和ResNet-18)的泛化性能,同时提供更稀疏的激活,并有效复活“死亡”的ReLU单元。此外,我们还表明,即使在通常采用GELU的现代架构(如Conv2NeXt和Swin Transformer)中,用SUGAR替代这些函数也能产生具有竞争力甚至略微优越的性能。这些发现挑战了先进激活函数对于最优性能是必需的普遍观念。相反,它们表明,传统的ReLU函数,特别是经过适当的梯度处理后,可以作为强大且多功能的“复活”经典,广泛应用于各种深度学习视觉模型中。

1 引言

深度神经网络中激活函数的选择对模型的收敛性和性能有实质性影响。在[7]中提出将修正线性单元(ReLU)作为激活函数之前,人们曾集中精力解决S型激活函数的饱和和梯度消失问题。ReLU已被证明能加速收敛,并常常提高泛化能力。作为深度学习历史上的一个里程碑,ReLU已被用于AlexNet [19],该网络在ImageNet [3]基准测试中显著优于其竞争对手。这项工作明确研究了ReLU在深度卷积网络中相对于双曲正切(tanh)的优越性。此后,ReLU已被用于众多任务,包括图像分类和分割、强化学习、自然语言处理和语音识别 [10, 32, 13, 36, 14, 39]。

从数学上讲,近期的研究已建立了热带几何与具有ReLU激活的前馈神经网络之间的深层联系 [42],揭示了ReLU的潜在代数结构,即热带半环,该结构用最大值代替加法,用加法代替乘法。因此,ReLU网络形成的决策边界对应于热带超曲面,这是热带几何中的基本对象。此类神经网络等价于热带有理函数 [42],该函数定义为两个热带多项式的比值,而热带多项式本身又由仿射函数的最大值构成。与此密切相关的是,将ReLU网络的连续层直观地理解为空间折叠变换,这种变换允许对输入空间中的相似性进行紧凑表示 [20, 28, 29]。

在ReLU网络中,负的预激活值被真正置零,从而允许稀疏表示。这可能导致在未见数据上具有更好的泛化能力,但强制过多的稀疏性可能会损害预测性能,因为它实际上降低了模型容量 [7]。这一现象被称为“ReLU死亡问题”,一直是ReLU网络的一大警告。ReLU死亡问题催生了众多线性单元函数,包括但不限于LeakyReLU [26]、PReLU [9]、GELU [11]、SELU [17]、SiLU/Swish [4, 31]、ELU [2]。所有这些函数都为负的预激活值引入了非零激活,在ReLU的建模优势与平滑、连续梯度的优势之间提供了不同的权衡。

在本文中,我们通过引入一种新颖的方法——ReLU的替代梯度学习(SUGAR)——来解决ReLU的局限性,同时不牺牲其优势。SUGAR允许模型保留标准的ReLU激活,同时确保即使对于负的预激活值也能保持稳定的梯度流。本工作的进一步贡献如下:

  • 我们提出了两种新的替代梯度函数,即B-SiLU和NeLU,它们可以无缝集成到各种模型中。这些函数一致地提高了泛化性能。
  • 我们在VGG-16 [35]和ResNet-18 [8]上进行了全面的实验,证明SUGAR显著提升了这两种架构的泛化能力。
  • 我们在现代架构(如Swin Transformer [23]和Conv2NeXt [5])上评估了SUGAR,展示了其适应性和有效性。
  • 对VGG-16层激活的深入分析表明,应用SUGAR后激活分布发生了明显变化,为SUGAR在缓解ReLU死亡问题中的作用提供了视觉证据,同时促进了更稀疏的表示。
  • 我们进一步探索了有SUGAR和无SUGAR情况下的损失景观,为理解其优化优势提供了更深入的见解。

所提出的SUGAR方法具有几个理想的特性。它易于实现,并在正向传播过程中始终使用ReLU。当与所提出的B-SiLU替代函数结合使用时,VGG-16在CIFAR-10和CIFAR-100 [18]上的测试准确率分别提高了10和16个百分点,而ResNet-18相比没有SUGAR的最佳模型也分别显示了9和7个百分点的相应提升。

2 背景

2.1 替代梯度学习

在传统的人工神经网络中,学习依赖于基于梯度的优化方法,如反向传播,这要求激活函数是连续且可微的。然而,脉冲神经网络(SNNs)是离散且不可微的,使得反向传播的直接应用变得不可行。

替代梯度学习作为一种解决方案出现,它通过用一个平滑且可微的近似值来替换不可微的脉冲函数的梯度,从而训练SNNs [30]。这些替代函数允许在训练过程中梯度在网络中流动,使得在神经形态和基于事件的计算环境中能够使用强大的优化技术。这一想法在2010年代末开始受到关注,并自此成为以计算高效方式训练生物启发的脉冲模型的基础 [1, 12, 38, 41]。

最近,一种名为ProxyGrad的相关方法 [22] 通过在优化过程中操纵梯度,改进了卷积网络中的激活最大化(AM)。研究表明,在反向传播中使用LeakyReLU,同时在正向传播中保持ReLU,可以使AM逃离较差的局部最优解,并达到更高的激活值。因此,该方法产生了更具信息性和可解释性的特征可视化。

2.2 前向梯度注入(FGI)

前向梯度注入(FGI)是SUGAR中的核心算法。它最初在[34]中被引入作为SNNs中的一种替代梯度策略。它利用停止梯度算子(即.detach())来操纵梯度,使得具有不可微脉冲的模型能够通过梯度信号进行训练。FGI允许在正向传播过程中注入梯度,其方程如下(间接替代梯度函数):

y = g ( x ) − sg ⁡ ( g ( x ) ) + sg ⁡ ( f ( x ) ) y = g(x) - \operatorname{sg}(g(x)) + \operatorname{sg}(f(x)) y=g(x)sg(g(x))+sg(f(x))

其中, sg ⁡ ( ⋅ ) \operatorname{sg}(\cdot) sg()是停止梯度算子, f ( ⋅ ) f(\cdot) f()是正向计算,其梯度被绕过,而 g ( ⋅ ) g(\cdot) g()是另一个函数,其梯度被注入到感兴趣的变量 x x x上,但由于与自身的相减而不贡献于正向结果。选择 g ( ⋅ ) g(\cdot) g()为对负输入具有非零梯度的激活函数,可以训练ReLU网络而不受ReLU死亡问题的影响。然而,方程1需要在反向传播中计算 g ( ⋅ ) g(\cdot) g()的梯度。通过乘法技巧,可以使 g ¨ ( ⋅ ) \ddot{g}(\cdot) g¨()在反向传播中恰好是 f ( ⋅ ) f(\cdot) f()的导数(直接替代梯度函数):

m = x ⋅ sg ⁡ ( g ~ ( x ) ) y = m − sg ⁡ ( m ) + sg ⁡ ( f ( x ) ) \begin{aligned} m & = x \cdot \operatorname{sg}(\tilde{g}(x)) \\ y & = m - \operatorname{sg}(m) + \operatorname{sg}(f(x)) \end{aligned} my=xsg(g~(x))=msg(m)+sg(f(x))

FGI允许在正向传播过程中直接注入替代梯度函数,与原始函数 f ( ⋅ ) f(\cdot) f()无关。[34]中的结果表明,FGI相比经典的替代梯度部署(即覆盖反向函数)可以提高模型的可优化性和可移植性。

3 ReLU的替代梯度(SUGAR)

我们提出的方法将FGI应用于具有平滑替代函数的ReLU网络中。我们将替代梯度的潜在应用扩展到SNNs之外,并旨在将此框架作为一种技术来克服普通ReLU的缺点。

在SUGAR的上下文中,间接FGI可以表示为:

y = f ( x ) − sg ⁡ ( f ( x ) ) + sg ⁡ ( ReLU ⁡ ( x ) ) y = f(x) - \operatorname{sg}(f(x)) + \operatorname{sg}(\operatorname{ReLU}(x)) y=f(x)sg(f(x))+sg(ReLU(x))

此公式允许梯度注入,并确保即使对于负激活也能传播梯度。具体来说,使用[34]中的乘法技巧,可以通过以下方式直接注入替代梯度函数:

m = x ⋅ sg ⁡ ( f ~ ( x ) ) y = m − sg ⁡ ( m ) + sg ⁡ ( ReLU ⁡ ( x ) ) \begin{aligned} m & = x \cdot \operatorname{sg}(\tilde{f}(x)) \\ y & = m - \operatorname{sg}(m) + \operatorname{sg}(\operatorname{ReLU}(x)) \end{aligned} my=xsg(f~(x))=msg(m)+sg(ReLU(x))

在这里, f ~ ( x ) \tilde{f}(x) f~(x)明确定义了ReLU的替代梯度行为。

替代函数的选择是灵活的,可以包括在先进应用中常用的激活函数,如ELU、GELU、SiLU、SELU和Leaky ReLU(见图8)。这些函数通常具有由自门控或自归一化等机制驱动的理想特性。重要的是,这些替代候选函数与ReLU不同,它们对负输入( x < 0 x < 0 x<0)具有非零梯度。尽管替代函数使负激活的梯度能够流动,但正向传播和随后的损失计算严格依赖于 x > 0 x > 0 x>0时的激活。因此,在这种情况下,替代梯度学习的影响可以解释为过滤掉低于截止阈值的预激活,从而减少网络因拓扑简化和稀疏性而导致的过拟合倾向 [27, 29],但不会损害梯度流动。

在初步研究中,我们意识到需要调整当前的激活函数以利用SUGAR的特定目的。如后文将深入讨论的,SUGAR的效果在不同的正则化设置中有所不同。因此,在以下内容中,我们提出了两种与这些设置相契合的新替代函数。

3.1 B-SiLU

我们引入了一种名为有界Sigmoid线性单元(B-SiLU)的新型激活函数,它结合了自门控特性和可调的下界参数。从数学上讲,该函数可以表示为:

B-SiLU ⁡ ( x ) = ( x + α ) ⋅ σ ( x ) − α 2 , with  α = 1.67 \operatorname{B-SiLU}(x) = (x + \alpha) \cdot \sigma(x) - \frac{\alpha}{2}, \quad \text{with } \alpha = 1.67 B-SiLU(x)=(x+α)σ(x)2α,with α=1.67

其中, σ ( x ) \sigma(x) σ(x)表示Sigmoid激活。B-SiLU激活函数的导数为:

d d x B − S i L U ( x ) = σ ( x ) + ( x + α ) σ ( x ) ( 1 − σ ( x ) ) \frac{d}{dx} \mathrm{~B}-\mathrm{SiLU}(x) = \sigma(x) + (x + \alpha) \sigma(x)(1 - \sigma(x)) dxd BSiLU(x)=σ(x)+(x+α)σ(x)(1σ(x))

B-SiLU及其导数如图8所示。B-SiLU激活函数源于对SUGAR的探索性实验,特别受到[33]中引入的类似swish的Sigmoid函数和[15, 40]中考察的相关阈值算子的启发。其动机是结合SiLU的自门控行为和GELU的平滑性的有利特性。

3.2 NeLU

我们进一步引入了负斜率线性单元(NeLU),作为ReLU的平滑导数替代品。它受到ReLU在 x > 0 x > 0 x>0时恒定导数和GELU在 x < 0 x < 0 x<0时平滑负斜率的启发。对于较大的负输入,所得梯度会收敛回零。

d d x NeLU ⁡ ( x ) = { 1 , if  x > 0 α 2 x ( 1 + x 2 ) 2 , else \frac{d}{dx} \operatorname{NeLU}(x) = \left\{ \begin{array}{ll} 1, & \text{if } x > 0 \\ \alpha \frac{2x}{(1 + x^2)^2}, & \text{else} \end{array} \right. dxdNeLU(x)={1,α(1+x2)22x,if x>0else

α \alpha α控制 x < 0 x < 0 x<0且值较小时负梯度的幅度,以确保稳定性。所得梯度如图1所示。通过应用方程5和方程6中的乘法技巧,可以直接设置激活的梯度,如方程9所示。
在这里插入图片描述

4 实验

4.1 在CIFAR-10/100上的替代函数比较

我们进行了广泛的实验,使用ResNet-18和VGG-16架构,在CIFAR-10和CIFAR-100数据集上评估并比较了各种激活函数,包括使用和不使用SUGAR的情况。在每次应用SUGAR的运行中,前向函数始终采用标准的ReLU函数;对于给定的替代激活函数 f f f(例如ELU),我们将网络在使用 f f f进行前向传播且使用其真实梯度进行反向传播(非SUGAR场景)时的性能,与使用ReLU进行前向传播但使用 f f f的梯度进行反向传播(例如,使用ELU的SUGAR)的相同架构的性能进行比较。每种配置都使用不同的随机种子训练了五次,以确保结果的稳健性。为了单独考察激活函数和SUGAR应用对泛化能力的影响,我们没有采用任何数据增强方法(完整的实验设置见附录B)。评估的替代函数包括LeakyReLU、SELU、ELU、GELU、SiLU(Swish)、Mish,以及我们提出的B-SiLU和NeLU。完整的实验结果见附录C。
在这里插入图片描述

总体而言,使用ELU、SELU,尤其是B-SiLU的SUGAR相较于ReLU基线带来了最大的性能提升,而LeakyReLU和NeLU的表现则始终不佳(图2)。在CIFAR-10数据集上,使用ResNet-18架构时,B-SiLU结合SUGAR将准确率从76.76%提升至86.42%。VGG-16也表现出类似的性能提升:B-SiLU将测试准确率提高了近10个百分点(78.50%→88.35%)。
在CIFAR-100数据集上,SUGAR B-SiLU的优势更为明显:ResNet-18的准确率从48.99%跃升至56.51%,VGG-16的准确率则从48.73%提升至64.47%(图3)。同样,Leaky ReLU和NeLU的性能提升微乎其微甚至为负(例如,ResNet-18上从43.67%→43.41%),这表明在这种设置下,简单的线性泄漏无法充分利用SUGAR的优势。综上所述,B-SiLU在各种架构和数据集上的表现均优于其他替代函数,ELU和SELU提供了可靠的改进,而在此设置下,Leaky ReLU和NeLU并未从SUGAR中获得显著益处。
在这里插入图片描述

4.2 深度ReLU网络的稳定性改进

为了评估SUGAR在解决ReLU神经元失活问题上的有效性,我们重新审视了文献[25]中引入的一个受控设置,其中使用对称权重初始化的深度且狭窄的ReLU网络由于神经元广泛失活而无法学习。我们通过引入B-SiLU替代梯度的SUGAR来复制并扩展了原始实验,这大大提高了多个简单回归任务中的层激活概率和学习效果。我们的结果表明,SUGAR甚至能够通过失活的神经元传递梯度,从而降低崩溃率并增强模型表达能力。详细分析请参见附录A。

4.3 Conv2NeXt和Swin Transformer

我们进一步研究了SUGAR在最新模型中的潜力。为此,我们选择了一个基于卷积的模型和一个基于注意力的模型。Conv2NeXt[5]被选为卷积模型,因为它与ConvNeXt[24]架构相同,但针对较小的数据集进行了调整。另一方面,Swin Transformer[23]是一个视觉Transformer模型,专为大型数据集(即ImageNet1k)设计,最小的模型有2800万个参数。由于我们在Tiny-ImageNet200[3]上训练了该模型,因此它对于该数据集来说参数过多。我们直接采用了文献[23]和[5]中的原始模型形式。唯一进行的修改是将激活函数替换为相应的SUGAR实现。
在这里插入图片描述

当应用于Conv2NeXt时,SUGAR始终优于在前向和反向传播中都使用GELU的基线模型,如表1所示。尽管我们复现的Conv2Next结果(文献[5])的准确率低于报告的83.84%(使用GELU),但使用NeLU的SUGAR超过了这一值。对于Swin Transformer,尽管B-SiLU的性能略有下降,但使用 α = 0.01 \alpha=0.01 α=0.01的NeLU的准确率高于两个基线模型。

5 讨论

在后续分析中,我们通过检查每个样本的层激活情况来考察SUGAR效应。结果表明,激活分布发生了明显变化。随后,我们分析了有无SUGAR时ResNet-18的损失曲面。最后,我们探讨了将SUGAR作为一种正则化形式的潜力。

5.1 SUGAR激活失活神经元

为了阐明替代梯度如何影响内部表示,我们分析了在CIFAR-100上训练40个epoch后VGG-16骨干网络的激活特征(见图4)。对于每个数据样本,我们记录了一个神经元在整个训练epoch中产生输出的次数,由此得到的分布反映了神经元实际参与前向传播的频率。x轴上0点处的频率对应于在所有样本中均不活跃的神经元(即失活神经元)。
在这里插入图片描述

普通ReLU基线与使用SUGAR(BSiLU)训练的网络之间的第一个显著差异出现在第12层和第13层。ReLU模型在激活计数直方图中呈现出平坦分布:大量神经元从未激活(失活神经元),而其他神经元则始终保持活跃。在SUGAR模型中,相同的层呈现出近似正态分布,以适中的激活计数为中心,这表明有界的替代梯度保持了梯度流动,并防止神经元变得功能惰性。

第二个差异涉及网络的浅层部分。SUGAR模型的前四个卷积层呈现出略显平坦、右偏的分布,其众数低于基线。因此,对于给定的图像,平均而言,较少的滤波器处于活跃状态,这表明替代优化激活鼓励了选择性,并减少了冗余特征图,从而可能提高了泛化能力。

综合这些观察结果,我们可以看出,有界的替代梯度同时缓解了失活神经元问题,并在最有益的地方促进了稀疏性。由此产生的整体平衡——早期稀疏性与良好表现的深层激活相结合——可能有助于解释第4节中报告的泛化能力提升。平均激活率的降低也暗示了在资源受限的硬件上部署时可能获得的实际收益,因为内存流量和乘加运算次数与活跃神经元的数量成正比。

当前的分析仅限于层级的聚合统计量。未来的工作应跟踪训练期间激活的动态变化,并评估这些趋势是否也适用于其他架构和数据集。我们在CIFAR-10上对所有测试模型都观察到了相同的激活特征模式。相应的图表可在E.2节中找到。

5.2 损失曲面分析

为了理解替代梯度如何重塑优化几何形状,我们在CIFAR-100上训练ResNet-18 10个epoch后,可视化了训练权重附近的损失曲面(见图5)。遵循文献[21]中的标准双向过程,我们采样了两个随机方向,并按层重新缩放以匹配相应权重张量的 ℓ 2 \ell_{2} 2范数(批归一化参数固定)。我们在 [ − 0.25 , 0.25 ] 2 [-0.25,0.25]^{2} [0.25,0.25]2上跨越的 100 × k 100 \times k 100×k网格上评估损失,并绘制了普通ReLU模型和使用SUGAR(B-SiLU)训练的相同模型的等高线。
在这里插入图片描述

普通网络的损失曲面在中心处呈现出相对平坦的盆地,但向边缘急剧上升。在极端权重扰动(网格的角落)处,损失超过25,形成了陡峭的悬崖,这可能会阻碍优化。相比之下,SUGAR的损失曲面明显更加凸出,即使在大扰动下损失也保持较低水平。更平滑的曲面意味着梯度条件更好,这有助于解释我们在图2和E.1节中观察到的训练过程中更快的收敛速度。

5.3 SUGAR作为一种正则化技术

第5.1节中的经验结果为特定层中的分布偏移提供了证据。这些分布显示出由ReLU激活函数诱导的稀疏活动。已有大量工作探讨了稀疏性与泛化能力之间的关系[37, 6]。我们的目标是从正则化的角度考察SUGAR。最广泛且简单的正则化方法是权重衰减,它通过将纯成本函数的梯度向小权重方向调制来发挥作用。SUGAR也通过调制纯基于ReLU的成本函数的梯度来进行正则化;然而,通过采用替代激活函数,它以一种更复杂且自适应的方式实现了这一点,具体取决于激活模式。

我们考虑了本文中研究的模型。第4.1节和第5.1节中的结果使用的模型并未进行大量正则化。在这种设置下,选择与ReLU导数相差较大的替代函数会引入更严厉的正则化,并提高预测性能。然而,在高度正则化的设置中(如第4.3节所示),必须谨慎且细致地应用额外的正则化,以避免欠拟合。在这种情况下,建议选择一个与ReLU导数相差较小的函数(例如NeLU),该函数在预激活低于截止阈值时提供梯度流动,同时尽可能接近地模拟ReLU的反向特性。这种行为在我们的结果中得到了反映:虽然B-SiLU在VGG-16和ResNet-18上显著提高了泛化能力(见第4.1节),但NeLU在已经正则化的Conv2NeXt和Swin Transformer模型上被证明在增强泛化能力方面更为有效(见第4.3节)。

6 结论

本研究提供了有力证据,表明最初应用于脉冲神经网络领域的替代梯度学习方法,能够显著提升非脉冲深度神经网络中经典ReLU(修正线性单元)的性能。通过在前向传播中保留ReLU,而在反向传播中用平滑的替代函数替换其导数,SUGAR(基于替代梯度的ReLU改进方法)能够实现稳健的训练动态和更好的泛化能力,特别是在VGG-16和ResNet-18等卷积架构中。

我们的研究结果表明,SUGAR结合精心设计的替代函数(如B-SiLU和NeLU),为长期存在的“ReLU死亡”问题提供了一个优雅的解决方案。特别是BSiLU,引入了有界平滑梯度,不仅能防止神经元失活,还能鼓励有益的稀疏模式。另一方面,NeLU通过其平滑的负斜率提供了更保守的正则化效果,在保留ReLU结构简单性和有益特性的同时,改善了被抑制激活的梯度流动。

尽管NeLU负斜率对训练动态的确切影响仍是一个开放性问题,但我们的实验表明,它有助于在像Conv2NeXt和Swin Transformer这样的强正则化模型中进行梯度传播。这表明替代梯度形状与模型正则化强度之间存在微妙的相互作用,为未来的探索指明了有前景的方向。

总之,本研究将经典ReLU重新定位为深度学习工具箱中的一个有韧性的组件。通过适当的梯度处理,基于ReLU的网络可以匹配甚至超越依赖更复杂激活函数的现代架构。

6.1 局限性及未来工作

SUGAR在不同模型家族中的性能表现差异显著。在VGG-16和ResNet-18等深度较低正则化的网络中,它表现出明显的优势,但在Conv2NeXt和Swin Transformer等高度正则化的架构中,如果替代梯度与ReLU导数偏离较大,则效果较差,甚至可能有害。

引入的替代函数是通过经验直觉和基于试验的调优来设计的,而非基于正式的设计原则。此外,我们的结果表明训练动态和泛化能力有所提升,但研究尚未提供关于收敛性、稳定性或泛化界限的正式保证。在没有严格分析框架的情况下,很难预测SUGAR在不同训练方案下的行为。

我们的评估主要集中在图像分类任务上,使用了CIFAR-10、CIFAR-100和Tiny-ImageNet等数据集,以及一些简单的玩具问题。目前尚不清楚SUGAR在其他领域(如自然语言处理、强化学习或时间序列建模)中的表现如何,在这些领域中,激活动态和梯度传播可能存在显著差异。

除了解决当前的局限性和开放性问题外,未来的研究可以评估针对特定架构和数据集的自动替代函数搜索。考虑基于训练信号和激活分布动态调整的替代函数,或按计划调整的替代函数,也可能很有趣。

此外,鉴于SUGAR在应用简单ReLU的同时能改善稀疏性并减少网络内的激活分布,它可能对结构化剪枝、量化感知训练或在低开销模型背景下实现高效能推理有益。

附录

A 使用SUGAR解决“ReLU死亡”问题的玩具示例

在[25]中,创建了一个人为设置以导致“ReLU死亡”问题。在给定配置下,一个10层的ReLU网络由于“ReLU死亡”问题产生了恒定的输出。提出的解决方案是对权重进行随机非对称初始化(RAI),以减少负激活的数量。在本节中,我们使用SUGAR复制并扩展了这些实验,并表明SUGAR能够显著降低死激活的概率。

所讨论的网络由10个宽度为2的前馈隐藏层组成,仅使用ReLU激活函数。如[25]所示,当神经网络相对于其宽度足够深,并用对称权重初始化时,初始激活概率往往接近于零。在这种情况下,在超过90%的试验中,由于神经元广泛且不可逆的失活,网络无法学习有意义的表示。

为了进行评估,我们从[25]中改编了四个在 [ − 1.5 , 1.5 ] [-1.5,1.5] [1.5,1.5]范围内的不同玩具数据集,作为回归任务。对于每个函数,我们从 U [ − 3 , 3 ] d i n \boldsymbol{U}[-\sqrt{3}, \sqrt{3}]^{d_{in}} U[3 ,3 ]din中抽取3000个样本作为网络的输入。 d in d_{\text{in}} din表示输入维度,对于方程13为2,其余为1。对于每个任务,进行了100次独立运行。对应的方程如下:

f 1 ( x ) = ∣ x ∣ f 2 ( x ) = x ⋅ sin ⁡ ( 5 x ) f 3 ( x ) = 1 { x > 0 } ( x ) + 0.2 sin ⁡ ( 5 x ) f 4 ( x 1 , x 2 ) = [ ∣ x 1 + x 2 ∣ ∣ x 1 − x 2 ∣ ] \begin{aligned} f_{1}(x) & =|x| \\ f_{2}(x) & =x \cdot \sin (5 x) \\ f_{3}(x) & =\mathbb{1}_{\{x>0\}}(x)+0.2 \sin (5 x) \\ f_{4}\left(x_{1}, x_{2}\right) & =\left[\begin{array}{l} \left|x_{1}+x_{2}\right| \\ \left|x_{1}-x_{2}\right| \end{array}\right] \end{aligned} f1(x)f2(x)f3(x)f4(x1,x2)=x=xsin(5x)=1{x>0}(x)+0.2sin(5x)=[x1+x2x1x2]

损失计算为250个epoch上的均方误差。使用Adam[16]作为优化器,学习率为0.005,并在第100、150、200、225个epoch时将学习率降低0.1。每个目标函数的小批量大小为64。在本实验中,使用 B − S i L U \mathrm{B}-\mathrm{SiLU} BSiLU的导数作为替代梯度。

图6清楚地表明,如[25]中所示,ReLU网络无法解决方程10的回归任务。一旦应用带有B-SiLU的SUGAR,网络会产生更多的激活,从而能够解决回归任务。
在这里插入图片描述

此外,我们跟踪了各层的平均激活概率,如图7所示,以监测各层内的活动,并估计在前向传播过程中积极贡献的神经元数量。因此,我们获得了网络内部活动的动态视图,使我们能够评估网络是否有效利用了其容量,以及在学习过程中稀疏性如何演变。早期层激活较低的模型可能在传播信息方面遇到困难,而后期层激活过高的模型可能表明存在冗余。然而,为了清晰起见,我们仅可视化各层的平均活动。
在这里插入图片描述

在[25]中,由于方程13的复杂性,其层数从10层增加到20层。在SUGAR实验中,层数保持在10层,与[25]中的结果相比,模型在各层中仍然产生了更多的激活,如表2所示。使用[25]中建议的非对称正初始化方法,可以降低神经元失活的可能性。然而,一旦神经元失活,由于该方法仅涉及初始化,模型无法重新激活该神经元。对于SUGAR来说,由于通过该特定神经元的梯度流动得以实现,因此仍然有可能重新激活。
在这里插入图片描述
在这里插入图片描述

B VGG-16和ResNet-18的实验设置

在CIFAR-10和CIFAR-100上进行的所有激活函数实验均采用相同的设置:

  • 批量大小:128
  • 验证集划分:训练集的10%
  • 数据增强:无
  • 工作线程数:4
  • 优化器:SGD,学习率为0.001
  • 学习率计划:在第100个epoch时设置一个里程碑
  • Epoch数:CIFAR-10为50个epoch,CIFAR-100为100个epoch
  • 重复次数:每种配置进行5次独立运行,种子为[1,10,20,25,42]
  • 硬件:NVIDIA RTX A6000 GPU(CUDA 12.6,驱动560.35.03)

C VGG-16和ResNet-18在CIFAR-10/100上的完整结果

本节提供了VGG-16和ResNet-18的完整结果。值得注意的是,当ReLU和B-SiLU结合使用时,它们在泛化能力方面表现出色。
在这里插入图片描述
在这里插入图片描述

D 激活函数及其导数

在这里插入图片描述

E VGG-16和ResNet-18实验的附加图表

本附录提供了额外的图表,以更深入地了解VGG-16和ResNet-18实验中观察到的收敛行为、激活分布和测试准确率。

E.1 验证曲线图

在这里插入图片描述

E.2 激活图

在这里插入图片描述

E.3 条形图准确率

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

F Swin Transformer的实验设置

模型取自原始工作[23]。在本研究中,使用了Swin Transformer的微型版本(2800万个参数)。尽管我们的实现与[23]完全一致,但在这里我们提供了关于训练过程的详细规格。Swin Transformer在具有200个类别的Tiny ImageNet数据集上进行训练。

  • 批量大小:训练时使用的批量大小为200。
  • 验证集划分:训练集的5%
  • 数据增强:在训练过程中采用了多种增强技术:
  • 颜色抖动,强度为0.4
  • AutoAugment策略:rand-m9-mstd0.5-inc1
  • 随机擦除,参数为:
    • 概率:0.25
    • 模式:像素
    • 计数:1
  • Mixup,alpha为0.8
  • Cutmix,alpha为1.0
  • Mixup和Cutmix在批量模式下应用,切换概率为0.5
  • 工作线程数:8
  • 优化器:使用AdamW优化器,参数如下:
    • Betas:(0.9, 0.999)
    • Epsilon:1e-8
    • 权重衰减:0.05
  • 学习率计划:使用余弦学习率调度器,参数为:
    • 基础学习率:5e-4,根据批量大小和设备数量线性缩放
    • 预热学习率:5e-7
    • 最小学习率:5e-6
    • 预热epoch数:20
  • 梯度裁剪,最大范数为5.0
  • Epoch数:模型训练了300个epoch。
  • 重复次数:每种配置进行5次独立运行,种子为[1,10,20,25,42]
  • 硬件:NVIDIA GeForce RTX 4090 25GB GPU(CUDA 12.4,驱动550.144.03)

G Conv2NeXt的实验设置

模型取自原始工作[5]。遵循[5]中的设置,使用了Conv2NeXt的基础版本(700万个参数)。尽管我们的实现与[5]完全一致,但在这里我们提供了关于训练过程的详细规格。使用torch.compile与SUGAR结合。Conv2NeXt在CIFAR-100数据集上进行训练。

  • 批量大小:每个GPU的批量大小为200,通过4步梯度累积,有效批量大小为800。
  • 验证集/训练集:按照torchvision中CIFAR-100的默认设置,为50000/10000。根据[5],未使用测试集。
  • 数据增强:采用了以下增强策略:
    • AutoAugment:rand-m9-mstd0.5-inc1
    • 颜色抖动:0.4
    • 随机擦除,参数为:
      • 概率:0.25
      • 模式:像素
      • 计数:1
    • Mixup:alpha=0.8
    • Cutmix:alpha=1.0
    • 结合Mixup/Cutmix在批量模式下应用,切换概率为0.5
  • 工作线程数:10
  • 优化器:使用AdamW优化器,参数如下:
    • 学习率:4e-3
    • 权重衰减:0.05
    • Epsilon:1e-8
    • Betas:默认值((0.9, 0.999))
  • 学习率计划:使用余弦学习率调度器:
    • 初始学习率:4e-3
    • 最小学习率:1e-6
    • 预热期:20个epoch
    • 权重衰减也遵循余弦计划
  • Epoch数:训练进行了300个epoch。
  • 重复次数:每种配置进行5次独立运行,种子为[1,10,20,25,42]
  • 硬件:NVIDIA H100 80GB GPU(CUDA 12.4,驱动550.127.08)
http://www.xdnf.cn/news/14413.html

相关文章:

  • 6.14项目一话术
  • 四六级英语作文模版
  • LeetCode 第72题:编辑距离(巧妙的动态规划方法)
  • 同旺科技 USB TO SPI / I2C适配器(专业版)--EEPROM读写——C
  • uni-app项目实战笔记14--给全屏页面添加遮罩层
  • 深度学习中的激活函数:PyTorch中的ReLU及其应用
  • 人工智能学习14-Numpy-数组广播机制
  • AtCoder AT_abc410_e [ABC410E] Battles in a Row 题解
  • 如何识别并管理多项目环境下的潜在风险
  • 【Git】使用 SSH 协议 解决 Git 推送失败问题
  • 思科资料-思科交换机的常见配置(详细总结)
  • SCADA|KingSCADA对比显示任意几条实时曲线的方法
  • [特殊字符] Next.js Turbo 模式不支持 @svgr/webpack 的原因与解决方案
  • DataWhale-零基础网络爬虫技术(一)
  • 将 CSV 转换为 Shp 数据
  • 基于单片机的PT100温度变送器设计
  • CKA考试知识点分享(16)---cri-dockerd
  • 拓扑推理:把邻接矩阵和节点特征形式数据集转换为可以训练CNN等序列模型的数据集
  • 树莓派智能小车基本移动实验指导书
  • k8s使用私有harbor镜像源
  • Activiti初识
  • C/C++的OpenCV 地砖识别
  • Linux文件权限管理核心要点总结
  • 精准测量 MySQL 主从复制延迟—pt-heartbeat工具工作原理
  • 从零搭建MySQL主从复制并集成Spring Boot实现读写分离
  • Python3安装MySQL-python踩坑实录:从报错到完美解决的实战指南
  • 模块拆解:一览家政维修小程序的“功能蓝图”
  • Blender——建构、粒子、灯光、动画
  • 1.1 Linux 编译FFmpeg 4.4.1
  • import引入api报select.default is not a function异常解析