APP下载

基于局部调节卷积神经网络的图像识别方法

2019-01-02吴禄慎常参参王晓辉陈华伟

计算机工程 2018年12期
关键词:训练样本识别率卷积

吴禄慎,常参参,王晓辉,陈华伟

(南昌大学 机电工程学院,南昌 330031)

0 概述

近年来随着深度学习(Deep Learning,DL)的发展,卷积神经网络(Convolutional Neural Network,CNN)以其高效准确的分类能力和直接处理原始图像等优点,在图像的识别领域获得高度的关注[1]。2012年,文献[2]提出的8层深度卷积神经网络AlexNet,在大规模视觉识别挑战[3](Large Scale Visual Recognition Challenge,ILSVRC)中以准确度超越第2名11%的优势赢得冠军,掀起了卷积神经网络在图像识别领域的研究高潮。

虽然卷积神经网络在图像识别领域展现了极大优势,但是大多深度模型需要上千次的迭代、数以万计的训练样本以及高效的图像处理设备才能满足网络训练的要求。这些限制使深度卷积网络只能停留在实验室阶段,限制了其应用范围。对此,国内外很多专家和学者在对传统深度卷积网络算法研究的基础上,提出一些改进的方法。文献[4]提出递归卷积神经网络(Recurrent Convolutional Neural Network,RCNN)模型将循环并入每个卷积层,随着时间的推移,每个输入的神经元都会受到相邻神经元的影响,增强了模型整合上下文的能力,在小训练样本量的图像识别上获得极大的成功。文献[5]提出一种基于超参数和静态向量的CNN,通过微调学习任务的特征向量进一步提高网络的速度。文献[6]针对训练样本少的问题,设计了训练数据扩增技术,提高卷积神经网络的应用范围。文献[7]对比了不同池化模型对卷机网络的影响,设计出动态自适应池化(Dynamic Adaptive Pooling,DAP)模型,改进卷积神经网络的池化层,取得比较好的效果,提高了收敛速度和准确率。文献[8]提出一种展开式的卷积神经网络(Unfolded Convolutional Neural Network,UCNN)把卷积层和全连接层展开成矩阵相乘的形式,大大减少网络运算量,节省了网络的运算时间。文献[9]提出了一种基于时域抽取方法的分裂基-2-2a一维FFT快速方法(简称S_2a_FFT),利用卷积定理在频域中实现空域线性卷积的方式,实现了网络的加速,且精度并没有损失。

虽然专家学者对卷积神经网络算法做了大量的改进,取得了很大成功,但是这些改进主要集中在优化网络结构和增加前期处理方面,在参数的调节方面仍然是全局参数同时修正,调节幅度小,网络必须经过大量的迭代才能收敛。

针对上述问题,本文提出局部调节卷积神经网络(Locally Adjusted Convolutional Neural Network,LACNN),通过比较实际输出与理想输出的差异,根据对分类残差的影响把差异分成关键部分和非关键部分,舍弃差异性小的神经元参数,对差异性大的参数设置动态学习率,突破固定步长对参数调节的限制,扩展调节的幅度,从而加快网络的收敛速度。

1 卷积神经网络

卷积神经网络是众多深度学习算法中的一种,是深度学习算法和神经网络的结合,在机器视觉[10-11]和信号识别[12]方面有着广泛的应用。卷积神经网络由3个部分组成,分别是输入层、隐含层与输出层。其中,输入层和输出层分别对应着输入的图像和输出的结果,而隐含层包含了多个卷积和池化层交替的非线性结构的神经元层,在最后一层的池化操作后还有一个全连接层,目的是获得高维的空间表达。卷积神经网络本质上是一个特征提取器和分类器的综合,通过对输入的图像不断地进行特征学习得到一组最接近图像含义的特征元素组,然后输入尾部的分类器,进行数据的分类识别。

1.1 LeNet-5网络结构

LeNet-5[13]作为经典的卷积神经网络,为卷积神经网络提供了框架,后来的卷积网络基本上由此扩展而来。其网络结构如图1所示,它的输入Input是一个未经处理或者仅经过简单处理的图像,卷积层是CNN的核心部分,通过不同的卷积核来获取图片的特征。卷积核相当于一个滤波器,不同的滤波器提取不同特征。卷积层C1一般选取多个随机的卷积核对图像进行卷积。紧随着卷积层的是池化层S2(也称为降采样层或者子采样层)。几乎每个卷积操作后都会接一个池化操作,池化分为均值池化和最大池化,目的是为了降低卷积后特征图像的维度。一般选择2×2的池化尺寸,可以将卷积层的输出矩阵的尺寸变为原来的1/4,简化后面的运算。池化操作增加了系统的鲁棒性,把原来的准确描述变为了概略描述。卷积层C3和池化层S4与卷积层C1层池化层S2类似,一个卷积层和一个池化层形成一个组合结构,卷积神经网络的隐含层中这种组合结构重复出现,它的多少决定了卷积神经网络的深度。把最后一层池化得到的特征图展开成形一个一维的矩阵(全连接层),被称为单层感知机。输出层Output与一维矩阵进行全连接,然后经过分类器进行分类识别。在传统的卷积神经网络中用到的分类器是Softmax。

图1 卷积神经网络结构

1.2 卷积过程

输入的图像经过卷积核进行卷积得到特征图像,加上偏置然后,传入一个非线性函数sigmoid进行激活[14]。假设L(0≤L≤5)层有N个特征图,卷积层的输入是m×m的矩阵Xj,卷积核是n×n的矩阵kij,使用卷积核对输入矩阵Xj的感受野进行步长为1的顺序卷积,卷积计算公式为:

0≤L≤5,1≤j≤N

(1)

其中,XjL+1是卷积层的输出的特征图的矩阵,它是一个(m-n+1)×(m-n+1)的矩阵,Mj表示输入的特征图矩阵集合,bjL+1是卷积后所加偏置,f是一个非线性函数,一般为sigmoid函数。卷积过程的输入可以是原始的图像,也可以是经过池化产生的特征图像。

1.3 降采样过程

对于降采样层来说,输入多少个特征图就会输出多少特征图,只是每个输入的特征图的尺寸变小。一般的来说,输出的特征图大小都是成倍的减少。假设有N个特征图,降采样层的计算公式为:

1≤L≤5,1≤j≤N

(2)

其中,XjL是经过降采操作的输出特征图,βjL是特征图特有的乘性偏置,down(.)表示降采样函数,f是一个非线性函数。

1.4 卷积神经网络的训练过程

卷积神经网络每次训练包括2个过程,分别是前向传播过程和反向传播过程。前向传播是在初始的各种参数下对图像进行卷积和池化操作,组成全连接得出训练的结果。反向传播是通过求训练结果与标签值之间的分类残差(即代价函数),链式求导得到各神经元的敏感度,反向计算得出卷积核与权重的下降梯度,梯度与学习率相结合,从而得出权重修改量,更新各层的权重,确定新的网络。

2 局部调节卷积神经网络

2.1 局部调节卷积神经网络算法思想

传统卷积神经网络的缺点是参数的调节幅度小,收敛速度慢,其原因主要是由于各层神经元灵敏度和学习率的限制所导致的。针对该问题,本文提出局部调节卷积神经网络,改善参数调节的幅度,减少迭代次数。局部调节模型的思路是:按照对代价函数的贡献把差异矩阵E中的元素分成关键元素和非关键元素,剔除非关键元素获得矩阵E*,并根据E*设置动态学习率ξ。然后,逆向更新各层输出Xl,确定需要大幅调节的神经元参数,迭代时参数调节只发生在需要调节的局部神经元参数中。动态学习率和局部参数调节使网络中的参数很快收敛。当大差异参数足够小时,差异函数中的部分非关键因素和关键因素角色发生变化,继续对相对差异性大的参数进行调节。局部调节卷积神经网络的参数调节过程如图2所示。其中,黑点表示调节部分,白点表示非调节部分。

图2 LACNN调节过程示意图

局部参数调节使网络的残差快速下降到一个很小的值,能够满足传统CNN对识别精度的要求。然而,在不改变Epoch的情况下,LACNN会继续迭代,每一次参数的更新都会使网络的实际输出与理想输出更接近。局部调节使整个网络不断向收敛的方向靠近,最终停留在一个比全局调节更接近极限收敛的位置,从而使整个网络的识别精度有所提升,因此,局部参数调节卷积神经网络不仅可以节省网络的收敛时间,而且对网络的识别精度也有一定的提高。

2.2 局部调节卷积神经网络算法原理

H=sigmoid(Xi×Wi+bi),1≤i≤n

(3)

(4)

式(4)中差异矩阵E是网络实际输出与期望输出之间的差值,矩阵的元素值越大代表相应的特征点的实际输出与期望输出差异越大,说明特征提取的效果越不理想。差异矩阵E中的元素分布并不均匀,其中少数大元素值组成了代价函数的主要部分,其他多数元素对代价函数的影响很小。这些元素在参数调节时发挥的作用也不同,小的元素对应的神经元的参数需要的修正量很小,而其他的参数需要的修正量很大。但是为了避免代价函数的逆增长,只能选择一个较小的学习率对参数进行修正。这种全局参数同时调节的方法限制了网络在大差异性参数上的调节能力。本文根据差异矩阵中的元素对代价函数的影响不同,将其分成关键元素和非关键元素进行局部参数调节。首先对差异矩阵变形,设置元素阈值K,剔除非关键因素。假设差异矩阵为:

则:

1≤i≤m,1≤j≤n

(5)

式(5)中阈值的功能是保留差异矩阵E中大于K的元素值,所有不大于K值的元素全部设置为零。经过阈值过滤后的矩阵E*中所有的元素值都大于K。矩阵E*中的元素与分类残差直接相关,其大小反映了识别的准确程度。以矩阵E*为基础,设置动态学习率ξ:

(6)

其中,к表示学习率变化权重,可以根据需要设置,经实验测试一般选在2~5较合适,p为aij(1≤i≤m,1≤j≤n)中所有不为零元素的个数。由式(6)可知,动态学习率的值总是和差异矩阵中元素值较大的那部分元素有关,保证其尽可能大地调节参数。而且动态学习率是根据分类的差异性自动生成的,它并不是一成不变的,会随着迭代的增加而变小,在迭代的后期学习率会以很小的变化调节参数,防止代价函数出现反向增长的现象,因此相比设置较小的固定学习率,动态学习率更适应自动调节的需求。

在进行参数调节时,为避免前面各层神经元节点对应参数修正过度,造成代价函数无法收敛或者震荡收敛的现象,需要对各层输出进行替换,假设有s层网络,第s层的输出H由变形矩阵E*与期望输出y相加所得:

H=E*+y

(7)

其他层输出Xl(1≤l≤s)通过下式获得:

Xl=Z(sigmoid-1(Xl+1))-1,1≤l≤s

(8)

式(8)中Xl是l层输出的集合(当l=s时,Xl+1=H),Z是中间函数(Z=(Xl×Wl+bl))。这时输出Xl中对识别残差影响较大的神经元得到强化,其他的被弱化或者剔除。输出的更新确定了参数的修正需求,接着需要确定参数的修正量。确定修正量需要代价函数:

(9)

J(W,b,x)是网络输出与期望输出差值的平方,与权重和偏置的调节息息相关。根据J(W,b,x)用链式求导法则求偏置b和权重W的偏导,得出b和W的梯度下降方向:

1≤l≤s

(10)

1≤l≤s

(11)

(12)

(13)

注意,由于xl经过强化或者弱化处理,这时的W和b并不都存在修正量,部分ΔW、Δb的值为0或者很小的值,只有调节需求较高的参数保持大的修正量。最后,对所有需要调节的参数进行更新:

Wl+1=Wl-ΔW

(14)

bl+1=bl-Δb

(15)

其中,Wl+1、bl+1表示迭代后的权重和偏置。至此,参数调节一次,迭代过程结束。局部调节卷积神经网络流程如图3所示。

图3 分步式动态卷积神经网络流程

在图3中,Maxloop、Maxtrain分别表示最大迭代次数和样本的最大批量,ζ是代价函数的阈值。局部调节卷积神经网络突破了固定步长的限制,运用动态学习率和局部神经元参数更新,可以加快代价函数的收敛,在迭代前期就能达到其他深度网络迭代后期才能达到的效果,变相减少了网络训练时间。

3 实验与结果分析

本文实验在Matlab R2014a进行,计算机型号为Intel(R)Core(TM)i7-3610M 3.8 GHz,内存8 GB。实验选择手写数据集mnist数据库、人脸数据集ORL和LFW、图像分类集CIFAR-10上进行本文方法的验证。

3.1 在手写数据集mnist上的实验与分析

手写数据集mnist包含70 000个手写数字的图像数据,其中60 000个训练样本集和10 000个测试样本集,每个图像集都有对应的标签,用以表示图像所对应的数字。为了验证改进算法的效果,选择近年来几种比较成功的改进CNN算法进行对照实验,包括DAP、UCNN、S_2a_FFT,实验中的各种CNN,统一设置成6C-2S-12C-2S的网络结构,卷积核的大小为5×5和3×3,激励函数选择sigmoid,输出层使用softmax函数把结果归一为0~1。实验将mnist数据集的训练样本集分成几种不同的规模(10 000、30 000、50 000、60 000),以50个样本为一个batch,参数冲量为0.9,对不同规模的训练样本所得的结果作对比。

图4是不同的改进CNN在训练中对代价函数变化的影响。根据图4可以得出:本文算法对于代价函数的收敛改进较大,在迭代300次以后就能达到DAP在600次所达到的结果,且其图线比UCNN和S_2a_FFT陡,说明改进以后的算法在代价函数上收敛更快。本文算法代价函数的收敛值比DAP、UCNN和S_2a_FFT代价函数图像的收敛值更低,说明在其他算法收敛时,本文算法仍可以继续对参数进行调节。

图4 mnist数据集上的代价函数变化曲线

表1是各算法在不同训练样本量的手写数字集下的测试识别率和时间的关系。从表1可知,本文的局部调节卷积神经网络在训练样本量为10 000时,识别率为46.74%,比DAP、UCNN和S_2a_FFT分别高13.62%、26.24%和27.49%,在训练样本量为60 000时识别率达到93.63%,比最高的DAP高出0.76%。虽然在处理速度上不如加速网络结构收敛快,但是其在识别率上的提升弥补这一不足。而且在训练样本量少的情况下,本文算法在识别率上的提升极为显著。

表1 不同算法在mnist数据集上的测试识别率和识别时间

图5和图6表明了在达到同样测试识别率的情况下,各算法对训练样本量和和时间的要求。如图5所示,局部调节卷积神经网络在识别率上的收敛效果要比其他改进CNN更加明显。在识别率为80%时算法所需最少训练样本量实验中,局部调节卷积神经网络要比UCNN和S_2a_FFT少12 000个训练样本左右,在识别率为88%时可以节省20 000个训练样本左右。说明在同样的识别要求下,局部调节卷积神经网络需要的训练样本更少,因此,可以减少网络的运算量,节省时间。图6表示在相同的识别率下不同算法所需要的最少时间。从图6可知,本文算法在进行识别时达到相应的识别率所用的时间比另外3种改进方案明显减少。

图5 训练样本量和识别率关系

图6 识别率和耗时关系

3.2 在人脸识别数据集ORL上的实验与分析

人脸识别数据集是由剑桥大学拍摄的由一系列人脸图像组成的数据集合,共有400幅人脸图像,包括40位不同年龄和种族的人,每人10幅,大小为112×92像素。ORL是目前人脸识别中使用最广泛的人脸数据集之一,其大多数图像的光照方向和强度相差不大,只有少许的表情姿势伸缩的变化。ORL人脸库的部分图像如图7所示。

图7 ORL人脸数据集的部分面部图像

将ORL数据库中40人的图像每人抽出5幅作为训练集,5幅作为测试集,这样就会有200张训练样本和200张测试样本。实验时需要对人脸图像额外增加相应的标签矩阵用以表明图像的类别。实验中把数据集中的人脸图像缩小成48×48像素大小的矩阵,输入卷积神经网络。由于人脸的复杂度比手写数字要高,所有参与实验的CNN网络结构均为10C-2S-25C-2S-40C-2S,10个样本为一个batch,参数冲量为0.9。实验结果如图8所示。

图8 ORL数据集上的代价函数变化曲线

图8表示不同的算法在ORL上训练时代价函数变化情况,它反映了各种算法在参数调节时对代价函数的改变过程。从图8可知,与S_2a_FFT、DAP和CCNN相比,本文算法代价函数的收敛值依然保持最小,而且相对于迭代后期,本文算法在样本量较少时对代价函数收敛性的提升更加明显。

为了进一步探究几种算法在人脸数据库上有关识别率和相应耗时的关系,对算法进行不同Epoch下的识别率和耗时实验。

由表2可知,随着迭代次数的增加,4种算法的识别率都有不同层次的增加,本文的局部调节卷积神经网络在Epoch为10时识别率已达到89.16%,比其他算法达到相同识别率所需要的Epoch更少,说明其收敛的速度比其他网络更快。在Epoch为100时,本文算法的识别率在4种算法中仅比CCNN少,相差0.12%。但从耗时上来看,局部调节卷积神经网络比CCNN节省60.97 s,相当于节省23.55%。S_2a_FFT在运算时间上有所改进,但是其识别率在相同的条件下是最低的。DAP兼顾耗时和识别率,取S_2a_FFT和CCNN的折中,但是和本文算法相比仍有差距。

表2 不同算法在ORL数据集上的识别率和识别时间

3.3 在其他数据集上的实验与分析

为了证明算法的适用性,本文又选择2种比较常见的图像数据集CIFAR-10和LFW对算法进行实验。CIFAR-10包含10种物体的60 000幅图像,其中,50 000幅训练数据,10 000幅测试数据。LFW包含5 749人的13 233幅带标签的人脸图像。CIFAR-10和LFW都是图像识别中最常用的几个数据集,作为实验数据很有必要。CIFAR-10和LFW数据集中的图像都是彩色的,实验时要先转化成灰度图像。为了验证算法在相同识别率下耗时上的优势,统计算法在达到相同训练识别率的基础上,所需最少样本的训练时间,即在CIFAR-10上所有算法达到识别率接近90.00%(±0.05%)的最少时间和在LFW上达到87.00%(±0.05%)的时间。

从表3和表4中可知,在CIFAR-10识别率达到90.00%(±0.05%)时,本文算法所用最短时间为343.57 s,分别比Bocw-Net、CCNN和RCNN少247.08 s、130.39 s和129.26 s,相比于Bocw-Net节省了41.83%的时间。同样地在LFW上识别率达到87.00%(±0.05%)时,本文算法用时也是最少的,分别比Bocw-Net、CCNN和RCNN少77.96 s、59.58 s和24.39 s。由实验可知,局部调节卷积神经网络主要是通过调节参数更新时的修正量,使参数能够快速收敛,在少量的迭代下就能达到多次迭代的效果,变相地节省了训练的运算时间。

表3 各算法在CIFAR-10和LFW上的识别率 %

表4各算法在CIFAR-10上达到90%(±0.05%)和LFW上达到87%(±0.05%)的最短时间s

数据集Bocw-Net算法CCNN算法RCNN算法本文算法CIFAR-10590.65473.96472.83343.57LFW287.73269.35234.16209.77

4 结束语

本文通过分析传统改进卷积神经网络在图像分类识别中参数调节慢、迭代次数多、训练时间长等问题,提出一种能够提高参数调节幅度、加快网络收敛的改进卷积神经网络方法。通过设置动态学习率和局部参数调节等方式实现了参数的快速调节。在mnist、ORL、CIFAR-10和LFW上的实验结果证明,局部调节卷积神经网络可以快速地降低网络的残差值,在达到相同的训练识别率时所需的迭代次数更少,节省了训练时间。

猜你喜欢

训练样本识别率卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于类图像处理与向量化的大数据脚本攻击智能检测
人工智能
卷积神经网络的分析与设计
从滤波器理解卷积
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
提升高速公路MTC二次抓拍车牌识别率方案研究
基于傅里叶域卷积表示的目标跟踪算法
宽带光谱成像系统最优训练样本选择方法研究
基于稀疏重构的机载雷达训练样本挑选方法