王 达,周雪峰,徐智浩,蔡奕松 ,陈 洲
1.沈阳工业大学 信息科学与工程学院,沈阳 110870
2.广东省智能制造研究所 广东省现代控制技术重点实验室,广州 510070
图像识别与分类技术作为计算机视觉中的一个重要的研究领域,近些年广泛应用于国防和民用的许多领域。但由于识别背景、环境及目标的复杂性,机器视觉图像目标的高效、准确识别具有一定的困难。近些年计算机与互联网技术的进步,使得以神经网络为基础的深度学习得到发展,运用深度学习的主要目的是建立多层神经网络,从而实现模仿人脑机制来分析和解释图像[1-2]。深度学习通过组合浅层特征形成更加抽象的高层特征,以发现数据的更深层次分布式特征表示。目前应用在图像识别、场景识别和物体追踪等方面,并表现出极大的应用价值。但也存在以下问题:对于受到干扰的图像信息,识别效果与精度达不到目标;需要处理大量的训练样本并提取高层次的特征,因此计算模型复杂,计算量极大[3-4];由于没有捕捉到图像中物体的特征信息,整体特征的突然变化对于图像目标的识别非常不利。
针对图像识别领域存在的问题,发展出如卷积神经网络(Convolutional Neural Network,CNN)有效的方法,与普通的神经网络相比,CNN的特点是增加了卷积层和池化层。其中,卷积层的特点提取相邻像素之间的共同特性效果好,具有权值共享特性,能够大量减少神经网络训练过程中的参数数量;池化层的特点则是可以保证位移不变[5-6]。CNN充分利用隐藏层逐层深入地学习图像的抽象信息,更全面直接地获取图像特征,因数字图像是以矩阵来描述,卷积神经网络能更好地从局部信息块出发,进而描述图像的整体结构[7]。虽然CNN可以有效地处理信息,但由于真实数据存在许多干扰,其网络模型通常缺少抗噪能力,鲁棒性不强,且层数较多计算量大。
为应对各种受干扰的图像分类问题,本文改进传统自编码方式与CNN模型,结合两种改进方法,模拟人眼的双目结构,提出一种双并行交叉降噪卷积模型(Double Parallel Cross Denoising Convolution model,DPCDC),同时在该模型的训练过程中讨论不同激活函数以及处理数据的方法对其精度的影响。
自动编码器是对原始信号进行编码,同时解码恢复数据,从而实现编码解码的整个过程[8],避免了传统方法不加生成约束的情况下,容易形成直接将输入向量复制到输出向量,或者只作微小的改变以产生较小的重构误差,使得模型表现效果不佳[9]。自动编码器属于多层前传神经网络是深度学习中常用的模型之一,基于人工神经网络具有网络层次结构的特点。主要由三个部分组成:编码器、解码器、隐含层。工作方式为:原始输入x经过加权、映射之后得到y,再对y反向加权映射输出z。通过反复迭代训练两组的w和b,使得误差函数最小,即尽可能保证z近似x,完成对x的重构,具体公式如下:
其中w与w′为两组权值,b与b′为两组偏置,s()与s′()分别表示不同的激活函数,fθ()、gθ′()分别表示 x到 y与y到z的映射关系。
利用深度特征实现图像的分类与识别,目前主要使用CNN模型。对于CNN的基本结构为:输入层、卷积层、池化层、全连接层及输出层构成。其中卷积层由多个特征面组成,每个特征面由多个神经元组成,它的每一个神经元通过卷积核与上一层特征面的局部区域相连,卷积核是一个权值矩阵(如对于二维而言可为3×3或5×5矩阵)[10]。CNN的卷积层通过卷积操作提取输入的不同特征,设第l卷积层,第l-1层为池化层或者输入层,则第l层的计算公式为:
池化层也称为取样层,紧跟在卷积层之后,同样由多个特征面组成,它的每一个特征面唯一对应其上一层的一个特征面,不会改变特征面的个数取样层旨在通过降低特征面的分辨率来获得具有空间不变性的特征[11]。设第l为池化层,第l-1层为卷积层,则第l层的计算公式为:
其中down()为下采样函数,可将n×n像素里的所有像素相加,下采样作用于图像不重合的区域,因此所得的特征图大小为原来的1/n。β表示为权重,对于2×2的mean pooling而言,权值为1/4。
在CNN结构中,深度越深、特征面数目越多,网络能够表示的特征空间也就越大、网络学习能力也越强,然而也会使网络的计算更复杂,极易出现过拟合的现象。
在传统的CNN中,激励函数一般使用饱和非线性函数(saturating nonlinearity)如sigmoid函数、tanh函数等。激活函数,相比较于饱和非线性函数,不饱和非线性函数能够解决梯度爆炸、梯度消失问题,同时其也能够加快收敛速度[12]。Jarrett等人[13]探讨了卷积网络中使用纠正非线性函数,能够显著提升卷积网络的性能,文献[14]也验证了这一结论。而在一般网络结构中基本使用的不饱和非线性函数的激活函数为线性整流函数(Rectified Linear Unit,relu),又称修正线性单元,是一种人工神经网络中常用的激活函数,通常指代以斜坡函数及其变种为代表的非线性函数。relu函数的计算公式如下所示:
为应对各种大量受干扰的图像分类问题,同时降低训练模型的复杂程度,本文模拟人眼在观察物体时,通过双目和两条视神经来进行的,两条视神经所传递的视觉信息经过交叉传导,形成交叉混合信息以供大脑分析的方法,对现有的自编码方法和CNN模型进行改进,结合这两种改进模型设计出了一种如图1所示,优化的双并行交叉降噪卷积模型,同时在模型训练时,使用批量正则化和改变传统激活函数的方法来提高效果避免过拟合的情况发生。
图1 双并行交叉降噪卷积框图
该模型主要通过4个方面来分析受干扰数据,提升精度。第一,将改进的自编码方式和并行交叉卷积神经网络进行结合,形成双并行交叉网络结构的双并行交叉降噪卷积模型;第二,传入数据进行噪声训练,通过改进的降噪自编码器处理图片,使模型有较强的鲁棒性,更好的泛化能力;第三,将数据通过并行交叉卷积神经网络对图片进行分类处理操作,提高提取特征的能力,使模型进而提高了识别精度;第四,在训练该模型时,改变传统的激活函数以及引入批量正则化的方法,从而进一步地提升该模型的收敛速度以及精度。最终形成的双并行交叉降噪卷积模型具有模型泛化能力强,大幅度降低传统深度学习的复杂度的特点。以下将具体介绍每一部分。
基于自编码原理,设计一种结合卷积神经网络改进式的并行交叉降噪自编码器,如图2所示。结合卷积神经网络的特点,重复的卷积核能够在检测特征时可以不用考虑位置信息,并且共享权值可以极大地减少学习的自由参数个数。其中模型顶层和底层的2条线路用来提取输入图像的高级特征,中间一条执行线路,用来提取输入图像差异性特征信息,首先将数据进行不同破坏率的变化后传入两条并行交叉支路,分别通过一对卷积层处理后,再将数据传输给下一层的池化层,与此同时也将数据传输给交叉输入邻域层用来计算两条线路上每个特征位置与邻域的差异;通过图中nn层改变图片的尺寸,再将数据通过反向卷积处理传到全连接层还原数据,独立完成特征的提取和映射。其特点是融合卷积神经网络既可极大地减少学习的自由参数个数,又可大幅降低深度神经网络的复杂度,但是网络识别精度却没有降低,提高学习效率与实验效果,同时具有较强的鲁棒性,从而增强模型的泛化能力。
图2 并行交叉卷积降噪自编码器
在模型中,交叉输入邻域层用来计算两条线路上每个特征位置与邻域的差异[15]。对于交叉层(cross-input)的计算,fi(x,y)和gi(x,y)分别为两张输入图像的点p(x,y)在第i通道特征映射的值,通过一个n×n的块大小来计算差异,如式(6):
其中,I(n,n)是单位矩阵,N(gi(x,y)表示 gi(x,y)的n×n邻域。
通过交叉熵损失函数(Cross-entropy cost function)来衡量预测值与实际值。与二次代价函数相比,它能更有效地加速模型训练。对于整个模型参数的更新,通过损失函数的值进行反向推导,从而改变模型的权值与偏置。在第L层的损失函数可表示为:
其中,原始输入 xi破坏为和,设为两个破坏量的平均值,向量yi为xi的有损压缩量,zi为重构向量,其目标函数式:
其中,fθ与 gθ′是 xi到 yi,yi到 zi的映射关系。在目标函数最优解的过程中,通过使用目标函数不断迭代更新使得误差值最终达到收敛状态。
本文设计了一种改进的共享并行交叉的卷积神经网络,如图3所示,在训练过程中,并行交叉的卷积层同时对一个图片不同的位置进行特征值提取,在模型网络中有3条执行线路,顶层和底层的2条线路用来提取输入图像的高级特征,中间一条执行线路,用来提取输入图像差异性特征信息。
图3 并行交叉卷积网络
这种模型在相应层实现了参数共享,可有效减少整个网络参数的个数,大幅降低深度神经网络的复杂度,但是网络识别精度却没有降低。因为图像的空间联系是局部的,每个神经元只需要感受局部的图像区域,然后在最高层将这些感受到不同局部的神经元综合起来就可以得到全局信息。不同的卷积核参数值不同,这样就实现多种特征信息的提取,但是大幅降低了网络总体的参数数量,能在网络参数量减少的情况下,保证整个深度神经网络的识别精度,同时这种模型也可以提高提取特征的能力。
设XL是前一层的输出值,wL是权值矩阵,gL是变换函数(或激活函数),在前向传播中,输出函数可记为:
在模型中,交叉输入邻域层用来计算两条线路上每个特征位置与邻域的差异,通过公式(6)计算。
对于模型的损失,通过Log-loss误差函数求出。对于整个模型参数的更新,通过损失函数的值进行反向推导,从而改变模型的权值与偏置。其在第L层的损失函数可表示为:
式中,xi为样本,n为样本总数,yi为样本标签值,采用L2正则化(l2-norm),λ为正则化项系数,用于抑制过拟合。可使用批量正则化,效果为减少参数的人为选择,可以取消L2正则项参数,或者采取更小的L2正则项约束参数。整个网络的目标函数为:
在求取目标函数最优解的过程中,输出层通过式(11)进行更新(同理,可对偏置进行更新),即:
在求取目标函数最优解的过程中,通过不断使用公式(12),本文使用梯度下降法进行迭代,使得误差值最终达到收敛状态。
为避免过拟合以及提高精度,本文使用批量正则化(batch normalization)方法,在数据进入激活函数之前,先对数据进行归一化操作[16],再选取较好的激活函数进行计算。
对于批量正则化处理方法,所谓批量正则化中的批量是指随机梯度下降中的批量样本,正则化是指让每一层激活值的每一维度的概率分布转变为均值为0,方差为 1的稳定概率分布。通过数据进入激活函数之前,先对数据进行归一化操作。其特点是可以把过大或过小的数据进行归一化,可使整体使用一个较高的学习率,避免传统方法需迁就小数据的维度;其次是归一化后使得更多的权重分界面落在了数据中,降低了过拟合的可能性,因此使用一些防止过拟合但会降低速度的方法。
假设某一层的输入为x=(x(1),x(2),…,x(k)),共k维,一批样本集合为B={x1,x2,…,xm},批量正则化的公式如下:
其中,x(k)表示输入x的第k维,uB表示对样本集合B的期望,表示对样本集合B的方差,表示输入x的正则化结果,y(k)表示对x(k)批量正则化后的结果。r(k)、β(k)表示待学习的参数,通过训练迭代求解,以增加输出概率分布的稳定性。
对于激活函数,本文选取relu6、sigmoid、elu激活函数替代传统激活函数relu进行对比实验,经实验验证,基于本文方面relu6与elu相对于relu表现效果更好,收敛更快。relu6、sigmoid、elu函数计算公式如下所示:
结合以上各部分具体描述,以及两个并行交叉网络结构,形成图4所示的双并行交叉降噪卷积模型,该模型首先具有降噪能力强,鲁棒性好,泛化能力强和准确率高的特点,其次避免过拟合,加快收敛速度。
对于整体的整体的损失计算如下:
图4 双并行交叉降噪卷积模型
其中,α,β为降噪和分类权重,loss为整体的损失。在目标函数(20)中,最优解的过程通过使用目标函数不断迭代更新使得误差值最终达到收敛状态。
对于权值w和阈值b的更新使用公式(22)与(23),其中η为学习率。
其中,准确率的计算公式如公式(24):
其中,a为准确率,gZ为一批测试中识别正确的个数,g为一批测试总个数。
本文实验使用Windows系统,基于tensorflow1.2机器学习框架通过spyder软件进行实验,其中图5为软件效果图展示,使用的数据集为minst数据集,为手写数字数据库,训练库有55 000张手写数字图像,测试库有10 000张,每个图像784=28×28。其中表1、2为模型两部分的各层参数,通过在图片中人为加入噪声模拟受损图片。由于数据集是识别数字0~9的手写图片,所以解决的问题为图片分类问题,需要分类数为10种类型。
图5 软件截图效果显示
表1 自编码网络
本文对于模型激励函数的选取,通过在卷积层与全连接层进行实验分析,选取激活函数为使用最广泛的relu与relu6、sigmoid、elu进行4组对比实验,图6、7为在不同激活函数情况下准确率的变化。
表2 卷积分类网络
图6 卷积层不同激活函数准确率变化曲线
图7 全连接层不同激活函数准确率变化曲线
根据实验表明,对于本实验,在卷积层进行不同激活函数实验时,relu6虽然在准确率上与relu相似,但在收敛速度上relu6明显优于relu;在全连接层进行不同激活函数实验时,在最终准确率上elu的效果明显优于relu的效果。经过实验分析,模型在卷积层使用relu6激活函数,在全连接层处使用elu激活函数效果最佳。以此模型选取在卷积层使用relu6激活函数,全连接层使用elu激活函数。
如图8、9所示,图8为原始图片加噪声效果,图9为传统降噪方法与本文降噪效果对比展示。在图8中显示,原始图的特征显示为红色部分。对比发现,传统编码降噪方法虽然可以去除图片中的噪声干扰,还原部分原始图片中红色部分,但效果不是特别明显,改进的降噪自编码器的效果明显优于传统自编码器的效果,可以有效地处理图片中的干扰,虽然无法全部排除干扰,但效果明显优于传统方法,对于传统方法几乎无法还原图中数字3与4,改进的方法则可以相对地还原出原始效果。
图8 原始图片加噪声效果
图9 降噪效果对比展示
图10 为数据集随机中选出个体展示,图11与图12为三条线路上卷积后的部分可视化效果图展示,图13与图14为三条线路上池化后的部分可视化效果图展示。
图10 数据集随机选出个体
图11 降噪阶段卷积后部分效果
在不同情况下分别进行5组实验取平均值,选取10个不同图片损坏程度,当图片损坏程度为10时,说明图片几乎无法分类。分别表示测试图片集不同受损情况。建立表3至表5,选取BP与CNN与本文双并行交叉降噪卷积模型(DPCDC)进行对比实验,同时记录不同迭代次数下准确率的情况。
图12 分类阶段卷积后部分效果
图13 降噪阶段池化后部分效果
图14 分类阶段池化后部分效果
表3 测试图片无损失 %
表4 测试图片损失率为2 %
表5 测试图片损失率为5 %
实验结果表明,对于图片分类问题BP精度在任何情况下都无法达到CNN与DPCDC的精度。在图片受到干扰时CNN模型精度明显下降,当图片受损率达到程度5时,分类图片的精度与BP相差不大。而本文DPCDC模型当图片无损失时,识别精度与CNN相似,当损失继加大时,虽然精度开始下降,但效果明显优于CNN模型,损率达到程度5时也可以满足简单的分类处理。
图15为在损失率为程度5时,有无批量正则化对比实验,当模型中不使用批量正则化时,5次实验中有1次出现图中红色线无批量正则化的实验结果。实验结果说明当无批量正则化操作时,实验结果容易陷入过拟合,影响准确率。
图15 有无批量正则化对比实验
为了应对各样大量受干扰的图像分类问题,改进传统编码方式与CNN模型,结合两种改进的方法,提出了一种双并行交叉降噪卷积模型。首先传入数据进行噪声训练,通过改进的降噪自编码器处理图片,使模型具有较强的鲁棒性,更好的泛化能力;再将数据通过并行交叉卷积神经网络对图片进行分类处理操作,提高提取特征的能力,使模型进而提高了识别精度。双并行交叉降噪卷积模型优点在于增强模型的泛化能力,也可大幅度降低传统深度学习的复杂度,对于受损图片进行识别,效果明显优于其他传统方法。而在训练该模型时,改变了传统的激活函数以及引入了批量正则化的方法,从而进一步地提升了该模型的收敛速度以及精度。实验结果证明了模型的合理以及有效性。