Improving Deep Neural Network with Multiple Parametric Exponential Linear Units(MPELU译文)

原文链接:http://xueshu.baidu.com/s?wd=paperuri%3A%2869c0ed187135ff3c1ee7da242d29c834%29&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3A%2F%2Farxiv.org%2Fpdf%2F1606.00305&ie=utf-8&sc_us=15963689512684278098

用多参数指数线性单位改进深层神经网络

摘要:激活功能对于最近的深层神经网络成功至关重要。在本文中,我们首先提出了一种新的激活函数,多参数指数线性单位(MPELU),旨在推广和统一整流和指数线性单位。作为广义形式,MPELU具有参数整流线性单元(PReLU)和指数线性单元(ELU)的优点,从而导致更好的分类性能和收敛性。此外,权重初始化对于训练非常深的网络非常重要。现有的方法为使用整流线性单位但不是指数线性单位的网络奠定了坚实的基础。本文补充了当前的理论,并将其扩展到更广泛的范围。具体来说,我们提出了一种初始化方式,使用指数线性单位训练非常深的网络。实验表明,提出的初始化不仅有助于训练过程,而且导致更好的泛化性能。最后,利用提出的激活函数和初始化,我们提出了一个深入的MPELU残留架构,可以在CIFAR-10/100数据集上实现最先进的性能。代码可从https://github.com/Coldmooon/Code-for-MPELU获得。

1 介绍

        在过去几年中,计算机视觉的景观已经从工程特征体系结构到端到端特征学习架构,深层神经网络,以及许多最先进的技术发展, 经典任务如对象检测[1],语义分割[2]和图像检索[3]。这样的革命性变化主要来自于数据集,高性能硬件,新的有效模型和正则化技术等几个关键要素。 在这项工作中,我们关注两个显着的元素,激活功能和相应的网络初始化。

       已知的激活功能之一是整流线性单元(ReLU)[4,5],对深层神经网络的发展产生了深远的影响。ReLU是一个分段线性函数,可将负输入保持为正输入,输出为零。由于这种形式,它可以减轻梯度消失的问题,允许对更深入的神经网络的监督训练。然而,它遇到一个潜在的缺点,一旦梯度达到零,单位永远不会激活。看到这一点,Maas等人[6]提出了Leaky ReLU(LReLU),其中激活函数的负部分被线性函数代替。他等[7]进一步将LReLU扩展到参数整流线性单元(PReLU),该单元可以学习整流器的参数,导致更高的分类精度,极小的过拟合风险。此外,Clevert等[8]提出了指数线性单元(ELU),导致更深入的学习和更好的泛化性能,而不是深层网络的整流单元系列。上述整流和指数线性单位通常由最近的深入学习架构[5,9,10,11]采用,以实现良好的性能。然而,两种类型的激活函数之间存在间隙空间。 对于负的部分,ReLU或PReLU能够表示线性函数族,而不是非线性函数族,而ELU能够表示非线性函数族,而不是线性函数族。表示差距在某种程度上破坏了使用特定激活功能的那些架构的代表性能力。此外,当与批次归一化[12]一起使用时,ELU处于潜在的缺点。 Clevert等 [8]表明使用ELU的批次归一化可能会损害分类准确性,这也在我们的实验中得到验证。

       这项工作主要是由PReLU和ELU主导。 首先,我们提出一个新的多参数指数线性单元(MPELU),即ELU的泛化,以弥合差距。 特别地,将额外的可学习参数β引入到ELU的输入中以控制负部分的形状。 通过随机梯度下降(SGD)优化β ,MPELU能够自适应地在整流和指数线性单位之间切换。 其次,由PReLU推动,我们使ELU的超参数α可以进一步提高其代表能力并调整功能形状。 这种设计使MPELU比其前身ReLU,PReLU和ELU更灵活,可以被视为MPELU的特殊情况。 因此,通过学习αβ,负部分的线性和非线性空间可以在单个激活功能模块中覆盖,而其特殊的现有情况则不具有此属性。

      将学习参数引入ELU可能带来额外的好处。这是受到批量归一化不能改善ELU网络但可以改善ReLU和PReLU网络的观察的灵感。为了看到这一点,MPELU可以被固有地分解成PReLU和可学习的ELU的组合:

      其中x是激活函数的输入,表示具有可学习参数的ELU [8]。将批处理标准化应用于输入:

        我们可以看到,批量归一化的输出在ELU之前流入PReLU,这不仅可以导致分类性能的提高,而且可以减轻与ELU合作的潜在问题。 方程式(2)表明,MPELU还能够同时分享PReLU和ELU的优点,例如,与ReLU和PReLU相比,ELU的优越学习行为,如[8]所述。 我们在CIFAR-10和ImageNet 2012上的实验结果表明,通过引入可学习的参数,MPELU网络提供比对应的其他激活函数网络更好的分类性能和收敛性。

        由于引入额外的参数,过度拟合可能是一个问题。为了解决这个问题,我们采用与PReLU相同的策略来减少过度投资风险。对于每个MPELU层,αβ被初始化为通道共享版本或通道版本。因此,整个网络的参数增量最多是通道总数的两倍,与权重数相比,该参数可以忽略不计。

尽管最近提出了许多激活功能,例如ELU [8],但很少有作品确定使用它们的网络的权重初始化。不正确的初始化往往阻碍了非常深的网络的学习[9]。Glorot等人[13]提出了一种初始化方案,但只考虑了线性激活功能。他等[7]导出了考虑整流器线性单位(例如,ReLU)但不允许指数线性单位(例如,ELU)的初始化方法。即使Clevert等[8]将其应用于使用ELU的网络,这缺乏理论分析。此外,这些作品都不适用于非凸激活功能。观察这一点,本文提出了权重初始化的策略,使得能够使用包括ELU和MPELU在内的指数线性单元训练网络,从而将当前理论扩展到更广泛的范围。特别地,由于MPELU是非凸的,所以提出的初始化也适用于非凸激活函数。

        这项工作的主要贡献是:

1.一种新的激活函数MPELU,涵盖整流和指数线性单元的解空间。

2.权重初始化技术,允许使用ELU和MPELU训练极深的网络。

3.使用MPELU的ResNet简单架构,在CIFAR [14]数据集上获得最先进的结果,具有与原始版本相当的时间/内存复杂性和参数[11,15]。

       本文的其余部分安排如下。Sec.2回顾相关工作。 在第3节中,我们提出了我们的激活函数和初始化方法。实验和分析在第4节给出,以显示其有效性。 利用所提出的方法,第5节提出了一个深入的MPELU残留架构,可以在CIFAR-10/100上提供最先进的性能。最后,第6节总结。为了保持文件的合理长度,我们的实验的实施细节在附录中给出。

2 相关工作

       本文主要关注激活函数和深层神经网络的权重初始化。 所以我们来回顾两个方面的相关工作。注意,训练非常深的网络也可以通过开发诸如引入[16,11]中的跳过连接的新架构来实现,但这超出了本文的范围。

激活函数

       即使激活功能是早期发明,直到最近才被正式定义[17]。激活函数允许深层神经网络学习复杂的非线性变换,这对建模的力量至关重要。 从特征的角度来看,激活函数的输出可以被用作高级语义表示(也可以通过子空间学习获得,例如[18]),它们比低级别的方差更加鲁棒,这有利于识别任务。

       最近的工作是整流线性单元(ReLU)[4,5],这是深层神经网络突破的关键之一。 ReLU保持正输入不变,为负输入输出零,因此可以避免梯度消失的问题,使得能够训练更深层次的监督神经网络,而S形的非线性不能。 LReLU [6]提出将负输入乘以斜率因子,旨在避免ReLU中的零梯度。根据[6],LReLU提供与ReLU相当的性能,并且对斜率的值敏感。他等[7]发现成本函数相对于斜率因子是可以区分的,因此提出通过SGD优化斜率。该参数整流线性单元称为PReLU。实验表明,PReLU可以提高卷积神经网络的性能,而且具有很小的过拟合风险。他们还证明,PReLU具有将FIM的对角线块逼近零的能力,这样可以实现比ReLU更快的收敛。上述激活函数都不能从凸函数的本质学习非凸函数。为了解决这个问题,Jin等 [19]提出了一种S形整流线性激活单元(SReLU)来学习凸和非凸函数,这受到了Webner-Fechner定律和史蒂文生定律的启发。除了上述矫正线性单位,Clevert等 [8]提出了一种新颖的激活函数形式,指数线性单位(ELU)。ELU类似于负输入的S形,并且与正输入的ReLU具有相同的形式。已经证明,ELU能够使梯度更接近于单位自然梯度,这加快了学习速度并导致更高的性能。当与批处理标准化[12]一起使用时,ELU倾向于暴露出意外的降级问题。在这种情况下,ELU对泛化能力和分类性能的影响可以忽略不计。除了上述确定性激活函数之外,还有一个随机版本。最近,徐等人 [20]提出了一种随机泄漏整流线性单元RReLU。RReLU也有负值,有助于避免零梯度。 不同的是,RReLU的斜率不是固定的或可学习的,而是随机的。 通过这一策略,RReLU能够在一定程度上降低过度服务风险。 但是,Xu等人只能验证RReLU在小数据集上,如CIFAR-10/100。 RReLU如何对大数据集(如ImageNet)执行的操作仍然需要进行探索。

初始化

       参数初始化对于深层网络和学习率较高的情况尤为重要。如果未正确初始化,可能很难通过SGD收敛。许多努力集中在这个问题上。Hinton等人[21]引入了一种学习算法,它利用层次无监督的预训练来初始化所有层。在此之前,没有合适的训练深度完全连接架构的算法。不久之后,Bengio等[22]研究了预训练策略,并进行了一系列实验验证。 Erhan等人[23]进一步进行了许多实验,以确认和澄清程序,表明它可以在更好的吸引盆地中初始化参数空间的起点,而不是随机选择起始参数。在深度学习的发展过程中,另一个重要的工作是ReLU [4],解决了梯度消失的问题。使用ReLU,深层网络能够从高斯分布中随机收敛。 Krizhevsky等人[5]将ReLU应用于随机初始化的监督卷积神经网络,并赢得了2012年ILSVRC挑战。因此,越来越多更深的网络被提出,导致计算机视觉的一系列改进。然而,Simonyan等人[9]表明,一旦层数达到某些值(例如11层),深层网络仍然面临优化问题。[13,10,7,16]中也提到了这种现象。 Glorot等人[13]提出了一种根据层的大小初始化权重的方法。这种策略在线性激活功能的假设下保持有效,这在许多情况下很好地工作,但是对于整流的线性单元(例如,ReLU和PReLU)不起作用。他等[7]将这种方法扩展到整流线性单元的情况,并提出了一种新的初始化策略,通常是MSRA填充,为训练非常深的网络提供了很大的帮助。然而,对于指数线性单位,目前没有适当的策略来初始化权重。观察这一点,我们将基于MPELU的零阶泰勒展开的指数线性单位(例如,ELU和MPELU)的深度网络的新的初始化概括为MSRA填充。

3、激活函数和权重初始化的提出

        本节首先介绍多参数指数线性单位(MPELU),然后使用指数线性单位导出网络的权重初始化。

3.1、多参数指数线性单元

       PRELU和ELU对其负面部分具有有限但互补的代表性力量。 这项工作提出了统一现有ReLU,LReLU,PReLU和ELU的一般激活功能。

图1:激活功能的图形描述。(a)激活功能的形状。PReLU中的参数a被初始化为0.25。ELU的超参数α为1.MPELU中的α和β分别用3和1初始化。(b)其他激活功能是MPELU的特殊情况。当α = 0,MPELU减少到ReLU。如果α = 25.6302且β= 0.01,则MPELU近似于PReLU;当α,β= 1时,MPELU变为ELU。

正向传播

       正式地,MPELU的定义是:

       这里,β被约束为大于零,i是对应于特征图 cth(c={1…M})中α和β的输入y的索引。按照PReLU,αcβc可以是频道方式(M =特征图的数量)或信道共享(M= 1)可学习参数,其控制MPELU饱和的值和MPELU饱和的值。 图1(a)示出了四种激活功能的形状。

       通过调整 ,MPELU可以在整流和指数线性单位之间切换。 具体来说,如果βc设定为小数,例如0.01,则MPELU的负部分近似于线性函数。 在这种情况下,MPELU成为参数整流线性单元(PReLU)。 另一方面,如果βc取大值,例如1.0,则MPELU的负部分是非线性函数,使MPELU回到指数线性单位。

       介绍αc有助于进一步控制MPELU的形式,如图1(b)所示。 如果αcβc设置为1,则MPELU退化为ELU。 在这种情况下减小βc可让MPELU进入LReLU。 最后,当αc= 0时,MPELU完全等同于ReLU。

       从上述分析可以看出,MPELU的灵活形式使其涵盖了其特殊情况的解决方案,从而赋予了更强大的代表性。 我们将显示ResNet[11,15]只通过调整激活功能的使用,即从ReLU到MPELU来获得显着的改进。

       MPELU的另一个好处是快速学习。 方程(2)表明MPELU可能潜在地共享PReLU和ELU的属性。 因此,作为指数线性单位,MPELU表现出与ELU相同的学习行为。 读者参考[8]了解更多细节。

反向传播

       由于MPELU处处可微,因此使用MPELU的深度网络可以端到端进行培训。 我们使用链式法则来推导出αcβc的更新公式:

       注意,分别是激活函数中参数αcβc的梯度。当计算整个层的损耗函数的梯度时,αcβc的梯度应为:

       这里∑为在αcβc相对应的所有位置上求和。 在本文中,我们对所有实验采用多通道。 通过这种策略,整个网络的参数增量最多是通道总数的两倍,与权重数相比,可以忽略不计。在第5章中,我们阐述了所提出的MPELUResNet体系结构的模型大小相当于(甚至低于)ReLU架构。

       对于实际运行时间,如果我们仔细优化代码,MPELU大致可以与PReLU相当。 这将在第4.2节中进行分析。

       αβ具有不同的初始值值对分类精度的影响很小但不可忽略。 我们建议使用α = 1或0.25,β = 1作为初始值,他们都是两者的基础学习率的5倍。 此外,我们强调,在αβ上使用权重衰减(l2正则化)是很重要的,它与整流线性单元的情况相反,如PReLU[7]和SReLU[19]。

3.2建议对MPELU网络进行权重初始化

       以前的工作[21,22,13,7]为深层神经网络的初始化奠定了坚实的基础。 本文补充了当前的理论,并将其扩展到更广泛的范围。

简要回顾MSRA filler

       MSRAfiller包含两种初始化,正向传播情况和反向传播情况。 他等人[7]证明了这两种情况能够适当地缩小反向信号。因此,只探究正向传播情况就足够了。

对于第l卷积层,输出通道中的像素表示为:

       其中yl是随机变量,wl和xl是随机向量,彼此独立,bl被初始化为零。 目标是探讨yl-1的方差与yl 的方差之间的关系。

        其中kl是内核大小,cl是输入通道的数量。 这里,wl和xl都是随机变量。方程(11)假设wl和xl中的元素分别是独立的和相同分布的。通常,深度网络的权重用零均值初始化,方程(11)变为:

       接下来,我们需要找到之间的关系。 注意,在xl和yl之间存在激活功能,

       对于不同的激活函数f,我们可能导出不同的关系,从而导致不同的初始化方法。 具体来说,对于对称激活函数,Sigmoid非线性,Glorot等人[13]假设它们在初始化时是线性的,因此提出了Xavier方法。 对于整流线性单元,ReLU和PReLU,He等人[7]删除线性假设,并将Xavier方法扩展到MSRAfiller。 在下一节中,我们通过将MPELU的一阶泰勒展开为零并将结果剪切到其线性部分,进一步将MSRAfiller扩展为更一般的形式。

提议初始化

       本节主要依据[13,7]的推导。由于ELU是MPELU的一个特例,我们专注于MPELU。 从式(3)可以看出,很难得到之间的确切关系。相反,我们将其在零处泰勒展开。对于负面部分,MPELU可以表示为:

       然后,等式(14)的左侧近似于1阶的泰勒多项式。

       等式(15)仅对负部分引入线性近似。 我们把这个半线性假设为:

       其中,p(x)是概率密度函数。在[13,7]之后,如果wl-1具有零均值的对称分布的,则对于yl-1也是如此。然后得到,

       通过公式18和12,我们可以获得:

       通过这一点,很容易得出yl-1和yl之间的关系:

       在[13,7]之后,为了保持正向和反向信号的正确流动,我们预期等于,这导致:

        因此,对于使用MPELU的深层网络中的每一层,我们可以从高斯分布中初始化权重。

        其中i是层的索引。 方程(22)适用于使用整流或指数线性单位的深度网络。注意,当α=1β=1时,公式(22)成为ELU网络的初始化。 当α=0时,等式(22)对应于ReLU网络的初始化。 此外,当α=0.25β=1时,等式(22)可以用于初始化PReLU网络。 从这个角度来说,MSRAfiller是本文所提出初始化方法的一个特例。

与Xavier,MRSA和SUV进行比较。

       Xavier方法设计为对具有线性假设的对称激活函数进行初始化,MSRAfiller仅适用于整流线性单元(ReLU和PReLU),而所提出的方法解决了整流和指数线性单元的初始化。 最近,Mishkin等人[24]提出了数据驱动的LSUV初始化,从而避免了解决之间的关系,但方程(22)是ELU和MPELU的分析解决方案,因此运行速度比LSUV快。

表1:CIFAR-10上的分类测试错误率(%)。并且在MPELU中初始化为1或0.25,且它们由SGD更新而没有权重衰减。 如[16,11]中,每个网络的五次运行报告最佳(平均值±标准)结果

4 实验

       本节将探讨MPELU在许多架构上的使用。 在Sec.4.1中,我们用CIFAR-10在NIN[25]上的开始试验,显示了将可学习的参数引入到ELU中的好处。Sec.4.2进一步证实了在更深入的网络和更大的数据集如ImageNet2012具有这一优势。最后4.3节,使用ImageNet上的非常深的网络来验证提出的初始化,显示了在训练非常深的网络上ELU/ MPELU的能力。 在Sec.4.1和Sec.4.3中,我们还提供了收敛分析,表明MPELU,像ELU一样具有优于ReLU和PRELU的收敛性。

4.1 使用NIN在CIFAR-10上的实验

       本节在CIFAR-10数据集上进行了具有不同激活功能的NIN实验。 目的是调查将学习参数引入ELU的好处。

该体系结构具有9个卷积层,包括6个具有1×1内核大小和不具有完全连接(FC)层的卷积层,易于训练,综合评估可学习参数的有效性。实施细则见附录。

       为了公平比较,我们从头开始,使用ReLU,PReLU,ELU和MPELU进行网络训练。 表1显示,MPELU始终优于ELU(例如,9.06%vs.9.39%没有数据增加的测试错误率,7.30%与7.77%的有数据增加的测试错误率)。 这种对ELU的改进完全来自于αβ,验证了可学习参数的好处。

       在表1和图2中可以看到一些有趣的现象。首先,表1显示,MPELU(α=β= 0.25)表现为PReLU(使用增强数据时的平均测试误差为微不足道的0.03%)。其次,图2(a)(b)表明其学习曲线更接近于ELU,表明与整流线性单位相比,具有潜在的优越学习行为,如[8]所述。请注意,所有模型在这个小数据集上学到很快,在25k次迭代后达到相同的测试误差率(15%),这使得很难比较学习速度。为了处理这个问题,我们采用类似的评估标准[8],即达到15%测试错误率的迭代次数。图2(b)表明,MPELU更早开始减少误差(也是损失)在9k次迭代后达到15%的误差,而ReLU和PReLU分别需要25k和15k次迭代才能达到相同的错误率。上述更好的性能来自于PReLU和ELU的组合优势,如方程(1)所示。


图2。CIFAR-10收敛的比较。所有这些模型在这个小数据集上学得很快,所以我们采用类似于[8]的评估方法,根据该方法测量用于达到15%测试误差的迭代次数。(a)表示MPELU可以较早地减少损失。(b)表明MPELU在9k次迭代后达到15%的错误率,而ReLU和PReLU需要25k和15k的迭代才能达到相同的错误率

       同样值得注意的是,MPELU具有与PReLU相当的性能但具有有更多的参数。这不是由于过度拟合造成的,因为ELU执行比PReLU和MPELU差得多。其根本原因尚不清楚,将来会进行研究。尽管MPELU在这个较浅的架构中比PReLU的效率稍差一点,我们将展示MPELU在更深层次的体系结构中胜过PReLU。

4.2 在ImageNet上的实验

       本节将对MPELU在ImageNet2012分类任务中的效果进行评估。ImageNet2012包含128万个训练样本,50k个验证样本和100k个测试样本,他们分别属于1000类。 这使得我们能够利用更深层次的网络,而且过拟合风险很小。因此,我们建立了从模型E(来自[26])修改的15层网络。本节中评估的模型是对训练集进行训练,并在验证集上进行测试。

网络结构。

       基于模型E,我们再添加一个卷积层,在激活函数之前插入批量归一化[12],并删除掉dropout[27]层。以下[26,5,28],通过最大池化层将网络分为三个阶段。第一阶段只包含一个卷积核大小为7×7和64个滤波器的卷积层。第二阶段由四个卷积层组成,卷积核核大小为2×2,128个滤波器。我们相应地设置步幅和垫(pad),以保持36×36像素的特征图尺寸。第三阶段包括七个卷积层,卷积核大小为2×2,256个滤波器。在第三阶段,特征图尺寸减小到18×18像素。下一层是spp[28],其后是两个4096-dFC层,一个1000-dFC层和一个softmax。网络通过三种方法进行初始化,这三种方法是零均值和0.01标准差的高斯分布,MSRAfiller方法[7]和3.2节提出的初始化。偏置项通常用0进行初始化。MPELU中的αβ用不同的值进行初始化,并由SGD以重量衰减进行更新。其他实施细则见附录。

      为了公平比较,参与者在相同的初始值α下进行评估,Tab.2列出了结果。为了清楚起见,性能优于其他的结果以粗体显示,整体最佳结果标记为蓝色。

表2。扩充的ImageNet2012验证集的Top-1错误率(单视图测试)。比较是在α的初始值相同的情况下。在所有情况下,MPELU中的β初始化为1。MPELU中的αβ被SGD有或无权重衰减方式更新。MPELU一贯优于同行,获得最佳效果


高斯初始化

       与ELU相比,所有的MPELU层都用α=β = 1进行初始化。我们可以看到,MPELU网络在top-1错误率的性能优于ELU网络0.83%。如果使用权重衰减学习率,则其显著优于ELU网络2.32%。由于它们之间的唯一区别在于激活函数,因此,ELU的这种改进确实证明了可学习参数αβ的优点。

       为了进一步检查MPELU,我们还将其与PReLU进行了比较。 在这种情况下,α在MPELU中用0.25初始化。表2显示,MPELU网络实现top-1错误率为40.94%,差于PReLU网络提供的39.48%。然而,使用权重衰减后大大提高了MPELU网络的性能,提高了3.13%,将top-1错误率降至37.81%,优过PReLU网络1.72%。

其他初始化方法

       本文还使用其他初始化方法进行实验(见表2)。实验结果符合高斯初始化情况。MPELU超越所有对手。所有实验中的最佳top-1错误率是由MPELU网络实现的37.33%,显着低于PRELU和ELU实现的结果。有趣的是,应用本文所提出的初始化方法的MPELU网络效果始终优于利用高斯方法初始化的MPELU网络,表明我们所提出的初始化可以导致更好的泛化能力,这也在Sec.4.3中得到验证。

       请注意,MPELU仅对ReLU提供少许的改进,并且在所有三种情况下,使用权重衰减的MPELU结果趋向于减少top-1测试误差。但是,这并不是由于过度拟合引起的,而是由于添加更多的层(更多的参数)到15层网络导致测试错误降低,如第4.3节所示。一个可能的原因是使用权重衰减往往会推动αβ趋于零,导致更小规模的激活或稀疏表示,如ReLU,更有可能在高维空间中线性分离[29]。另一个解释可能来自稀疏特征选择[30]。

       为了提供经验解释,我们使用不同斜率的LReLU进行了四次额外的实验,并逐渐减少了激活的规模。所有五种模型(ReLU和LReLUA-D)具有相同数量的参数,从而消除过拟合的影响。其中唯一的区别是激活函数负部分的规模。表3显示了明显的趋势。 Top-1/top-5测试误差随着斜率减小而减小,这就解释了为什么使用权重衰减的MPELU会导致更好的结果,以及为什么ReLU比PReLU和ELU更好。然而,在第4.1节中没有观察到这种现象,这可能是由于小规模或稀疏性对于较浅的架构不太重要(ReLU在NIN上表现最差)。

表3。ImageNet验证集不同斜率之间的分类比较。 趋势是随着坡度的减小,表现也随之增加。

收敛比较

       由于批量归一化对网络收敛性有很大的影响,因此我们将激活函数的收敛性与Sec.4.3进行比较。

运行时间

       运行时间是指在训练期间执行具有输入数据批量大小为64的迭代的时间消耗。 基本上,MPELU的计算成本大于其对应的其他激活函数。但是,通过精心设计的实现(例如,更快的指数函数)可以很好地解决这个问题。在我们的Caffe[31]实现中,反向传播利用正向传播的输出,如等式(4)(6)(7)所示,这节省了大量的计算。此外,可以统一为每个传播循环计算参数和输入的梯度。因此,MPELU的实际运行时间可能只比PReLU略慢,如表4。

表4。基于Caffe实现的ReLU,PReLU,ELU和MPELU的运行时间(秒/迭代)。实验在NVIDIATitan X GPU上执行。下面的运行时间是600k次迭代的平均值。

4.3 初始化实验

       本部分对ImageNet2012进行实验。任务是检查所提出的初始化是否能够帮助使用指数线性单位的非常深的网络的收敛。为此,我们在Sec.4.2中向网络添加了额外的15个卷积层,从而形成一个30层网络,足以调查初始化的影响。请注意,网络类似于[7]中的30层ReLU网络,但与批处理大小,垫(pad)和功能图尺寸等方面有所不同。

       由于BN对深度网络的融合有很大的影响,所以考虑到这一点。根据文献[12],我们在使用BN时删除掉dropout层。最后,比较了四种方法:基础高斯初始化,所提出的初始化,BN +高斯初始化和BN +所提出的初始化。MPELU中的αβ用1进行初始化,SGD更新时没有权重衰减,其他设置与Sec.4.2相同。

表5。比较初始化。 报告了ImageNet2012验证集上的前1个测试错误(%)。具有高斯方法的30层ELU和MPELU网络完全停止学习。相反,所提出的方法使它们收敛,验证了等式(22)的有效性。 当使用BN时,所提出的方法仍然可以提高性能。值得注意的是,携带BN的30层MPELU网络达到了44.28%和42.96%,明显低于相对应的15层网络所实现的39.53%和38.42%,表明退化问题出现[11]。

表6。LSUV与我们的初始化方法通过15层网络做比较。 虽然LSUV的改善是轻微的,但我们的初始化方法仍然更优。

与高斯方法做比较

       表5显示,高斯初始化不能训练30层ELU/MPELU网络,而我们的方法可以帮助学习,这证明了方程(22)的有效性。此外,30层ELU / MPELU网络实现的37.08%/ 36.49%的top-1测试错误率明显低于所对应的15层实现的测试错误率(与表2作比较),这意味着,所提出的方法确实解决了对于非常深的网络进行不当初始化所引起的梯度递减,从而使他们从深度的增加中获益。当采用BN时,与高斯初始化相比,所提出的方法同样可以减少误差,显示出其对泛化能力的益处。此外,MPELU网络总是比ELU网络更好,获得了最佳效果,达到36.49%的top-1测试错误率,表明了引入可学习参数的好处。上述结果表明,虽然方程(22)源自方程(14)的一阶泰勒近似,但它在实践中确实工作得很好。

与LSUV做比较

       Mishkin等人[24] 使用ReLU在22层GoogLeNet [10]中验证了LSUV。为了在具有指数线性单位的较深的网络中检查LSUV,我们构建另一个52层ELU网络,并用LSUV初始化了对应的30层和52层ELU网络。 没有BN,LSUV使两个ELU网络仅在几次迭代中爆炸,而我们的方法可以使它们收敛。还通过Sec.4.2中所对应的15层网络进行了更多的实验,结果见表6。提出的初始化导致了top-1测试错误率的一致降低。另外,公式(22)是一个解析解,而LSUV是一种数据驱动方法,这意味着所提出的方法运行速度比LSUV快。

退化分析

       在表5中应该注意,虽然没有BN的30层网络获得了最好的结果,但是BN的30层网络比15层的网络要差得多。为了解释这一点,我们分析他们的学习行为。

图3。ImageNet上15/30层MPELU网络的学习曲线。(a)训练损失:所有30层网络趋于趋同。(b)top-1训练误差(%)。(c)top-1测试错误(%)。具有BN的30层网络具有比15层网络更高的训练/测试误差,提示退化问题的出现[11]。不知何故,令人惊讶的是,如果BN被移除,则问题被消除(见红色虚线)。

       首先,图3(a)显示了训练结束时所有30层网络的训练损失。正如我们所看到的那样,携带BN与未携带BN的网络的训练损失相当,表明他们都很好。 因此,精度的降低最不可能由消失的梯度引起。其次,图3(b)(c)显示了top-1训练/测试错误率。显然,具有BN的30层网络具有比对应的15层网络更高的训练/测试误差,表明如[11]所述的退化问题的出现。有趣的是,没有BN的30层网络没有这个问题,它可以享受增加深度的好处。请注意,这些网络的唯一区别是是否使用BN。因此,BN可能是造成退化问题的根本因素。

收敛的比较

       由于更深层次的网络难以训练,使用无BN的30层网络检验激活功能的收敛性就比较好。为此,从FAN IN,FAN OUT和AVERAGE模式的相应方法构建和初始化了四个这样的网络。实验结果表明,ReLU网络在所有三种模式下都不能收敛。 PRELU网络仅在FAN OUT模式下收敛。相反,ELU / MPELU网络能够以所有三种模式收敛。这些结果可能是由于ELU / MPELU的左饱和引入的输入的稳定性。为了验证这一点,计算统计(均值和方差)。表7显示了ReLU网络大致保留了输入的方差,这导致了较高层的非常大的激活和softmax的溢出,如[7]中所述。MPELU网络不受此影响,因为它具有左饱和至小负值,从而在正向传播期间逐渐减小方差。

表7。conv {1,7,14,20,27}的激活统计(平均值和方差)。 如[7]所述,ReLU网络可以大致保留其方差,导致输出量大,从而发散。 作为比较,MPELU网络可以逐渐降低幅度,从而避免溢出。

4.4 所提出初始化的残差分析

       公式(15)的左侧近似于一阶泰勒展开。本节估计残差项 ,

       为此,将考虑有无BN两种情况。

有BN

       BN通常在MPELU之前采用。因此,假设MPELU的输入y在初始化阶段具有零均值的高斯分布是合理的。根据概率论,超过99.73%的输入在[  ]的范围内,在这个范围内只有一半的输入贡献于残差。我们考虑采取的三个输入,其相应的残差是:

       公式(24),(25)和(26)表明,在初始化时,超过99.865%,97.725%和84.135%(y分别在[  ],[ ] 和[ ]范围的概率)的输入所具有的残差分别小于。这里,y具有单位差异。 如果αβ被初始化为1,超过84.135%的输入残差将小于0.5。此外,考虑一些残差小于的负输入。对于

       如果αβ均被初始化为1,我们将获得:

       这意味着将有大约55.57%的输入残差小于0.01。然而这残差是可以忽略的,但公式(22)在实践中仍然很好。该分析结论可以由Clevert等人进行侧面验证。他们观察到ELU与BN一起使用时表现不佳。ELU(α = 1)的行为更像是线性函数LReLU(α= 1),对于整个训练周期,大多数残差很小。见表3,LReLU(D)。

无BN

       在这种情况下,很难分析估计残差。幸运的是,可以从卷积层的输出容易地计算残差。为此,采用了Sec.4.3中没有BN的30层MPELU网络。通过公式(27),我们考虑残差分别小于{0.01,0.5,2,2.5}或等价于{y| y> -0.1414},{y | y> -1},{y | y> -2}和{y | y> -3}的输入。

       为了简单起见,统计数据每7层计算一次。 如表8所示,较深的层对于公式(15)具有更好的近似。此外,一旦深度达到中值,例如conv14,大多数单位将具有小于0.5的残差。 另外,conv14的统计量非常接近标准正态分布,这表明它起到BN的作用,确保在初始化时梯度可以适当地传播到较低层。我们认为在初始化过程中残差是可以接受的。Sec.4.3已经证明了提出的初始化的有效性。

表8。剩余单位的直方图。残差范围分别为(0,0.01),(0,0.5),(0,2)和(0,4.5)。Conv {1,7,14,20,27}从27个卷积层中挑选出来。对于每个仓(每排),层越深,输入单位有效的百分比越高。一旦深度达到14,大多数单位的残差为0.5或更小。 有趣的是,中间层的输出conv14约为标准正态分布。

5 深度MPELU残差网络

       Sec.4显示了MPELU和所提出的初始化可以为普通网络带来好处。本节给出了一个深度MPELU ResNet,以表明所提出的方法特别适用于ResNet架构[11],并为CIFAR-10/100数据集提供了最先进的性能。

5.1 MPELU和批量归一化

       本节表明,MPELU与ELU相反,它可以与BN一起使用。Clevert等 [8]发现BN可以改善ReLU网络,但不能改善(甚至有害)ELU网络。观察这一点,Shah等 [32]提出了在使用ELU构建ResNet时去除大多数BN层。尽管删除BN可以降低它们之间的屏障,但是它倾向于减少所需的正则化属性,这可能导致对泛化能力的意想不到的负面影响。我们认为 适当的缓解问题的方法是引入可学习的参数αβ

       为了验证这个,我们只需在ResNet中用ELU和MPELU替换ReLU,保持任何其他设置不变。并且在MPELU(A)中用1进行初始化,并用SGD进行重量衰减更新。 表9显示了ELUResNet比原来的ResNet性能更差,潜在地证明BN不会改进ELUResNets。相反,MPELUResNets(A)一致地减少了不同深度的测试错误。

表9。CIFAR-10上的分类错误。 ReLU是用ELU或MPELU替代。报告超过5次运行的平均测试误差,除了我们对110层深度显示最佳(平均值±标准)。在MPELU ResNet(A)中,αβ用1进行初始化,并用SGD进行权重衰减更新。对于(B),加入后我们特别注意MPELU,分别用98和0.01初始化αβ

       对ELU的改进的解释说明或许可以从对MPELU中可学习参数的来源做出解释的等式(2)中寻找。方程(2)表明BN的输出直接流入其PReLU子模块,因此避免了直接流入ELU子模块。另一个可能的原因来自ResNet的原理,一个假设是优化残差映射比优化原始映射更容易。ResNet架构来源于身份映射最优假设的极端情况。与ReLU和ELU相比,MPELU涵盖更大的解决方案空间,这使得求解器有更多的机会近似身份映射,从而提高性能。为了验证这一点,我们特别注意加入后的MPELU层,其中αβ分别用98和0.01进行初始化。通过这样做,添加后的快捷连接和MPELU层结合到身份映射。遵循[11]中的哲学,如果身份映射是最佳的,那么通过快捷连接加上这样的MPELU层比加上ReLU或ELU层更容易学习身份映射,因为ReLU或ELU都不包括身份映射。结果在MPELU ResNets(B)中给出。表9表明,MPELU ResNets(B)一贯优于同行,大大提高了可用参数引入的较大解决方案空间的优势。

5.2 网络架构

       他等[11,15]研究了深层残留网络激活函数的用法。ResNet和Pre-ResNet架构对ReLU进行了高度优化。 如5.1节所示,通过简单地用MPELU替换ReLU可以提高性能。我们预计将从调整后的部署中受益。因此,本节提出了残留架构的一个变体,MPELU ResNet包含两种类型的块,非瓶颈和瓶颈,如下所述。

MPELU非瓶颈残差块

       这个块(图4(b))是ResNet[11](图4(a))中原始的非瓶颈残差块的简化,Sec.5.1的实验结果表明ResNet使用MPELU 在寻找更好解决办法时比使用ReLU或ELU能获得更多的机会。然而,在添加之后引入非线性单元(例如,MPELU)仍将影响优化。例如,如果一个身份映射是最佳的,那么在极端情况下,除了将剩余功能推到零外,还需要求解器通过一堆非线性单元拟合身份映射。灵感来自[15,33],身份映射是直接构建的,如图4(b)所示,通过在添加后移除MPELU而不是由求解器拟合。

图4。各种残留块。 (a)[11]中的非瓶颈块,(b)MPELU非瓶颈块,(c)[15]中的完全预激活瓶颈块,(d)MPELU完全预激活瓶颈块

MPELU瓶颈残差块

       通过用MPELU代替ReLU(图4(c))可以简单地获得一个纯净的MPELU瓶颈块(图4(d))。这种拉动预激活结构对于ReLU是高度优化的。

       本节介绍了针对MPELU优化的无预激活瓶颈块(见图5(d))。由于预激活部分被去除,所以该块的复杂度和参数数量可以大大降低。因此,整个网络的最终复杂性和参数数量与原来的相当。此外,我们在第一个卷积层之后采用BN(BN1表示)加上MPELU,以及在整个网络最后一个卷积元素后加上BN(由BNend表示)再加上一个MPELU。BN1和BNend对于无预激活瓶颈块是重要的。我们将以经验证明这一点。除了这种结构之外,还研究了其他替代方案(见图5)。

图5。残余功能的替代方案 (a)以BN结束的MPELU预激活块,(b)仅MPELU预激活块,(c)以BN结束的无预激活,(d)无预激活瓶颈,(e)无预激活没有BN。

5.3 在CIFAR上的结果

       本节首先评估所提出的MPELUResNet的变体和替代方案,然后将其与最先进的架构进行比较。实施细则见附录。

分类结果

       对于较浅的架构,考虑MPELUResNets(非瓶)。表10显示,MPELU ResNets(非瓶子)实现了一致的改进,参数增加可以忽略不计。例如,110层MPELU ResNet将平均测试错误率降低到5.47%,比原来的ResNet-110低1.14%。请注意,这种改进仅通过简单的策略获得,即改变激活功能的使用,从MPELU中获益。

       当网络越来越深(164层)时,我们将重点放在瓶颈架构上,以减少时间/内存复杂度,如[11]所述。图4(d)显示的是MPELU完全预激活瓶颈结构,从表11中可以看出该结构平均测试错误率从原始Pre-ResNet(如图4(c))的5.46%到5.32%的边际下降。这通过简单地用MPELU替换ReLU来完成。对于以BN结束的MPELU预激活块(图5(a)),网络未能在初始学习率0.1下收敛。根据文章[11],我们用一个时期的学习率0.01预热训练,然后切换回0.1。有了这个政策,网络能够收敛,但是此解决方案比完整的预先激活更糟糕。基于此观察,我们保留只MPELU预激活部分,并在去除BN(参见图5(b))。有趣的是,网络可以在不加热的情况下收敛,导致平均测试误差为5.49%,这也比完全预先激活架构的要差。通过这些结果,在本文的其余部分中没有考虑唯一利用MPELU预激活体系结构(包括是否以BN结束)。

表10。CIFAR-10上非瓶颈架构的测试错误率(%)。我们尝试不同的学习率和权重衰减系数,并选择获得最佳性能的产品。我们重新培训了200个时期的原始ResNet ,并将结果用*标记。

表11。瓶颈架构在CIFAR-10上的测试错误率(%)。αβ并分别用0.25和1初始化,并由权重衰减SGD更新。

       我们专注于MPELUnopre架构(图5(d))及其变体。令人惊讶的是,如表11所示,简单地删除预激活会带来较低的测试错误率,具有较少的参数和复杂性,这表明深层残留架构有潜力享受MPELU的好处。此外,还通过向MPELU 无预激活架构添加更多的BN层和移除BN层来检查性能。对于前一种情况(添加BN)(图5(c)),如表11所示,在架构末端加入另外一个BN使网络在几步之内发散。看到这一点,我们尝试了暖身(学习率先0.01后0.1),发现网络融合得很好。将这种现象与图5(a)和ResNet-110 [11]的结果观察结合起来,我们怀疑加入的BN会对梯度信号产生负面影响,所以我们必须降低初始学习率来预热训练。对于后一种情况(减少BN),从残余函数中去除所有的BN(参见图5(e))也导致发散。再有,当BN1和BNend从MPELU 无预激活中删除时,发生相同的结果。然而,如果保持BNend,网络仍然收敛但执行结果稍差(5.29%,平均测试误差为5.04%)。这些结果表明BN1和BNend对于无预激活架构很重要。

       考虑到时间/内存复杂性和模型大小,将MPELU无预选作为本文提出的瓶颈架构,并与其他最先进的方法进行比较。

与先进方法的比较

       为了与最先进的方法进行比较,我们采用了文章[34]中(详见附录)的积极的培训策略,用符号†表示。

       测试错误率在表12中给出。很容易看出,通过培训策略†,特别是CIFAR-100数据集(21.88%对23.29%),MPELU 无预激活 ResNet-164(α= 0.25)的平均测试误差大大降低。这可能是因为CIFAR-100是CIFAR-10的挑战者。训练具有较大学习率的更多时期将有助于该模型学习潜在的难以捉摸的概念。有趣的是,改变MPELU中α的初始值为1,可以进一步提高CIFAR-100(21.78%)的测试误差,但不能提高CIFAR-10(4.67%)的测试误差。为了比较,我们还对1001层MPELU 无预激活 ResNet进行了培训。表12显示,即使引入了更多的参数,MPELU ResNet架构也不会受到过度拟合,并且仍然享受增加的参数和深度的性能增益。提出的MPELU 无预激活 ResNet-1001的最佳结果是CIFAR-10上的3.57%测试误差和CIFAR-100上的18.81%的测试误差,远远低于原始Pre-ResNet [15](预激活残差网络)。

表12。与CIFAR-10/100上最先进的方法进行比较。MPELU初始化为 α= 0.25或1和β = 1,由权重衰减SGD更新。†表示超参数设置如下[34](见附录)。我们的结果是基于5次运行中最好的平均值±标准差。

6 结论

       激活功能是深层神经网络的关键组成部分。最近有人提出了一些关于这个问题的工作。本文将现有工作推广到新的多参数指数线性单位(MPELU)。通过引入可学习的参数,MPELU可以成为整流或指数线性单位,并结合其优点。通过不同深度的网络(从9层NIN [25]到1001层ResNet [11])进行综合实验,以检查MPELU的性能。实验结果表明,MPELU可以为深层网络的分类性能和融合带来好处。此外,MPELU与ELU不同,它可以使用批量归一化。权重初始化也是深层神经网络的重要因素。本文提出了可以使用在指数线性单位网络的初始化,这补充了该领域的当前理论。据我们所知,这是为使用指数线性单位的网络提供分析解决方案的第一种方法。实验结果表明,提出的初始化不仅使得能够使用指数线性单位训练非常深的网络,而且导致更好的泛化性能。此外,这些实验表明,批量归一化可能是导致降解问题的因素之一。最后,本文研究了MPELU与ResNet的用法,并提出了一个深度的MPELU剩余网络,在CIFAR-10/100数据集上获得了最先进的精度。

致谢

        我们要感谢NVIDIA公司捐赠Titan X GPU并支持这项研究。这项工作得到了中国国家自然科学基金(资助项目编号NSFC-61402046,NSFC-61471067,NSFC 81671651),北京邮电大学基金(2013XD-04,2015XD-02),国家重大科技专项基金(拨款号:2014ZX03002002-004),和北京市安全生产监督重点实验室基金的支持。

附录:实施细则

NIN在CIFAR-10(4.1节)

       在培训期间,所有模型都使用SGD进行培训,批量大小为128,重复120k次(约307个时期)。学习率初始设置为0.1,然后在100k次迭代后降低10倍。权重衰减和动量分别为0.0001和0.9。权重由具有0.01标准偏差的零均值高斯分布初始化。MPELU中的αβ被初始化为0.25和1,并且由SGD更新而没有重量衰减。在测试期间,我们采用单视图测试。以下[40,25,16],数据采用全局对比度归一化和ZCA增白进行预处理。当使用数据增加时,从预处理的图像中随机裁剪28×28个补丁,然后以50%的概率翻转。

ImageNet上的15层网络(第4.2节)

这些模型由SGD训练,小批量64次,750k次迭代(37.5个时期)。学习率最初为0.01,然后在100k和600k次迭代中除以10。重量衰减和动量分别为0.0005和0.9。所有图像都缩放到256×256像素。在训练期间,从原始图像或其翻转版本随机采样224×224子图像。没有使用进一步的数据增加。在测试期间,我们采用单视图测试。

MPELU残差网络在CIFAR-10/100实验(第5.3节)

实现细节主要遵循[11]和fb.resnet.torch [33]。 具体来说,这些模型由SGD训练,批量大小为128,分为200个纪元(不加热)。 学习率初始设置为0.1,然后在81和122个时期减少10倍。 重量衰减设定为0.0001,动量为0.9。 MPELU初始化为 α= 0.25或1和 β= 1,由SGD更新,重量衰减。 所有的MPELU模型都由所提出的方法(第3.2节)进行初始化。 为了比较,我们遵循由fb.resnet.torch [33]实现的标准数据扩充:每个图像用4个像素填充,然后从它或其水平翻转版本随机裁剪一个32×32的补丁。 当采用[34]的积极的训练策略†时,模型训练了300个时期。 两台Titan X GPU(每台32台)的批量大小为64。 学习率最初为0.1,然后在150和225个时期下降10倍。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 MATLAB 中,可以通过以下两种方式来查看 validation checks: 1.训练过程中的命令行输出:在训练过程中,train 函数会输出一些信息,包括当前 Epoch 的训练误差、验证误差等等。如果在连续的若干个 Epoch 上模型在验证集上的误差没有提升,train 函数会输出一条警告信息,提示模型可能出现了过拟合的问题。例如: ``` Warning: The network is not improving sufficiently fast. Training stopped. ``` 在这个例子中,train 函数输出了一条警告信息,提示模型在验证集上的性能没有提升,因此训练停止。 2.训练结束后的性能指标:在训练结束后,可以通过调用神经网络的 perform 函数来获取模型在训练集和验证集上的性能指标,例如: ``` train_perf = perform(net, train_output, train_target); val_perf = perform(net, val_output, val_target); ``` 在这个例子中,我们分别计算了模型在训练集和验证集上的性能指标,train_output 和 train_target 是训练集的输出和目标值,val_output 和 val_target 是验证集的输出和目标值。通过比较训练集和验证集上的性能指标,可以初步判断模型是否出现了过拟合的问题。 需要注意的是,验证检查并不是一种可视化的操作,无法直接查看验证集上的性能和误差曲线等等。如果需要更详细的可视化分析,可以使用 MATLAB 的 plotroc、plotconfusion 等函数,或者使用其他可视化工具来分析模型的性能和误差曲线。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值