卷积神经网络中激活函数的一种改进

2019-03-19 06:53刘小文郭大波
测试技术学报 2019年2期
关键词:梯度神经元卷积

刘小文,郭大波,李 聪

(山西大学 物理电子工程学院,山西 太原 030006)

0 引 言

卷积神经网络是深度学习中模仿人脑神经网络处理信息的一种学习网络,可以用于大型图像处理.在生物神经网络中[1],神经元通过树突接收来自其他神经元的信号,各树突接收信号的权重(突触权值)不同,神经元接收的信号来自于各树突接收的信号与其权重的乘积之和.卷积神经网络采用权值共享网络结构使之更类似于生物神经网络,同时模型的容量可以通过改变网络的深度和广度来调整,从而对自然图像也具有很强的处理能力[2].

1 卷积神经网络和激活函数

对于卷积神经网络的研究,自2006年Hinton等[3]在Science 上提出了深度学习,许多学者从不同的方向都有所创新.有基于构建图像表示方法研的CNN图像分类方法研究[4],有基于自适应学习率的研究[5],有将dropout层运用于池化阶段的方法[6],有致力于预训练与随机初始化模型[7],这些方法都在一定程度上提高了卷积神经网络的表达能力.本文主要研究在图像分类问题上,激活函数的优化对提高分类准确率和降低损失率的影响.

对于一个单层的感知机,可以很容易地完成一个二分类的运算,如图 1 所示.

图 1 中y=w1x1+w2x2+b.

图 2 含激活函数的单层感知机Fig.2 Single layer perceptron with activation function

图 2 中a=w1x1+w2x2+b,y=σ(a).

这样输出值由于经过激励函数σ(a),就可以处理非线性的分类问题,多层感知器的情况同上.

激活函数是指把激活的神经元的特征通过非线性函数把特征保留并映射出来,这就是神经网络能解决非线性问题的关键所在[12].实际就是在卷积神经网络中起到决定信号能否传递的作用.在卷积神经网络中,当网络具有的是线性属性,那么函数的线性方程及其组合也仅仅有线性表达的能力,网络的多层就没有了意义,相当于只有一个隐藏层的线性网络.使用激活函数增加了神经网络模型的表达能力,使其可以运用到众多的非线性网络模型中,深度神经网络也才真正具有了人工智能的意义[13].

2 经典的激活函数

常见的饱和非线性激活函数包括Sigmoid函数(如图 3)和双曲正切函数Tanh函数(如图 4).

图 3 sigmoid函数Fig.3 sigmoid function

图 4 tanh函数Fig.4 tanh function

经过研究发现,这两个激活函数存在较大缺陷.Sigmoid的缺陷是梯度消失和计算成本昂贵.当Sigmoid函数趋近于0或1时,梯度趋近于0.即当进行反向传播时,输出值接近0或1的神经元会达到饱和状态,因此神经元的权重不会更新,与此类神经元相邻的神经元的权值也会更新得很慢,出现梯度弥散问题.当有多个神经元出现这种情况时,网络将无法执行反响传播.同样,Tanh的缺陷也是有“杀死”梯度的可能性.

为了解决这种激活函数的缺陷问题,近几年有学者提出了近似生物神经的ReLU函数(如图 5)及其变体PReLU函数(如图 6).

图 5 Relu函数Fig.5 Relu function

图 6 PRelu函数Fig.6 PRelu function

ReLU函数有效解决了Sigmoid函数的梯度消失问题,但依然存在均值偏移的缺点[14].在前项传导过程中,当x<0时神经元保持非激活状态,并且在后向传导中“杀死”梯度,网络无法学习.而PReLU函数就解决了ReLU函数在x负半轴为0的问题,其负半轴斜率系数α可以由学习得到,它具有无神经元死亡和收敛速度更快的问题.图 6 展示了x<0时两种不同的α系数的图像函数.

但是,在训练过程中发现,随着训练次数的增多,神经网络容易出现震荡、 不收敛甚至过拟合的情况,导致训练结果严重失真.就此问题,提出了一种ReLU函数的变体ReLU阈值函数.通过在caltech101数据模型上多次的对比训练,发现ReLU阈值函数表现稳定,在提高收敛的基础上,对于测试集的准确率也有一定提升.

3 改进的ReLU阈值激活函数

改进的ReLU阈值激活函数在原来ReLU激活函数的基础上对于输入的x有了限制,不是一味地学习所有的值,而是当达到一定范围时,函数就会“dead”,不再学习,这样避免了过拟合的情况.其中x取何值时函数会“dead”,需要根据不同的数据集训练确定.用图 7 示例,当x≥10时函数的导数为0,函数在此区间不再有学习训练数据的特征,将此函数定义为ReLU10函数.

图 7 ReLU10函数Fig.7 ReLU10 function

4 实验及结果分析

实验平台简介: PC机(Ubuntu操作系统),处理器Inter Core i7, 显卡型号Tesla K40C,12 G显存,caffe深度学习框架.

首先用Alexnet网络模型对caltech101数据集进行训练,将网络中的激活函数分别用几种经典的激活函数取代,调节合适的学习率后训练数据,训练结果如图 8 和图 9 所示.

图 8 训练准确率结果Fig.8 Test-accuracy result

图 9 训练损失结果Fig.9 Test-loss result

其中,ReLU10是指当x≥10时,令y′=0,图像如图 7 所示.由训练结果发现,改进的ReLU阈值函数虽然训练速度略慢,但是收敛性却是最好的,而且测试集的准确率也能达到最大.各激活函数训练的最大准确率和最小损失数据见表 1.

表 1 不同激活函数的训练结果比较

为了保证实验的准确性,将含有ReLU阈值函数的Alexnet网络模型[15]用于训练caltech256数据集.经过对比实验发现,阈值在x=25时表现最为优秀,函数图像如图 10 所示,训练结果如图 11 和图 12 所示.实验表明,此激活函数不仅提高了测试集的分类准确率,而且结果更收敛,波动最小.各激活函数训练的最大准确率和最小损失数据见表 2.

图 10 ReLU25函数Fig.10 ReLU25 function

图 11 训练准确率结果Fig.11 Test-accuracy result

图 12 训练损失结果Fig.12 Test-loss result

最大准确率最小损失ReLU0.6545.435ReLU100.7411.260ReLU200.9020.503ReLU250.9230.496ReLU300.9030.634

5 结束语

本文提出了一种改进的激活函数——ReLU阈值函数,应用于卷积神经网络后对数据集caltech101和caltech256进行训练,在准确率和收敛性上较经典的激活函数都有较大优化,其中阈值为25时表现最佳,有效地避免神经网络出现震荡、 不收敛甚至过拟合的情况,提高了网络的稳定性.

猜你喜欢
梯度神经元卷积
一个带重启步的改进PRP型谱共轭梯度法
一个改进的WYL型三项共轭梯度法
随机加速梯度算法的回归学习收敛速度
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
从滤波器理解卷积
一个具梯度项的p-Laplace 方程弱解的存在性
跃动的神经元——波兰Brain Embassy联合办公
基于傅里叶域卷积表示的目标跟踪算法
ERK1/2介导姜黄素抑制STS诱导神经元毒性损伤的作用