Swish激活函数在中小规模数据集上的性能表现

2018-01-19 21:57米硕田丰收孙瑞彬葛敏赵汝程
科技创新与应用 2018年1期
关键词:神经网络深度学习

米硕+田丰收+孙瑞彬+葛敏+赵汝程

摘 要:Swish激活函数是一种新的激活函数,其形式为:f(x)=x?鄢sigmod(x),Swish-?茁激活函数的形式则为f(x)=x?鄢sigmod(b?鄢x),其拥有不饱和,光滑且非单调性的特征,而测试表明Swish以及Swish-?茁激活函数拥有极佳的性能,尤其是与局部响应归一化配合,以及较深的深度神经网络上,表现出了对目前大多数激活函数的性能优势。

关键词:Swish激活函数;深度学习;神经网络

中图分类号:O174 文献标志码:A 文章编号:2095-2945(2018)01-0004-02

Abstract: The Swish activation function is a new type of activation function, which takes the form of , and the activation function takes the form of , which has the characteristics of being unsaturated, smooth and non-monotonic. The test results suggest that the Swish and the activation function have excellent performance, especially with the local response normalization, as well as deeper depth neural networks, showing performance advantages over most current activation functio

激活函数常在神经网络中用于添加非线性因素,可以将激活函数定义为一个几乎处处可微的函数:

(1)

第一种情况

第二种情况

激活函数存在一些问题,即饱和问题,当激活函数满足第一种情况时,称之为右饱和,而当激活函数满足第二种情况时,则称之为左饱和,如果几乎函数在非极限状态下,而是存在一个常数C可以证明,在x大于或小于该常数C时,h(x)的一次导数存在恒等于零的情况时,则称h(x)为右硬饱和函数或左硬饱和函数。否则称其为软饱和函数。因为反向传播算法的计算方式,可证明饱和激活函数会导致神经网络的性能大幅度下降.从而产生梯度消失问题,如常见的sigmod函数亦或是tanh函数。

而现在深度神经网络中常用的激活函数为ReLU激活函数,其存在有上界无下界且光滑的特点,并可证ReLU函数为大量logic函数的近似解。但是随着神经网络的加深,ReLU在不同数据集上则表现出了差于多类变种的现象。而新型的激活函数Swish则在几乎所有的数据集与深度神经网络上表现出了出色的性能提升,尤其是在局部响应归一化以及较深层次的神经网络上表现出更好的性能。

swich是谷歌在17年10月16号的论文中提出的新型自门控激活函数,其灵感来自于lstm等神经网络中,利用sigmod函数进行门控。其形式为:f(x)=x?鄢sigmod(x),以及其swish-?茁的f(x)=x?鄢sigmod(B?鄢x),其中B为可调参数,利用参数B,使得swich的内插程度可以由参数本身控制.在多种深度神经网络上的多种数据集上的测试显示,swish-?茁几乎比最佳性能激活函数的性能都要优秀。但是该激活函数并没有数学证明,而只是通过搜索获取的经验性公式。

Swish与ReLU一样有上界而无下界,但是其非单调性确与其他常见的激活函数不同,通知其也拥有平滑和一阶导数,二阶导数平滑的特性。

谷歌测试证明,swich适应于局部响应归一化,并且在40以上全连接层的效果要远优于其他激活函数,而在40全连接层之内则性能差距不明显。但是根据在mnist数据上AleNet的测试效果却证明,swich在低全连接层上与Relu的性能差距依旧有较大的优势。

对于MNIST数据集而言,五层内的全连接层已经可以达到更好的测试性能,但是为了测试Swish激活函數与ReLU激活函数在MNIST手写数据集上的性能差距,在进行三层神经网络全连接层的测试同时进行了10层的全连接层的扩展。并在随后的测试中并进行了四层,五层,六层全连接层的性能测试,性能表现与三层全连接层神经网络的差距不大.而在收敛速度方面,同等学习率时,Swish激活函数收敛速度略慢于ReLU激活函数,但是在较小学习率时,两者收敛速度相近。

1 测试一

在MNIST上的使用三个全连接层的的AleNet,在添加局部响应归一化的情况下进行测试,测试证明,在100000训练测试的情况下,ReLu的最后三次批处理的训练损失122.1133,训练集正确率为0.97396.,Swish的最后三次批处理的训练损失196.3051,训练集正确率为0.96614.但是在测试集上的测试结果则为:Swish激活函数:98.83%,RelU激活函数的测试正确率为:98.44%。性能提升为0.39%.Swish表现出了优于ReLU函数的性能。

2 测试二

而在MNIST上的使用十个全连接层的的AleNet,在添加局部响应归一化的情况下进行测试,则表明在更多连接层的情况下Swish激活函数的与RelU的性能差距能够更快地显现出来,在10000训练测试的情况下,在训练中Swish激活函数的的平均损失已经优于ReLU函数,而测试结果则为Swish激活函数:97.16%,RelU激活函数的测试正确率为:96.58%.性能提升为0.58%。

3 测试三

而当全连接层扩展到45层时,Swish函数则表现出了远优于ReLU函数的性能.在测试集上Swish函数的最终正确率为94.20%,而ReLU激活函数的最终正确率则为93.31%,此时Swish激活函数的性能相对于ReLU激活函数提高为0.89%.测试结果证明Swish激活函数性对于ReLU激活函数在训练深层神经网络方面拥有更大的优势,并表现出了相对于ReLU激活函数更强的抗过拟合能力.而在收敛速度方面两者的表现差距不大。endprint

在MNIST数据集上,Swish激活函数确实表现出了远优于ReLU激活函数的性能,尤其当全连接层增大時,Swish确实表现出了其性能的优越。但是同时为了避免深度神经网络在迭代过程中,性能波动而造成的偶然性的差异,又而额外进行了全连接层为4,5,6层的AleNet深度神经网络的测试,其表现差距不大,最终通过多次验证测试证明,Swish激活函数确实拥有远优于ReLU激活函数的性能,并在更深深度上的神经网络拥有更大优势.并且在不同全连接层训练误差,损失与测试集误差与损失也表明Swish激活函数确实拥有优于ReLU激活函数的性能。同时Swish-B激活函数在其他中小规模数据集上的表现也比多种深度神经网络的最佳激活函数优秀,其性能提升在0.9%到2.2%之间。

为了在更复杂的数据集上验证Swish激活函数的性能,测试三采用Fashion-MNIST数据集进行测试,Fashion-MNIST是一个发布的新型图片数据集,其格式完全与MNIST手写字符集完全一致,但是其图片内容则为更为复杂的服装,一般而言AleNet在Fashion-MNIST上的性能表现一般要比MNIST手写数据集,低8-9个百分点.而采用Fashion-MNIST这一更高难度数据集,可以更好地测试深度神经网络的性能。

4 测试四

我们将测试一中的数据集替换为Fashion-MNIST,采用完全形同的代码再次对Swish激活函数进行测试。测试集的测试结果则为:Swish激活函数的正确率为:90.45%,RelU激活函数的测试正确率为:90.03%。性能提升为0.42%。与此同时两种激活函数的最终损失函数表现差异则不大。

5 测试五

将测试二中的测试性数据集更换为Swish激活函数则测试结果表明Swish激活函数已经能够拥有要优秀与ReLU函数的测试正确率,最后结果Swish激活函数:89.23%,RelU激活函数的测试正确率为:89.56%。性能提升为0.33%。而在最后三批的损失函数的表现上,Swish激活函数则表现出了优于ReLU函数的性能。

6 测试六

Swish激活函数与ReLU激活函数在45层全连接神经网络后的表现。Swish激活函数在测试集上的正确率为87.69%,ReLU激活函数的正确率则为86.77%,Swish激活函数相较于ReLU激活函数的性能提升约为0.92%。而最后三批次训练的损失函数,Swish激活函数则约比ReLU激活函数提高了约150。

在复杂数据集和更复杂的深度神经网络结构上,Swish拥有更好的性能表现,而Swish-?茁激活函数想对于其他激活函数则表现出了近乎压倒性的优势.而在收敛速度,训练集损失与训练集正确率上,并没有明显差距。

7结束语

Swish在中小规模数据集上的表现相较于ReLU激活函数拥有更快的收敛速度,但是在全连接层较少时,Swish激活函数在训练集上的可能低于ReLU激活函数,但是在多个较少全连接层上的测试也表明,Swish激活函数即使在训练集性能表现较差的情况下依然拥有优于ReLU激活函数的性能,而当全连接层扩大时,性能差距将会更大。而Swish-?茁激活函数在多个数据集上的表现则证明其拥有优于其他所有深度神经网络的最佳激活函数的性能。同时也依赖于Swish编写的简易性,只需要将现在的sigmod激活函数略微改造就可以拥有极佳的性能,详细Swish激活函数将会在之后拥有更广阔的使用空间。

参考文献:

[1]Noisy Activation Functions: Caglar Gulcehre, Marcin Moczulski, Misha Denil, Yoshua Bengio.arXiv:1603.00391v3.

[2]Fashion-MNIST: a Novel Image Dataset for Benchmarking Machine Learning Algorithms. Han Xiao, Kashif Rasul, Roland Vollgraf. arXiv:1708.07747.

[3]王鑫.一种基于径向基函数的模型参考自适应控制的研究[J].科技创新与应用,2017(26):12-13.endprint

猜你喜欢
神经网络深度学习
基于人工智能LSTM循环神经网络的学习成绩预测
基于图像处理与卷积神经网络的零件识别
基于改进VGG-16神经网络的图像分类方法
基于自适应神经网络的电网稳定性预测
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
基于BP神经网络PID控制的无刷直流电动机调速系统设计
有体验的学习才是有意义的学习
电子商务中基于深度学习的虚假交易识别研究
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望