张林鹏,汪西原,2,李 强
(1.宁夏大学物理与电子电气工程学院,宁夏 银川 750021; 2.宁夏沙漠信息智能感知重点实验室,宁夏 银川 750021)
近年来,卷积神经网络(Convolutional Neural Network, CNN)[1]因其在图像处理中的有效性,被广泛地应用在计算机视觉领域研究中,并极大地提高了在图像分类[2]、目标检测[3]以及图像分割[4]等任务中的精度性能。因此,越来越多的研究者将CNN引入图像处理领域,并且证实了基于深度学习的方法比传统方法更具优越性与鲁棒性[5]。池化操作造成特征信息丢失,卷积神经网络使用较多池化操作是导致特征信息不足的重要原因。针对特征信息不足的问题,孟庆祥等[6]利用池化层将得到的特征图进行过滤,保留重要特征,将提取出来的特征重组以形成高阶语义特征进行图像分类,显著提升了分类精度。张晓丽等[7]通过加权融合方法对图像的不同特征进行加权处理,通过多种特征融合的方式,有效提高了图像分类的简洁性。通过改进卷积神经网络的池化方式,可以达到提高特征提取准确率的目的。刘梦雅等[8]通过获取最大池化和平均池化的乘积,引入了池化因子,提高了卷积神经网络的识别准确率。刘万军等[9]构建了一种动态自适应池化模型,提高了模型的识别准确率和收敛速度,达到了优化模型学习性能的目的。以上方法通过特征选择和融合的方式增强了特征信息,提高了模型的识别准确率,但未能减少因池化过程造成的信息损失。因此,本文针对图像分类过程中信息大量损失的问题,提出一种基于双池化的卷积神经网络结构。利用最大池化和平均池化保留不同特征信息的特点[10],采用特征融合的方式将2种池化方式输出的特征图拼接成新的特征图,从而保留图像中更多的特征信息。同时通过遗传算法对神经网络进一步优化,使得识别准确率得到提高。
卷积神经网络是一种受生物学启发的前馈神经网络,包含卷积计算同时具有深度结构。一个基本的卷积神经网络包括输入层、隐藏层、输出层这3个部分,隐藏层又包含卷积层、池化层、全连接层等[11]。卷积神经网络的基本结构如图1所示。
图1 卷积神经网络结构
1)输入层。输入层是整个神经网络的输入,在处理图像的过程中,卷积神经网络的输入层一般表示图像的像素矩阵。比如在图1中,最左侧的三维矩阵的长和宽表示图像的大小,而三维矩阵的深度表示图像的色彩通道。比如黑白图片的深度为1,而在RGB色彩模式下,图像的深度为3[12]。从输入层开始,卷积神经网络通过不同的神经网络结构将上一层的三维矩阵转化为下一层的三维矩阵,直到最后的全连接层。
2)卷积层。卷积层是卷积神经网络的重要组成部分,其功能是对输入数据进行特征提取,包含多个卷积核,是从输入图像中提取特征的第一层[13]。通过使用小方块输入数据学习图像特征来保持像素之间的关系,这个小块的大小为3×3或者5×5。卷积层试图将神经网络中的每一个小块进行更加深入的分析从而得到抽象程度更高的特征。
3)池化层。池化操作可以认为是将一张分辨率较高的图片转化为分辨率较低的图片[14]。通过池化层,可以进一步缩小最后全连接层中节点的个数,保留图像的重要信息,从而达到降低神经网络参数量的目的。
4)全连接层。如图1所示,在经过多次卷积操作和池化操作之后,由全连接层来给出最后的分类结果。经过几轮的卷积层和池化层的处理之后,卷积神经网络将输入的图像生成信息含量更高的特征图,这个过程属于特征提取过程[11]。在特征提取完成之后,仍然需要使用全连接层来完成分类任务。
池化是卷积神经网络的基本操作。池化函数使用某一位置的相邻输出的总体统计特征来代替网络在该位置的输出,使用池化可以看作增加了一个无限强的先验:池化层学得的函数必须具有对少量平移的不变性[15]。当这个假设成立时,池化可以极大地增强网络的统计效率。常用的2种池化方式:最大池化定义为式(1)和平均池化定义为式(2):
(1)
(2)
其中,Havg、Hmax为池化后的值,∂(i,j)为池化窗口内位置为(i,j)的点,m为池化窗口尺寸,c为池化窗口内(i,j)取值的集合。
特征提取的误差主要来自2个方面:1)邻域大小受限造成的估计值方差增大;2)卷积层参数误差造成估计均值的偏移。一般来说,平均池化能减小第一种误差,更多地保留图像的背景信息[16],最大池化能减小第二种误差,更多地保留纹理信息[17]。基于平均池化与最大池化改进的双池化结构,既保留了平均池化提取的背景信息又保留了最大池化提取的纹理信息。
目前在卷积神经网络中大多数只使用一种池化方式,这就造成了信息损失,为了充分利用特征信息可同时使用这2种池化方式。双池化结构如图2所示,对卷积层输出的特征图进行1×1卷积操作,特征图的个数为原来的1/2,然后对降维后的特征图分别进行最大池化和平均池化操作得到2组特征图,将池化后的2组特征图进行拼接。
图2 双池化结构
本文使用的卷积神经网络采用遗传算法(Genetic Algorithm, GA)优化方法对网络参数进行优化[18]。在每次迭代过程中,遗传算法从当前种群中选择“最好”的个体作为双亲来产生子代,以使种群朝最优解“进化”。遗传算法的流程[19]如图3所示。
图3 遗传算法流程图
传统的编码模式将每个网络参数作为染色体的一个元素,而在大规模网络中,这种编码模式将使得染色体结构过于庞大,导致遗传算子失效等问题。一个解决方法是将每个卷积层与全连接层看作一个整体作为染色体的一个元素,即每个染色体元素要么包含一个层的所有连接权重,要么包含一个过滤器的所有值[20]。这种编码模式大大缩减了染色体结构,使其具有更短的运算时间、更快的收敛速度以及更高的正确率。如图4所示。
图4 遗传算法优化卷积神经网络原理图
该算法实现步骤为:
1)初始化:利用Keras初始化数量为pop_size的种群。
2)评估:每个网络的表现基于Keras的model.evaluate()函数给出。
3)适应度分配:使用每个网络的准确性作为适应度值。
4)选择:最适应的个体将直接进入下一代。
5)交叉:对卷积层,该过程随机选择双亲的其中一个,并将对应的过滤器拷贝到子代。
6)变异:如果被选择的是卷积层,那么其中的每一个值由均值为该值、标准差为0.5的高斯噪音代替。如果是神经元,则将每一个权重加上一个来自初始分布的随机数。
7)代替:新子代与最适应的个体共同组成了下一代种群,标志着一次迭代的完成。
本文选择NWPU-RESISC45数据集与Cifar-10数据集进行实验验证。使用Python语言和Keras深度学习框架进行数据预处理和卷积神经网络的搭建;硬件平台选择TITAN XP 12 GB显存GPU的LINUX平台。
Cifar-10数据集包含60 000幅彩色图像,图像大小为32×32,共有10个类,每类6000幅图像[21]。数据集中有50000幅图像用于训练,另外10000幅图像用于测试。测试集的数据,包含每一类各1000幅图像。数据集如图5(a)所示。
高分辨率遥感图像数据集NWPU-RESISC45是由西北工业大学(NWPU)创建的REmote传感图像场景分类(RESISC)的公开可用基准。该数据集图像大小为256×256,共包含45类场景图像,每一类有700幅图像,共31 500幅图像[22]。本文按5∶1∶1划分图像为训练集、验证集、测试集。数据集如图5(b)所示。
(a)Cifar-10示例图
图6为采用不同池化方式的卷积神经网络输出的特征图。从图6可以看出,最大池化和平均池化2种池化方式产生的特征图效果是不同的,即2种池化方式所保留的图像信息是不同的。从不同权重融合的效果图可以看出,赋予2种不同池化方式不同权重,融合得到的特征图效果不同。相较最大池化特征图,双池化结构特征图具有更丰富的背景信息;相较平均池化特征图,双池化结构特征图具有更丰富的纹理信息。同时,权重的不同也会产生不同的特征图,当最大池化权重大于平均池化权重则纹理信息更为丰富,当平均池化权重大于最大池化权重特征图中背景信息更为丰富。因此本文采用双池化结构的卷积神经网络较单一的池化方式可以更大程度上保留图像信息,同时引入遗传算法对神经网络进行优化,实现特征融合权重自动赋值,可以自动获取每个特征的重要程度,从而提升有用特征的权重,抑制当前任务中作用较小的特征。
图6 采用不同池化方式输出的特征图
图7所示为4种不同池化结构VGG16网络在NWPU-RESISC45遥感数据集上的相关曲线,其中图7(a)是识别准确率曲线,max-pool代表最大池化模型的识别准确率曲线,double-pool代表双池化模型的识别准确率曲线,mean-pool代表平均池化模型的识别准确率曲线,middle-pool代表中值池化模型的识别准确率曲线。随着模型迭代次数的增加,每一种池化模型的识别准确率都在提高,但双池化结构模型的情况显然优于其他几种池化模型。图7(b)所示为损失函数曲线,图例同图7(a)。随着迭代次数增加,4种池化模型的损失函数都在不断下降,双池化结构效果相对于其他3种池化模型效果更好。在NWPU-RESISC45遥感数据集上,双池化结构VGG网络在训练精度和损失函数收敛效果上较原有网络有了提升。
(a)准确率曲线
为进一步提高双池化模型的识别准确率,优化不同特征图权重,提高模型学习性能,使用遗传算法对模型进行优化。算法中,pop_size设为100前10个最适应的个体直接进入下一代。选择20个个体进入交配池,产生剩下的90个子代。表1为5种方法在NWPU-RESISC45数据集上的识别准确率,双池化模型的准确率为87.74%,较最大池化模型、平均池化模型、中值池化模型识别准确率分别提高了4.41百分点、9.44百分点、8.01百分点。使用遗传算法优化后,双池化模型识别准确率提高了1.17百分点。
表1 5种方法在NWPU-RESISC45数据集上的识别准确率 单位:%
将本文方法在Cifar-10数据集上进行验证,选取模型为自定义卷积神经网络,该网络包括4个卷积层和2个池化层,卷积核大小为3×3。相关曲线如图8所示,图例同NWPU-RESISC45数据集实验。随着模型迭代次数的增加,每一种池化模型的识别准确率都在提高,但双池化结构模型的情况显然优于其他几种池化模型。图8(b)所示为损失函数曲线,图例同图8(a)。随着迭代次数增加,4种池化模型的损失函数都不断下降,双池化结构效果相对于其他3种池化模型效果更好。
(a)准确率曲线
遗传算法优化双池化模型实验参数同NWPU-RESISC45数据集实验。表2为5种方法在Cifar-10数据集上的识别准确率,双池化模型的准确率为83.04%,较最大池化模型、平均池化模型、中值池化模型识别准确率分别提高了3.37百分点、5.11百分点、4.24百分点。使用遗传算法优化后,双池化模型识别准确率提高了2.68百分点。
表2 5种方法在Cifar-10数据集上的识别准确率 单位:%
本文对卷积神经网络的池化层进行改进,用最大池化层和平均池化层构成的双池化结构替代了网络中原有的池化结构,在保证原有池化作用的同时减少了特征信息的损失,提高了模型的识别准确率,优化了学习性能。采用遗传算法对网络参数进行优化,进一步提高了双池化模型的识别准确率。本文使用高分辨率遥感图像数据集和彩色图像数据集进行实验,识别准确率较传统池化方式有不同程度的提升。同时发现本文算法对遥感图像分类精度提升较为明显,因此将双池化特征加权结构应用于遥感图像处理的其他领域也是值得探索的研究方向之一。实验结果表明,本文提出的方法解决了池化操作造成的特征提取不足的问题,在图像分类问题上取得了良好的效果。