APP下载

基于多重卷积神经网络跨数据集图像分类

2018-11-17刘鑫童刘立波

计算机工程与设计 2018年11期
关键词:卷积神经网络分类

刘鑫童,刘立波,张 鹏

(宁夏大学 信息工程学院,宁夏 银川 750021)

0 引 言

利用少量的有标签图像训练样本,构建一个合理准确的模型对来自不同数据集的测试样本进行预测分类,是跨数据集图像分类工作主要解决的问题。传统的分类学习必须使用大量可利用的训练样本,还要保证训练样本与测试样本服从同一分布[1]。跨数据集分类学习如果无法满足这一条件约束,容易造成训练图像过期、人工图像标记任务繁重、训练模型失效和评估分类不准确等问题。通过研究跨数据集共同类图像的内在联系和共同特征,能够减少图像标记和提高分类模型利用率。对不同数据集进行有效特征提取是研究的关键[2]。

当前的跨数据集分类方法主要包括特征选择和特征转换两类。特征选择是将训练样本和测试样本中的共有特征直接从中分解出来[3],更新设置样本特征在整个分类模型中权重。Herndon N等[4]构建了一种在域适应设置中基于生物序列建立的朴素贝叶斯分类器算法,结合任何可用标记数据和未标记的目标数据,减轻监督分类器手动标记大量序列的需要。Zhu Y等[5]提出了一种异构数据集学习方法,将每一张图像上的Tag标签作为连接多个数据集合的纽带。朱广堂等[6]充分考虑跨数据集图像数据分布的方差,对训练样本方差最大化约束,结合L1范数正则化的Logistic回归函数,保证高维度图像特征提取。特征转换是通过高维度特征到低维度特征的非线性映射,实现训练样本和测试样本尽可能达到相同分布。Yeh Y等[7]先将跨数据集问题通过典型相关分析方法(CCA)转换为相关子空间问题,再用核典型相关分析方法(KCCA)提取相关子空间的非线性特征。赵鹏等[8]通过核主成分分析(KPCA)将样本映射到跨数据域子空间,利用最小化最大均值差异(MMD)减小条件和边缘概率分布差异,并分别设置权重调节因子。Pan S J等[9]通过转换成分分析(TCA)的方法将图像数据映射到分布近似相同的子空间,在子空间中使用无监督和半监督特征提取方法,达到处理大型数据集分类的要求。

相关研究在跨数据集分类领域取得了一定的进展,但是仍然存在一些问题。特征选择的方法预处理过程复杂,图像依赖大量人工标记,分类器适应性较差;特征转换的方法不能充分考虑数据分布差异,子空间内很难实现参数共享,而且数据降维难以解决过拟合的问题,因此影响分类效果。

本文尝试采用深度学习网络模型解决跨数据集图像分类问题,提出一种基于多重卷积神经网络结构的图像分类方法。在简单预处理后采用多重卷积层增强了特征提取能力,通过Softmax函数提高了分类器适应能力,Dropout方法和L2范数正则化有效减少过拟合,并实现网络参数共享提高了分类模型的整体稳定性。本文利用深度学习思想,避免了繁重的图像标注工作,通过多重卷积神经网络自动地从不同分布的数据集图像中提取特征,采用经典的公共数据集进行测试,表明该方法具有特征提取能力更强,平均准确率更高的优点。

1 多重卷积神经网络的构建

卷积神经网络是一种源于人工神经网络的深度学习方法,与一般神经网络相比较为高效。其优点在于图像分类过程预处理工作较少,避免了人工设计和提取特征,具有较好的自学习能力和很强的自适应性,已广泛应用于多个研究领域[10]。本文充分考虑跨数据集图像分类特点,设计了一种多重卷积神经网络结构,首先在最初的卷积层提取低级特征,随后采样统计后通过连续卷积层得到高级特征,继而选取更适合的激活函数,使得优化网络在复杂跨数据集情况下具有更好的泛化能力。

如图1所示,本文神经网络模型包括5个卷积层(C1-C5)和2个池化层(S1-S2),原始图像尺寸大小为32*32,由输入层进入网络模型,由输出层输出10类中概率最大的类别,对分类进行预测。由于该模型采用局部连接和权值共享,保持了网络的深层结构,因此模型较容易训练且具有良好的泛化能力。在本文提出的多重卷积神经网络中,图像的特征提取和采样统计分别由多个卷积层和池化层自动完成。

图1 多重卷积神经网络结构

1.1 多重卷积层

卷积层是卷积神经网络的核心,在特征提取中起到关键作用。在多重卷积神经网络中,卷积层的图像单元由若干个具有相同尺寸的特征图组成,内部每个单元都通过一个被称为卷积核的矩阵进行卷积计算操作。本文对第一个卷积层(C1)设置大小为5*5的卷积核,对其它4个卷积层(C2-C5)设置大小为7*7的卷积核。由卷积核进行卷积操作后,需要经过一个激活函数才能得到输出特征图。激活函数能够提高网络的特征学习能力[11]。常用的卷积层激活函数有Sigmoid函数和ReLUs函数[12],其数学表达式分别为

Sigmoid函数:f(x)=(1+e-x)-1

(1)

ReLUs函数:f(x)=max(0,x)

(2)

函数曲线如图2所示。从图2可以看出,相比于Sigmoid函数这种饱和非线性函数,ReLUs函数的优点是梯度不饱和。如果x<0,f(x)=0,如果x>0,f(x)=x,强制将小于零的数据置为零,因而卷积神经网络具备稀疏表达的能力。这就能够在反向传播过程中减轻梯度弥散,使得网络前几层参数可以得到很快更新。同时,Sigmoid函数需要指数级运算,而ReLUs在计算激活值时只需设置阈值,使得运算过程得到简化。由于采用ReLUs函数作为非线性激活函数使得深度网络学习不需要预训练,更适合跨数据集分类情况,加快了计算速度。因此,本文设计的多重卷积神经网络中,所有卷积层的激活函数都使用ReLUs函数。

图2 两类激活函数图像

C1层的输入为

(3)

其中,w为卷积核,*表示2维卷积,x1-xi为特征图的输入,bj为偏置,l为卷积层数,f(·)表示激活函数ReLUs函数。则输出为

(4)

由于C1层的卷积核大小为5*5,因而每个神经元与输入图像有5*5*3的连接区域,即每个神经元会产生75个权值参数。又因为有64个32*32*1的特征图,连接特征图的权值参数为65 536个,因此共产生75*65 536=4 915 200个权值参数。本文为降低模型复杂度和硬件设备资源消耗,在训练和测试中采用权值共享的连接方式。每个特征图上的参数和阈值均实现共享,则卷积操作只需要75*64+64=4864个权值参数。

C1层卷积输出得到的特征图作为C2层和C3层两个卷积的输入。在C1层后,分别采用两个连续卷积层能有效增强模型的抽象能力。C2层和C3层卷积后输出的特征图表达式为

(5)

C2-C5层卷积层的输入是通过一个可以学习的7*7大小卷积核与前一层的一个小邻域内神经单元相连接,并提取出该领域局部特征,增加了网络的非线性能力。在提取特征时,同一个特征图使用相同的卷积核。C4层和C5层卷积后输出的特征图表达式为

(6)

在对跨数据集图像分类实验时,容易出现过拟合,即训练样本输出与真实结果相同,但是测试样本输出与真实结果产生极大差异。为了解决过拟合问题,增强模型的训练能力和适应性,本文分别在两个卷积层之间采用Dropout方法。Dropout是将卷积层神经元节点的输出以概率为0.5的方法停止权重设置,使得每次权值的更新节点不再固定不变,而是以更加随机的方式更新神经元,暂时停止一部分神经元节点的权重设置,增强了网络的泛化能力,有效防止过拟合,使网络模型训练出的结果更具一般性。

1.2 池化层

输入图像通过两组连续卷积层进行特征精化并取均值,进而在下一个池化层降维,完成对特征的采样统计。本文将C4层和C5层的两个卷积操作输出取均值后,作为池化层的输入。池化层将每张输入特征图分成不重叠的矩形区域,本文采用2*2大小的区域。池化层通常采用平均池化和最大池化两种方法,对图像区域取平均值和最大值来描述卷积特征。与平均池化相比,最大池化能够降低卷积层参数误差造成的训练实验偏移误差,更好地保留图像特征,因此本文实验池化层采用最大池化方法。在池化层中,特征图个数保持不变,大小减小为原来的一半。池化层的数学表达式为

(7)

其中,p(·)为最大池化函数,β为权重系数。最大池化操作降低了上层的计算复杂度,并具有一定的平移不变性。

2 正则化损失函数的网络模型

通过多重卷积层和池化层的特征提取和特征采样,将在全连接层产生600维的特征向量,最终利用输出层的Softmax损失函数进行分类。

2.1 Softmax损失函数

logistic主要针对二分类问题,Softmax函数[13]对logistic进行改进,可以解决多分类问题。假设m个输入特征x(i)和样本标签y(i)记为

{(x(1),y(1)),(x(1),y(1)),…,(x(m),y(m))}

则Softmax回归的损失函数如下

(8)

其中

k为样本标签的种类数,θ为模型参数,hθ(x(i))为假设函数,用作预测样本x(i)属于每一类别的概率。通过最小化Softmax损失函数可以求得θ的数值,从而估计一个新样本的类别。Softmax损失函数实质是计算所有值用e的n次方,全部求和后分别计算每个值占的比率。由于分类的结果互斥,使得计算出的标签值唯一,因此保证了跨数据集图像中的所有样本图像只能归属一类。

2.2 L2范数正则化

数据中极小的波动往往会引起较大的损失函数值变化,会造成模型过拟合,影响预测性能。而L2范数能够通过压缩回归系数得到较小的模型参数值,从而避免过拟合。L2范数是指所有权重的平方和除以样本个数,再乘以正则项系数。

引入L2范数的Softmax损失函数如下

(9)

其中

3 实验结果及分析

本文所有实验都是在同一台机器上进行,系统为Ubuntu 16.04,编程语言为Python 2.7;Intel Core i5-4200(2.79 GHz),内存8 G,显卡为Nvidia Geforce GTx950,显存为4 GB;操作平台为Tensorflow深度学习系统框架。

3.1 数据集介绍

在研究跨数据集分类问题时,采用的经典公共数据集有Caltech256、Amazon、Webcam和Dslr[14]。Caltech256数据集囊括不同类别的图像,其图像具有视角各异和背景复杂的特点,被大量应用于图像识别和分类实验的训练和测试;Amazon数据集中所有图像均来自于购物网站Amazon商城中的商品展示图像;Webcam数据集中的低像素图像是由网络摄像头拍摄生活实物获得的;Dslr数据集中的高像素图像来自数码单反相机,本文选取以上4个具有不同背景和拍摄环境的数据集进行实验训练和测试,以保证实验结论的准确性和普遍性。本文选取所有4个数据集的共同类为数据样本。这10类共同类图像分别是:双肩背包,山地自行车,计算器,头戴式耳机,电脑键盘,笔记本,电脑显示器,鼠标,咖啡杯,投影机。其中山地自行车类在4个数据集下的部分抽样图像,如图3所示。从图3看出,同一类图像在不同数据集中存在较大差异。

图3 不同数据集共同类图像对比

3.2 图像预处理

本文将原图像转换为灰度矩阵后,利用中值滤波消除图像噪声,滤波器窗口大小为2*2。由于部分图像经过滤波器后显示为几乎全白或呈现无规律的黑色点状物,因此本实验删除一些无意义图像,又通过随机裁剪和旋转对数据扩增。实验中用到的图像数量见表1。原始图像经过中值滤波等预处理之后,才能进行训练或评估。同时,为增加数据集大小以及增强训练结果的普遍性,对图像随机翻转和亮度及对比度变换。

表1 预处理前后图像数量对比

部分原数据集图像由预处理到多重卷积神经网络输入特征图的变化过程,如图4所示。从图4可以看出,原始图像经过中值滤波预处理后能去除噪声,本文提出的网络模型能有效提取输入特征图。

3.3 结果分析

首先,本文基于多重卷积神经网络结构的图像分类方法,从Caltech256、Amazon、Webcam和Dslr4个数据集中依次选择两个不同数据集分别作为训练集和测试集,形成6对组合进行对比实验,共进行了12组实验。用TensorBoard对所有实验记录了训练多重卷积神经网络迭代15 000次的loss值曲线。图5展示了Caltech256分别与其它3个数据集跨数据集实验结果,“-”前面表示训练集,后面表示测试集,横坐标为训练次数,纵坐标为loss值。通过图5观察其loss值的变化曲线,可以看出该模型收敛速度较快。同时,在训练超过7000次后,所有实验的loss值均降到0.5以下,并维持在0.2-0.3之间,分类器适应能力较好,收敛速度和收敛效果较好;同时,多重卷积神经网络参数共享可以降低网络复杂度,采用Dropout方法和L2范数正则化有效避免网络训练过拟合,特征提取能力更好。

图4 图像预处理过程

其次,为验证本文多重卷积神经网络的分类效果更具优势,实验中采用了转换特征学习方法(JDA)[15]、转换主成分分析方法(TCA)、核主成分分析的方法(KPCA)及本文方法共4种方法在Caltech256、Amazon、Webcam和Dslr这4个数据集中进行跨数据集图像对比测试分类实验,准确率对比结果见表2。由表2中数据可知,“Caltech256-Amazon”、“Caltech256-Webcam”、“Caltech256-Dslr”、“Amazon-Caltech256”、“Amazon-Webcam”、“Amazon-Dslr”、“Webcam-Caltech256”、“Dslr-Amazon”、“Dslr-Caltech256”这9组对比实验中,本文方法均比传统的JDA方法、TCA方法、KPCA方法更高。

图5 训练过程loss曲线

表2 几种方法准确率对比结果

其中,“Caltech256-Amazon”这组实验本文方法比传统JDA方法的准确率提高明显,从44.78%提高到74.23%,提高了29.45%。综合所有12组对比实验结果,与传统JDA方法相比,本文方法的平均准确率从46.31%提高到60.11%,提高了13.80%;本文方法比TCA方法和KPCA方法也分别提高了12.08%和10.63%。从表2可以看出,由于利用深度学习模型,采用多重卷积层增强了特征提取能力,充分考虑跨数据集图像差异,提高了分类器适应能力,因此分类的平均准确率较高。

最后,为验证ReLUs函数比Sigmoid函数更适合做激活函数,本文又在相同条件下使用不同激活函数进行对比实验。由于训练迭代7000次后loss曲线趋于平缓,因此主要分析了迭代7000次之前的情况。图6为“Caltech256-Webcam”这组实验对比结果。由图6可以看出,在训练过程中,采用ReLUs函数作为非线性激活函数的一组实验loss值明显下降更快。在训练1000次到4000次之间,采用ReLUs函数实验loss值从5.5降到0.5,而采用Sigmoid函数实验loss值从5.5降到2.5,因此,采用ReLUs函数作为激活函数收敛效果更好,有利于图像特征提取,更适合跨数据集分类情况。

图6 Sigmoid和ReLUs的loss曲线

4 结束语

针对传统方法的不足,本文提出一种基于多重卷积神经网络结构的跨数据集图像分类方法,验证了深度学习网络模型在解决不同数据集的图像分类问题中的可行性。充分利用多重卷积神经网络更好的特征提取能力和快速收敛的特性,通过在Caltech256、Amazon、Webcam和Dslr经典数据集上对多重卷积神经网络的评估测试比较,验证本文方法能有效地解决跨数据集下训练网络特征学习不完全和分类器适应能力不佳的问题,并获得了更高的平均分类准确率。由于使用Dropout方法和L2范数正则化能够有效抑制多重卷积神经网络过拟合的现象,同时网络参数共享降低了网络复杂度,从而提高了分类模型的整体稳定性。采用不饱和非线性函数ReLUs函数作为激活函数,能够使该网络收敛能力提高,并使网络参数自动优化,更好地适应跨数据集分类的复杂情况。相比于传统的分类方法,本文提出的多重卷积神经网络模型分类方法在跨数据集图像中的特征提取能力更强,平均分类准确率更高,具有实际应用意义。

猜你喜欢

卷积神经网络分类
基于3D-Winograd的快速卷积算法设计及FPGA实现
分类算一算
神经网络抑制无线通信干扰探究
从滤波器理解卷积
分类讨论求坐标
数据分析中的分类讨论
基于傅里叶域卷积表示的目标跟踪算法
教你一招:数的分类
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用