APP下载

多斜率自适应卷积神经网络激活函数*

2020-07-22刘波

空间控制技术与应用 2020年3期
关键词:集上像素点斜率

刘 海, 刘波,胡 瑜*

0 引 言

近年来卷积神经网络技术在诸多领域取得了突破性成果,例如计算机视觉和医学图像处理领域,卷积神经网络的物体分类和物体检测能力,甚至超越了人类水平.卷积神经网络主要由卷积层、池化层和激活层三部分构成,其中激活函数处于激活层中,是实现网络非线性表达能力的关键组件.激活函数作用于卷积层产生的特征图,得到相应的激活图,激活图中包含大量的像素点,不同的像素点处于不同的激活状态.因此设计适当的激活函数,为处于不同激活状态下的像素点提供适当的梯度响应,是提高卷积神经网络性能的重要方法.

按照是否能够通过学习训练提高激活函数性能进行划分,现有激活函数可分为:自适应激活函数和非自适应激活函数.自适应激活函数包含一定数量的可学习参数,能够从输入数据中学习出最恰当的参数,而非自适应激活函数只对卷积层产生的特征图进行激活变换,所有变换过程均是固定不变的.

激活函数的发展起始于非自适应激活函数.最初的Sigmoid激活函数[1]被广泛应用于各种卷积神经网络中.但随着网络深度的增加,Sigmoid激活函数容易造成梯度消失和梯度爆炸.ReLU激活函数[2]虽然能够缓解Sigmoid激活函数面临的梯度消失和梯度爆炸问题,提升了网络的收敛速度,然而ReLU激活函数在负值域中梯度为零,导致在网络中存在一定数量的失效神经单元,为此Leaky ReLU(LReLU)[3]、RReLU[4]、ELU[5]和Swish[6]等激活函数被相继提出,以增加负值域中的梯度响应.不同于上述的非自适应激活函数,文献[7]提出了梯度截断策略,一定程度上为不同激活程度的像素点提供了具有差异性的梯度响应.

相比于非自适应激活函数,自适应激活函数由于能够从输入数据中学习部分可变参数,因而对数据具有更好的适应性.具有代表性的自适应激活函数包括PReLU[8]和GReLU[9].其中GReLU为不同激活程度的像素点采取了差异性的梯度响应.

本文方法也是直接针对不同激活程度像素点的梯度响应这一问题,提出了多斜率自适应激活函数(Multi-Slope Adaptive Activation Function, MReLU).与现有激活函数相比,本文所提MReLU具有以下两大优势.第一:MReLU通过增加可学习参数,为处于不同激活程度的像素点提供自适应梯度响应函数.第二:多斜率自适应激活函数包含有限个跳跃间断点,为激活函数提供了更高的灵活度,使该激活函数能更好为处于不同激活程度的像素点提供恰当的梯度响应.

本文的结构如下:第一部分详细讨论激活图中像素点激活程度的分布情况,第二部分详细解释多斜率自适应激活函数并与已有激活函数进行分析对比,第三部分通过实验对比本文提出的激活函数与现有激活函数的在图像分类任务上的性能,并讨论不同配置对于该激活函数的影响,最后第四部分给出本文主要结论和进一步的研究方向.

1 激活分布

卷积神经网络主要由卷积层、池化层和激活层三部分构成,其中激活层是卷积神经网络实现非线性特征提取功能的主要组件.通过激活函数,激活层对卷积层的输出特征图进行非线性变换,得到对应的激活图.以Network in Network(NIN)[10]网络位于第三层的卷积层所采用的ReLU激活函数为例,当NIN网络对CIFAR-10[11]数据集进行分类时,第三层卷积层所输出的特征图经由ReLU激活函数后得到对应的激活图,如图1所示.图1中的左图是第三层卷积层所输出的特征图,右图是通过ReLU激活函数得到的激活图.各个小图右侧的图例标识出了图中颜色和数值的对应关系.

图2 NIN网络中第三个卷积层特征图分别利用ReLU和MReLU函数得到对应的激活图,激活图中激活值的分布统计Fig.2 The third convolutional layer feature map in the NIN network uses ReLU and MReLU functions to obtain corresponding activation maps. The distribution statistics of activation values in activation maps.

由图1可见,在左侧特征图中,像素的取值范围为[-60,45],而在右侧激活图中,像素的取值范围为[0,32],这意味着不同像素点处于强弱不同的激活状态.然而从ReLU函数的表达式可见(详见表1第2行第2列),ReLU函数对所有正激活状态的像素点提供了相同的梯度响应.这一特性使得网络无法对处于不同激活程度的像素点提供具有差异的梯度响应,即不能够让处于弱激活程度的像素点具有较多机会获得更高程度的激活,如图2所示.

图2中对比了将ReLU和本文提出的MReLU激活函数用于NIN网络时,在CIFAR-10数据集上,NIN网络第三层激活图中像素点的激活值分布情况.图2中的数据来自于对1024张输入图片(每张输入图片在该激活层中有96个通道对应96张激活图)像素点激活值分布的统计.图中横坐标表示对应的激活值区间,纵坐标表示对应区间上的像素点个数.其中蓝色柱状图表示的是ReLU激活函数的激活分布,红色柱状图表示的是MReLU激活函数的激活分布.

图3展示了ReLU族(ReLU,PReLU,LReLU,RReLU),ELU,SELU[12],Swish激活函数及其导函数,图中蓝色线条表示激活函数,橙色线条表示该激活函数的导函数.由图可见,上述激活函数的导函数均接近常函数,说明上述激活函数无法有效地为处于不同激活程度的像素点提供有效的差异梯度响应.虽然有研究结合了神经网络自动搜索技术[13]为网络选择适当的激活函数,然而其函数空间为已有激活函数的集合,无法得出能够为不同激活程度像素点提供差异梯度响应的新型激活函数.

图3 常见激活函数及其导函数图像Fig.3 Various activation functions and their derivatives

本文针对这一问题提出了多斜率自适应激活函数MReLU,该激活函数能够从数据中学习出适当的梯度响应,为不同激活程度的像素点提供更加适合的梯度响应.

2 多斜率自适应激活函数

网络激活图中不同像素点处于不同的激活状态,若对不同的像素点采用同等的梯度响应,就意味着这些像素点得到同等的增强程度(激活值位于正区间的像素点)或削弱程度(激活值位于负区间的像素点).然而像素点的增强程度和削弱程度,如果被人为地统一固定,则很难有效提升网络性能,因此我们设计了多斜率自适应激活函数.

多斜率自适应激活函数MReLU的定义如下:

其中,k1,…,kn为可学习的斜率参数,A1,…,An为n个互不相交的实数区间,其并集为整个实数域.任意像素点输入到该激活函数中,依据激活值的大小,唯一地映射到某一区间中,并获得对应的梯度响应.MReLU在各个区间中使用线性函数作为梯度响应函数,简化了激活函数的计算复杂度,同时简化了激活函数的梯度计算,其导函数定义如下:

其中,k1,…,kn为可学习的斜率参数,A1,…,An为n个互不相交的实数区间,其并集为整个实数域.相比与现有激活函数,MReLU激活函数虽然增加了少量的可学习参数,但其反向传播过程简单,依然是一个轻量的激活函数.

图4给出了MReLU函数的一个具体示例.图中的函数示例指定了((-∞,-7),(-7,-3),(-3,-1),(-1,0),(0,1),(1,3),(3,7),(7,+∞))八个不同的区间,每个区间上对应的斜率为(0.1, 0.25, 0.5, 1.0, 1.0, 0.5, 0.25, 0.1).图中的虚线表示了MReLU函数中包含的跳跃间断点.

图4的示例展示了MReLU函数的两大特性——第一:该函数包含有限的跳跃间断点,为每个区间上的函数选择提供了更大的灵活性,同时也能自适应地为不同区间上的像素点提供对应的梯度响应.第二:该函数在不同区间上具有非单调性,该特性使得像素点在激活前后的有序性将会被一定程度的破坏,改变了常见激活函数单调递增的特性,为低激活像素点提供了更多的机会获得更高程度的激活,同时对高激活像素点具有一定的抑制作用,这一特性有助于网络将更多的注意力集中到需要被提升的像素点之上.

图4 MReLU函数示例,分段区间为((-∞,-7),(-7,-3),(-3,-1),(-1,0),(0,1),(1,3),(3,7),(7,+∞)),各区间斜率为(0.1, 0.25, 0.5, 1.0, 1.0, 0.5, 0.25, 0.1)Fig.4 Example of MReLU function, and the segment interval is specified as ((-∞,-7),(-7,-3),(-3,-1),(-1,0),(0,1), (1,3), (3,7), (7,+∞)), and the corresponding slope of each interval is(0.1,0.25,0.5,1.0,1.0,0.5, 0.25,0.1)

依据激活函数中是否包含可学习参数,可将激活函数分为两大类型:自适应激活函数和非自适应激活函数.本文所提的MReLU属于自适应激活函数.表1对比了非自适应激活函数ReLU,Leaky ReLU/RReLU,ELU,SELU,Swish和BReLU,以及自适应激活函数PReLU、GReLU和本文所提MReLU的差异和特性.其中ReLU只有正值域中的梯度,因此容易导致网络中存在失效神经单元.Leaky ReLU和RReLU通过引入一个非学习数值,在ReLU的基础上增加了一个负值域上的线性梯度响应.ELU/SELU则通过引入一个非线性函数来提供负值域中的梯度响应.Swish改进了Sigmoid函数,缓解了右侧区间上的梯度饱和.非自适应激活函数通常灵活性较低,无法充分利用数据中的信息,也无法为处于不同激活程度的像素点提供特定的梯度响应.

不同于其他的激活函数,BReLU和GReLU这两种激活函数均一定程度上考虑了为不同激活程度的像素点提供不同的梯度响应.相比于BReLU和GReLU,本文提出激活函数具有两大优势——第一:引入跳跃间断点,让每个区间中激活函数的选择具有更大的灵活性;第二:改变像素点激活前后的有序性,提高了低激活像素点获得更高激活的机会.

表1 MReLU与常见激活函数的比较Tab.1 Comparisons between MReLU and common activation functions

续表

函数名称表达式图像类型特性BReLUf(x)=n if x>nx if 0<=x<=n0 if x<0 非自适应通过引入梯度截断,对高激活程度像素点进行梯度截断Swishf(x)=x11+e-x非自适应Sigmoid改进型,收敛速度快PReLUf(x)=x if x≥0x<0 自适应ReLU的改进版本,在负值域中引入了一个可学习参数GReLUf(x)=l1+∑n-1i=1ki(li+1-l1)+kn(x-ln),if x∈[ln,+∞]︙l2+k1(x-l1),if x∈[l1,l2]x, if x∈[l-1,l1]l-1+k-1(x-l-1),if x∈[l-2,l1]︙l-1+∑n-1i=1k-1(l-(i+1)-l-1(k-n)x-l-n),if x∈(-∞,l-n)自适应通过引入多斜率线性区间为不同激活程度的像素点提供不同梯度响应MReLUf(x)=k1x if x∈A1…kix if x∈Ai…knx if x∈An自适应通过引入多个独立区间,为不同激活程度的像素点提供不同梯度;跳跃间断点为函数提供更高的灵活度

3 实验与分析

3.1 实验配置

本文将在图片分类任务上,验证MReLU的性能,并与现有的激活函数进行性能对比.图片分类任务是计算机视觉领域的基础任务.CIFAR-10和 CIFAR-100[11]是被广泛使用的图片分类数据集,因此本文也在CIFAR-10和CIFAR-100数据集上开展实验.为体现MReLU激活函数的普适性,实验中采用NIN和ResNet两种常见的网络结构进行验证.

3.1.1 CIFAR-10和CIFAR-100数据集

CIFAR-10和CIFAR-100[11]数据集是两个常用的分类数据集.其中CIFAR-10数据集包含了10个独立类别的物品用于分类任务,每个类别包含5000张训练图片,1000张测试图片,每张图片的大小均是32x32像素.CIFAR-100数据集包含了20个大类,100个小类,每个小类包含500张训练图片,100张测试图片,每张图片的大小均是32x32像素.在实验过程中,为了避免引入其他因素的影响,我们直接使用原始图片进行训练,没有使用任何数据增强和数据预处理技术.

3.1.2 NIN和ResNet网络结构

NIN网络是一个只包含九个卷积层的浅层网络,表2给出了NIN网络的结构参数.表中第一列表示输入特征图的大小;第二列为对应的操作,第一个值表示卷积核或者pooling核的大小,第二个值表示当前层的输出通道数,第三个值表示步长.

ResNet[14]是在分类网络中被使用最多的网络结构,目前在CIFAR-10和CIFAR-100数据排行榜上的最优分类方法采用了ResNet152网络结构,由于该排行榜上的结果均使用了迁移学习进行增强,为了避免引入其他因素对实验的影响,同时不失一般性,本文使用了ResNet18作为基础分类网络,用于对比不同激活函数的性能.

3.2 实验结果

将MReLU与当前常见的九种激活函数:ReLU、Leaky ReLU、PReLU、RReLU、ELU、SELU、Swish、BReLU和GReLU进行了实验对比.表3所示为各激活函数在NIN网络上的实验结果.表3中包含两行分别表示各个激活函数在CIFAR-10和CIFAR-100数据集上的准确率,其中最优结果用黑色粗体标记.由表3可见,在NIN网络结构上,MReLU激活函数在CIFAR-10和CIFAR-100两个数据集上分别均取得了最优和次优的结果,其准确率分别达到了87.96%和69.01%.

表2 NIN网络结构Tab.2 The NIN network structure

表4所示为各激活函数在ResNet18网络上的实验结果.由表4可见,在ResNet18网络上,MReLU激活函数在CIFAR-10和CIFAR-100两个数据集上均取得了最优的结果,其准确率分别达到了88.56%和73.54%.

通过对比表3和表4中的数据,得到以下三个观察——第一:CIFAR-100数据集上MReLU在NIN网络中的准确率为69.01%,低于GReLU的70.41%,而在其他实验配置(NIN网络中的CIFAR-10,ResNet18网络中的CIFAR-10和CIFAR-100)中MReLU的分类准确率均高于GReLU.这一现象说明,MReLU比GReLU具有明显的性能优势,这一优势主要来自于MReLU更加灵活的函数可选择性.第二:ResNet18网络结构中MReLU在CIFAR-10数据集上准确率为88.56%比次优的Swish高出了0.08%,而在CIFAR-100数据集上MReLU的准确率为73.54%仅比次优的SELU高出了0.02%.这一现象说明在同等网络结构下,随着数据集复杂度的提升,将减弱激活函数差异对网络性能的影响.第三:CIFAR-10数据集上MReLU在NIN网络中的准确率为87.96%比次优的RReLU高出了0.29%,而在ResNet18网络中MReLU的准确率为88.56%仅比次优的Swish高出了0.08%.这一现象说明在同一数据集上,随着网络结构复杂度的提升,激活函数的差异对网络性能的影响减弱.

3.3 性能分析

MReLU激活函数中主要包含两个部分参数:激活区间的划分和各个区间上的梯度.其中,各区间上的梯度是由网络从数据中逐步学习,而区间的划分则相对复杂.

从图2中可以看出,MReLU激活函数得到的激活图中像素激活值的分布关于零点具有一定程度的对称性,因此本文设计了三种关于零点对称的区间划分方案.同时为了更好对比MReLU与ReLU族(ReLU,RReLU,PReLU,LReLU)函数的性能差异,设计了三种仅在负值域中进行分段梯度响应的区间划分方案.

这六种不同的区间划分方案依次为——1:((-∞,-15),(-15,-7),(-7,-3),(-3,0),(0,3),(3,7),(7,15),(15,+∞)),2:((-∞,-7),(-7,-3),(-3,-1),(-1,0),(0,1),(1,3),(3,7),(7,+∞)),3:((-∞,-3),(-3,-2),(-2,-1),(-1,0),(0,1),(1,2),(2,3),(3,+∞)),4:((-∞,-15),(-15,-7),(-7,-3),(-3,0),(0,+∞)),5:((-∞,-7),(-7,-3),(-3,-1),(-1,0),(0,+∞)),6:((-∞,-3),(-3,-2),(-2,-1),(-1,0),(0,+∞)).

图5展示了ResNet18网络在CIFAR-10数据集上的训练进程.图中的横坐标表示训练的轮数,纵坐标表示CIFAR-10验证集上的准确率.从图5可见,在不同的区间划分方案下,各MReLU激活函数的收敛速度和最终的性能有较大差异,其中,第2个区间划分方案取得了最优性能.

除了区间的划分,梯度的初始值也对激活函的性能有着一定的影响.为了讨论不同的梯度初始值对激活函数性能的影响,本文指定了四个不同的梯度初始值:0.5,1.0,1.5,2.0.图6展示ResNet18网络在CIFAR-10数据集上的训练进程.从图6中可见,当梯度初始值为2.0时,ResNet18网络取得了最优性能,此结果与已知的各种基于ReLU的激活函数均不同.ReLU的变种函数,在负值域上通常初始化为一个远小于1.0的初始值.这一点说明为不同激活程度的像素点提供不同的梯度响应,其效果明显不同于对所有像素点提供同等的梯度响应.

表3 在NIN网络上的分类准确率Tab.3 Classification accuracies with the NIN network

表4 在ResNet18网络上的分类准确率Tab.4 Classification accuracies with the ResNet18 network

图5 ResNet18网络中MReLU各区间划分方案性能对比(CIFAR-10数据集)Fig.5 Performance comparison of different intervals of MReLU on the CIFAR-10 dataset in the ResNet18 network

图6 ResNet18网络中MReLU不同初始值的性能对比(CIFAR-10数据集)Fig.6 Performance comparison of different initial values of MReLU on the CIFAR-10 dataset in the ResNet18 network

4 结 论

本文针对神经网络中不同像素点存在激活程度不同这一现象,提出了多斜率自适应激活函数.实验结果表明针对处于不同激活程度的像素点采用不同程度的梯度响应,有助于进一步提升网络的性能.同时包含有限个跳跃间断点的函数形式为激活函数带来了更大的灵活性和学习空间.后续我们将在更多的网络结构、数据集和目标检测、语义分割等更多的视觉任务上,验证MReLU激活函数的有效性.

猜你喜欢

集上像素点斜率
基于双空间模糊邻域相似关系的多标记特征选择
关于短文本匹配的泛化性和迁移性的研究分析
基于局部相似性的特征匹配筛选算法
巧甩直线斜率公式解数学题
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密
图像采集过程中基于肤色理论的采集框自动定位
求斜率型分式的取值范围
师如明灯,清凉温润
导数几何意义的深层次应用