基于深度多特征融合的CNNs图像分类算法

2022-03-15 09:45黄鹤鸣张会云杨鸿海
计算机仿真 2022年2期
关键词:卷积聚类神经元

李 伟,黄鹤鸣,张会云,杨鸿海

(1.青海师范大学计算机学院,青海 西宁 810008;2.藏文信息处理教育部重点实验室,青海 西宁 810008;3.青海省地理信息中心,青海 西宁 810001)

1 引言

随着大容量存储设备的广泛使用和数字化技术的普及,出现了大规模的图像数据库。图像已成为人们获取信息的主要方式。从浩瀚的图像数据库中搜索图像,需要对数据库中的图像进行分析处理,前提是对这些海量图像进行分类。

近年来,随着大数据和硬件计算能力的发展,神经网络作为一种新兴的深度学习方法,在各个领域不断取得了突破性进展[1]。卷积神经网络(Convolutional Neural Networks,CNNs)[2]是一种带有卷积计算的具有深层结构的前馈神经网络(Feedforward Neural Networks)[3],能更好地获取图像的位置空间和形状信息,有利于图像分类。Dave Steinkraus等人于2005年发现了图形处理器(Graphics Processing Unit,GPU)在机器学习(Machine Learning,ML)方面的独特优势[4],提出了基于GPU的高效CNN训练方法,大幅提高了CNN的运算能力。Alex Krizhevsky等人于2012年提出了AlexNet[5]网络,采用ReLU激活函数并使用GPU分组卷积方式进行并行训练。Sergey Loffe等人于2015年将批标准化(Batch Normalization)[6]应用于神经网络,保证了网络中各层的输出分布基本稳定;同时,大幅降低了网络对初始参数的依赖,提升了网络性能。

CNN具有良好的扩展性和鲁棒性,利用CNN进行图像分类时,能够比较快速且全面提取空间位置和形状相关特征;但是,对颜色特征非常不敏感。CNN通过RGB三颜色通道读取图像内容与读取二值化图像信息内容,在做图像分类时,分类效果几乎没有明显差异,甚至是直接没有差距。由于颜色特征具有很强的鲁棒性和灵活性,因此在图像库检索和分类中广为采用;但是,颜色特征不能体现图像的空间分布信息。所以,根据CNN处理图像分类时,对颜色特征不敏感这个特点,提出了将主颜色特征与空间位置和形状相关特征进行深度多特征融合。通过实验表明,多特征融合对CNNs处理图像分类,具有比较大的影响,使得分类精度比CNN可以提升7个百分点。此外,提取主颜色特征时,使用的是k-means++聚类算法。

2 网络模型

为了更好地读取图像内容信息,深度多特征融合的CNNs网络模型总体框架,如图1所示。

图1 深度多特征融合的CNNs网络模型总体框架

图1中的去噪深度卷积特征,简称为fc,是经过三层卷积神经网络以后的去噪空间位置形状关系信息,如图2所示。CNN的卷积层内部包含多个卷积核,每个卷积核能够提取形状相关特征,卷积层内每个神经元均与前一层位置邻近区域,也被称为“感受野”[3]的多个神经元相连,从而依赖于网络分层学习上下文不变特征[7]:形状和空间位置特征信息,这对图像分类特别有用;另外,CNN还具有对输入的原始图像特征去噪功能,综合以上CNN的特点,图2去噪卷积神经网络结构输出的是去噪深度卷积特征。

图2 去噪卷积神经网络结构

提取的主颜色特征简称为fl,使用的是k-means++聚类算法。然后,级联fc和fl特征,构造深度融合特征fm。

图1深度多特征融合的CNNs网络模型框架中共有四个卷积层。第一个卷积层称为数据特征融合层,充分融合去噪深度卷积和主颜色特征。随后是一个池化层,池化层的作用是降低网络参数,加快融合速度。第二个卷积层称为深度特征融合层,进行进一步特征融合,随后也是一个池化层。第三个卷积层称为特征抽象表示层,该层中的卷积核大小由前两个卷积层中5×5改为3×3,即有助于消除特征中的噪声并提高特征的抽象表示,随后也是一个池化层。第四个卷积层称为特征高级表示层,有助于消除冗余特征并提高代表性特征,随后也是一个池化层。三层全连接层,用于特征分类以及反向传播过程中的参数优化。在网络的最后,采用Softmax层进行分类。Softmax是应对多分类问题的有监督学习方法[8-10],为分类提供重要的置信度,其中0表示置信度最低,1表示最高。

卷积层、非线性激活变换和池化层是CNN的三个基本组成部分[2]。通过叠加多个具有非线性运算的卷积层和多个池化层,可以形成一个深CNNs,分层提取输入特征,具有不变性和鲁棒性[11]。使用特定的体系结构,如局部连接和共享权重,CNN往往具有良好的泛化功能。具有非线性运算的卷积层[7]如下

(1)

3 深度多特征融合CNNs图像分类算法的核心思想

3.1 使用k-means++聚类算法提取主颜色特征

k-means++聚类算法属于“硬聚类”算法,即数据集中每一个样本都是被100%确定得分到某一个类别中。与之相对的“软聚类”可以理解为每个样本是以一定的概率被分到某一个类别中。

原始k-means算法最开始随机选取数据集中k个点作为聚类中心,而k-means++按照如下的思想选取k个聚类中心:假设已经选取了n个初始聚类中心(0

k-means++聚类算法[12]的描述如下:

Step1:从数据集中随机选取一个样本作为初始聚类中心c1;

Step3:重复Step2步直到选择出共k个聚类中心;

Step4:针对数据集中每个样本xi,计算它到k个聚类中心的距离并将其分到距离最小的聚类中心所对应的类中;

Step5:针对每个类别ci,重新计算它的聚类中心ci=1/|ci|∑x∈cix(即属于该类的所有样本的质心);

Step6:重复Step4步和Step5步直到聚类中心的位置不再变化。

3.2 深度多特征融合算法

将图2网络结构输出的去噪深度卷积特征fc和使用k-means++聚类算法提取的主颜色特征fl,按照式(2)级联fc和fl特征,构造出深度融合特征fm。

fm=αfc+βfl

(2)

由于特征维度比较高和有限的训练样本,过拟合是一个可能出现的严重问题。为了解决这个问题,使用了Dropout[4]方法,Dropout方法是一种在学习的过程中随机删除神经元的方法。训练时,每传递一次数据,就会随机选出隐藏层的神经元,然后将其删除,被删除的神经元不再进行信号的传递;测试时,虽然会传递所有的神经元信号,但是对于各个神经元的输出,要乘上训练时的删除比例后再输出。因此,被删除的神经元不参与前向传递,也不再用于后向传播过程。在不同的训练阶段,深度网络通过随机丢弃神经元形成不同的神经网络。Dropout方法可以防止复杂的共适应,神经元可以学习到更加正确的特征。

为了增强网络的鲁棒性,在训练过程中还使用了ReLU激活函数[13],ReLU是一个简单的非线性算子。如果神经元的输出为正,则该函数接受该神经元的输出;如果输出为负,则返回0。ReLU函数的表达式如下所示:

(3)

通过使用ReLU激活函数和Dropout方法,让大多数神经元的输出变为0,再利用多层的ReLU和Dropout实现了一种基于稀疏的深度网络正则化,同时解决了深度多特征融合图像分类的过拟合问题。

4 实验结果及分析

4.1 实验参数与图像库

实验使用的图像库是Corel公司提供的标准图像素材库Corel-1000。该库包含了人物、建筑物、公交车、花卉、动物等10类共1000幅图像,800张作为训练集,剩余200张作为测试集。为了方便网络读取,对图像库进行了预处理操作,将图像尺寸由原来的3*100*128压缩成3*48*48。

深度多特征融合的CNNs网络模型的Epoch设为50,每次迭代次数为8,批处理大小为100幅图像。第一个卷积层的卷积核大小是5*5,滤波器32个;第二个卷积层的卷积核大小是5*5,滤波器64个;第三、第四个卷积层的卷积核大小是3*3,滤波器是128个。卷积步长设为1,填充设为0。池化层步长设置为2,池化窗口大小为2*2。最后,Softmax层有10个神经单元,表示将图像分为10类。

通过最小化损失函数来获得最优解。本研究使用交叉熵误差函数[14]作为损失函数,其表达式为

(4)

要使损失函数最优化,需要用到优化方法,实验采用Adam优化器[15]。结合AdaGrad和RMSProp两种优化算法的优点。综合考虑梯度的一阶矩估计(梯度的均值)和二阶矩估计(梯度的未中心化的方差),计算更新步长。

其更新步骤可总结如下:

1)计算时刻t的梯度

gt=∇θJ(θt-1)

(5)

2)计算梯度的指数移动平均数

mt=β1mt-1+(1-β1)gt

(6)

其中,将m0初始化为0,系数β1为指数衰减率,控制权重分配(动量与当前梯度),默认为0.9。

3)计算梯度平方的指数移动平均数

(7)

其中,v0初始化为0,β2为指数衰减率,控制之前梯度平方的影响情况,默认为0.999。

4)对梯度均值mt进行偏差纠正

(8)

5)对梯度方差vt进行偏差纠正

(9)

6)更新参数,默认学习率α=0.001:

(10)

其中,ε=10^-8,避免除数为0。步长通过梯度均值和梯度均方根进行自适应调节。

4.2 实验结果

本研究将主颜色特征与位置和形状相关特征进行深度多特征融合的卷积神经网络,简称为MCNNs。CNN和MCNNs在测试集上的实验结果见表1。

表1 CNN和MCNNs在测试集的准确率比较

其中,分类算法的提高率为

(11)

Precision=r/a

(12)

其中,a代表图像库中的图像总数,r代表图像库中分类正确的图像数目。

表1的实验结果,是设置α=1,β=1e-5时得到的准确率。经过多次实验证明,空间位置和形状相关特征在深度多特征融合时起主导作用,而主颜色特征起辅助作用,所以β的值要设置的比较小。从表1的实验结果可以看到,由于加入了主颜色特征进行深度多特征融合,弥补了CNN对颜色特征不敏感的欠缺,所以MCNNs比CNN分类准确率提高了5.49%。

从图3的曲线精度对比图可以看到,MCNNs比CNN不仅有效提高了分类精度,收敛速度也相对加快。此外,由于MCNNs和CNN中都使用了去噪深度卷积特征,所以,网络模型的性能相对稳定和健壮。在整个测试集的两条曲线精度对比图上,几乎看不到分类精度存在大幅度起伏。

图3 MCNNs和CNN在测试集上的曲线精度对比图

使用MCNNs网络模型对图像库进行分类时,验证不同的α、β值是否会产生不同的实验效果,故选取不同的α、β值进行实验,表2是其在测试集上的实验结果。

表2 测试集上不同α、β值的实验效果比较

表2中,当α值设置为1,β值设置为1e-5时,准确率是86.5%;而β值被设置为1e-6时,准确率是89%,提升了2.5个百分点。从而可见,选取不同的α、β值时,对MCNNs网络模型产生的实验效果不尽相同。实验使用的标准图像素材库Corel-1000中只有1000张10种类别的图像,图像库样本比较少,所以当α=1,β=1e-6,准确率达到89%时,已经是一个不错的图像分类结果了。

从图4的箱线图中,可以观察到,CNN的最大、最小和中值准确率以及上四分位数和下四分位数均小于MCNNs(β=1e-6)和MCNNs(β=1e-5)。此外,还可以观察到:MCNNs(β=1e-6)的性能也相对稳定,抛出的异常值也是最优的。

图4 MCNNs和CNN在测试集上的准确率

当MCNNs网络模型进行深度多特征融合,使用深度去噪卷积特征和未使用深度去噪卷积特征(NMCNNs)时,在测试集上得到的实验结果见表3。

表3 MCNNs和NMCNNs在测试集的准确率比较

可以看出:进行深度特征融合时,深度去噪卷积特征可以提高图像分类的准确率,相对于NMCNNs,MCNNs的实验性能提升了3个百分点。同时,与表1中使用了深度去噪卷积特征的CNN实验效果相比,融合主颜色特征比只使用深度去噪卷积特征的实验性能提升了1.5个百分点。

5 总结

本研究提出了一种深度多特征融合的CNNs图像分类算法,有效深度融合了图像的主颜色特征和利用卷积神经网络提取的空间位置形状特征,弥补了CNN网络模型只读取图像空间位置信息,对颜色信息不太敏感的不足。实验结果表明,MCNNs不但对图像分类效果有较大程度的提升,而且模型性能更加稳定和健壮。同时,使用不同的权重值,在MCNNs网络模型上进行实验时,对实验性能会产生不同的影响。在未来的研究工作中,逐渐尝试实现模型的自适应权重,使模型性能达到更优。

猜你喜欢
卷积聚类神经元
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
基于数据降维与聚类的车联网数据分析应用
AI讲座:神经网络的空间对应
基于深度卷积网络与空洞卷积融合的人群计数
基于模糊聚类和支持向量回归的成绩预测
仿生芯片可再现生物神经元行为
这个神经元负责改变我们的习惯
基于密度的自适应搜索增量聚类法
研究人员精确定位控制饮酒的神经元