基于学习率自增强的图像识别深度学习算法
2021-12-14吕伏刘铁
吕 伏 刘 铁
1(辽宁工程技术大学基础教学部 辽宁 葫芦岛 125105)2(辽宁工程技术大学软件学院 辽宁 葫芦岛 125105)
0 引 言
深度学习(Deep Learning)[1]作为统计机器学习(Statistical Machine Learning)的重要分支,是目前人工智能领域备受关注的研究热点。卷积神经网络作为深度学习的重要推动力,近年来取得了重大的突破,在计算机视觉、自然语言处理和遥感图像理解等领域有出色的表现,被广泛地应用。
Hinton等[2]提出深度置信网络(DBN),它是含多隐藏层、多感知器的一种网络结构,DBN强大的特征提取能力和“逐层初始化”特有的训练模式,有效地降低了Deep Learning模型的训练难度。与浅层学习模型相比,Deep Learning模型有更深的网络层次,通过构建复杂的非线性网络模型,对输入数据的特征进行分层学习,实现图像特征的有效提取,最后把低层学习到的特征组合为高层抽象的图像特征,完成对输入数据的分类识别。
深度置信网络的提出是深度学习发展史上的一个里程碑,从此,深度学习快速发展,并被应用到众多领域中。在图像识别过程中,为了解决特征提取困难、无法满足实时性要求等问题,Liu等[3]通过构建自适应增强模型,针对分类误差进行有目的的训练,实现了卷积神经网络模型的优化调整和分类特征的自适应增强,并且网络的收敛性能和识别精度有较大的提高。Liu等[4]提出一种结合无监督和有监督学习的网络权值预训练方法,实验验证该算法在解决训练过程中易收敛于局部最优值的问题上优于现有算法。Gao等[5]在卷积神经网络模型AlexNet[6]的基础上,提出了对数据集采用数据增强等预处理方法。实验结果表明,识别准确率和识别速度有一定的提升。Song等[7]提出基于深度神经网络模型的手写体图像识别方法,让机器自动学习特征,并在此基础之上改进成本函数,加入Dropout[8]防止过拟合,实验结果表明,该方法对手写体数字的识别有更加快速准确的识别效果,在识别准确率和实时性方面均有提高。He等[9]在汉字识别过程中结合卷积神经网络,取得了较好的识别效果并降低了训练时间。Chen等[10]提出的手写体数字识别模型,有较好的识别精度,模型的识别能力甚至超过了人类的识别能力。但是目前深度学习模型仍然具有收敛速度慢、识别精度不高、泛化性不足等问题。
学习率是一个非常重要的模型训练超参数,决定了迭代的步长。学习率过大会使代价函数直接越过全局最优点,使最优解在极值点附近来回震荡;学习率过小会使代价函数的变化速度很慢,增加网络模型收敛的复杂度,并很容易使最优解收敛于局部最小值。现有的神经网络模型,学习率一般是随着迭代次数进行衰减,这对神经网络模型的收敛速度和识别精度有很大的影响。因此在网络模型的训练过程中动态调整学习率就显得非常重要。
受文献[11]的启发,为了进一步提高深度卷积神经网络的收敛速度、识别精度以及网络模型的泛化能力,本文通过研究深度卷积神经网络训练过程中学习率的变化情况,提出一种学习率自增强算法,在网络训练初期,用大于1的常数自增强学习率,加快网络模型向极值点的逼近速度。随着训练的进行,根据网络模型代价函数的相对变化率,调整网络模型的学习率。实验表明,该方法可以有效地提高网络模型的收敛速度,并使最优解在极值点附近的震荡程度得到极大缓解。
1 相关工作
深度卷积神经网络是一种特殊的多层神经网络模型,在图像处理领域有着广泛的应用,深度卷积神经网络是受动物视觉神经系统的启发,用卷积层模拟对特定图案的响应,池化层用来模拟动物视觉皮层的感受野,一般由输入层、隐藏层和输出层组成,如图1所示。输入层是未经任何处理的二维原始图像,隐藏层通常为卷积层和池化层的重复结构,输出层是对特征进行分类和识别的结果,其中特征提取和分类是在隐层中进行的。深度卷积神经网络对图像的分类识别主要包括两个过程,即前向过程和反向过程。前向过程包括特征提取和分类,计算各个神经元的激励值和损失值,而反向传播主要是权值更新的过程。前向传播过程会产生分类误差,反向过程通过把前向传播产生的误差反馈到网络模型中从而实现对权值和偏置的更新。
图1 卷积神经网络结构
设卷积层的第i个输入数据为Ii,卷积核为Wi,各有n个,偏置为Bi,激活函数为f,则卷积层输出特征的计算表达式为:
(1)
式中:con为卷积函数;Fc为卷积层输出的特征。
下采样操作是对卷积输出的特征做进一步的降维处理,并把对应输出输入到全连接层,全连接层经过权值变换和激活后得到本轮的分类结果,通过与分类真值比较,得到对应的分类误差。设全连接层的输入特征为T,对应的权值为W,偏置为B,激活函数为f,则全连接层进行分类的表达式为:
F0=f(W*T+B)
(2)
式中:F0为分类结果矩阵。
2 学习率自增强算法
2.1 代价函数
在机器学习中,经常选择代价函数作为优化的目标函数。代价函数指的是深度卷积神经网络模型的预测值和真实值之间的误差。样本数据集的代价函数定义为:
(3)
图2 ReLU函数图像
(4)
(5)
深度神经网络通过反向传播,将分类误差反馈到隐层中,使每层中的权值和偏置得到更新,进行下一次循环迭代时,使用最近更新后的各项参数进行网络模型的训练,通过不断的更新迭代,使网络模型中的识别率不断提高,损失函数降至最小。设l为学习率,则网络模型中的权值w和偏置b由w1和b1更新为w2和b2的表达式为:
(6)
(7)
由图2可知,ReLU激活函数是分段线性函数,自变量为负值或0时,函数值为0,自变量为正值时,函数值保持不变,这种操作被称为单侧抑制。在深度卷积神经网络模型中,由于梯度下降算法链式求导法则的乘法特性,存在梯度消失现象,通过使用ReLU激活函数,可有效地解决因为连乘而导致的梯度消失问题,整个过程的计算量较小,并且ReLU激活函数会使一部分神经元的输出为0,从而获得网络的稀疏性,减少了参数间相互依存关系,有效缓解过拟合问题的发生。但是ReLU激活函数的输出不是以0为中心,会使一部分神经元的输出为0,故随着训练的进行,有可能出现神经元“死亡”、权重无法更新的情况。因此,考虑到以上因素,本文提出学习率自增强算法,用大于1的常数自增强学习率,加快网络向极值点附近的逼近速度,随着训练的进行,根据模型代价函数的变化情况调整学习率,使得学习率的变化对于未知的数据更加敏感,提高了模型分类识别的性能。
2.2 基于代价函数变化率的学习率自增强算法
学习率是深度卷积神经网络模型训练过程中一个非常重要的超参数,它是梯度下降算法搜索过程的步长,对网络模型的性能有着非常重要的作用。学习率过大,将导致最优解在极值点附近来回震荡;学习率过小,将导致模型很难收敛或使得最优解收敛于局部最小值。因此,学习率对网络模型的收敛效果有极大的影响。而在以往的实验中,网络模型的学习率大多是根据经验来设定,在模型训练的整个周期中保持恒定或根据迭代次数进行衰减。在实际实验过程中,随着时间的推移,网络模型的学习情况复杂,在各个时期有很大的差异,因此,将模型的学习率设置为单一的不变量对模型的学习性能有重要的影响。本文提出的学习率自增强算法是受自适应调整学习率算法[11-12]启发,根据模型训练过程中各个阶段代价函数的变化情况调整学习率,相比于恒定的学习率,使用学习率自增强算法可以提升模型的性能,缩短训练的时间。在模型训练初期,为了加快网络的收敛速度,用大于1的因子自增强学习率,加快网络向极值点附近逼近的速度。随着训练的进行,由于模型接近收敛,因此在该阶段根据代价函数的相对变化率适当的增加或减小学习率,直至网络收敛或是达到设定的迭代次数。
第n个世代的学习率ln可以表示为:
(8)
(9)