1. 引言
如今图像的特征提取与分类已经成为计算机视觉中最重要的研究领域之一,卷积神经网络(Convolutional Neural Network, CNN)更是依赖其良好的特征提取能力和泛化能力,在其领域获得了巨大成功。卷积神经网络的快速发展一方面得益于计算机性能的大幅提升,使得构建并训练更大规模的网络不再受到硬件水平的限制;另一方面得益于大规模标注数据的增长,增强了网络的泛化能力Lecun等 [1] 提出Le Net-5模型后更加积淀了卷积神经网络在图像处理领域的重要性。继Lecun之后,人们又对卷积神经网络的结构和内部方法做了许多改动和优化,比如Krizhevsky等 [2] 提出的Alex Net中使用了Relu激活函数来代替Sidmorg函数,并首次引入Doupout来增强网络的泛化能力。在这之后又提出了VGGNet-16 [3]、GoogLeNet [4]、ResNet-50 [5] 等优秀的网络架构,不仅增加了网络深度和准确率,还解决了网络过拟合等问题。2016年Huang [6] 等提出了一种DenseNet模型缓解了消失梯度问题,加强了特征传播,鼓励特征重用,并大大减少了参数的数量。此外Hinton [7] 等人在2017年提出胶囊网络(Capsule Network, CapsNet)更是改变了人们对卷积神经网络的认识,解决了CNN对物体之间的空间辨识度差及物体大幅度旋转之后识别能力低下的两个缺陷。
虽然以上网络对卷积神经网络做了诸多创新,但对卷积这一过程几乎没有改变,基本只是停留在对卷积核大小的改变以及卷积核与前一层的链接方式的改变上。卷积层作为卷积神经网络的主要部分,完成了对特征的提取从而达到更好的分类效果。通过研究发现卷积层的浅层用来提取边缘和背景等轮廓特征可以看作为边缘检测器,深层网络用来提取花纹等细节和更抽象特征 [8],但是现在几乎所有的卷积核都为矩形,若想使其更好地提取图像特征,从而提高网络精确度,只能通过改变卷积核的大小来实现,而卷积核大小的改变会使其参数迅速增长,不利于神经网络的计算与求解 [9] [10]。这使得卷积核不能更好地发挥其作用,那么如何使卷积核能够更好地提取目标特征便成为一个重要的问题。本文以3 * 3的卷积核为例,通过对卷积核形状的改变使得卷积核的感受野发生变化,从而使得其对于某种特定的特征具有更好的提取效果,使得卷积核更加高效地提取图片特征以至于增加卷积神经网络的特征提取能力以及分类正确率 [11] [12]。
2. 卷积神经网络(CNN)
首先给出卷积神经网络的结构以及卷积核的概念。
卷积神经网络通常包括卷积层、池化层、全连接层和输出层,其组合方式一般为卷积层和池化层的交替,最后是全连接层和输出层。如图1所视:
![](//html.hanspub.org/file/5-1541905x9_hanspub.png)
Figure 1. CNN network structure diagram
图1. CNN网络结构图
卷积神经网络的参数是通过最小化代价函数
来得到,即
, (1)
其中X为所有样本的集合,n为样本容量,
为样本
的监督值,K为卷积层个数,第k个卷积层的输入和输出单元数分别为
和
,
为第k个卷积层中第j个输出单元所对应的卷积核,
为第k个卷积层中第j个输出单元所对应的偏置量
,
,
,为各个卷积核的偏置量,
为CNN网络当输入为x时的输出。通过最小化代价函数来求解w,b从而得到完整的网络。由于卷积核中的参数与偏置量是优化模型(1)的最优解,所以,从理论层面上分析,卷积核越大,效果越好,解释如下:由于高阶卷积核可以通过低
阶卷积核外围补0得到,如:
所以,最优的三阶卷积核置于五阶卷积核范畴中比较,其仅仅是个五阶可行解,或者可以理解为五阶卷积核当其周围全为零时的条件最优解。从而,CNN中卷积核阶数越高,网络精度越高。但是,由于模型(1)的求解是近似的,其精度受到参数个数及算法本身的影响 [13],高阶卷积核的参数维度以平方级递增,对求解的精度和效率有严重影响,也不利于模型深度的增加,为了避免高阶卷积核的这种负面影响,实际使用时常常放弃高阶卷积核在理论上的优势,选用低阶卷积核。
3. 异形卷积核
基于以上的分析,我们提出异形卷积核的概念。在不提高参数维度的情况下,拓宽了卷积核的感受野,使得低阶卷积核能在一定程度上拥有高阶卷积核的优势,从而提高CNN的分类正确率。下面我们以3 * 3的卷积块为例,3 * 3的几种异形卷积核如图2所示:
(a) 左凸异形 (b) 右凸异形(c) 上凸异形 (d) 下凸异形(e) 叠加感受野
Figure 2. Shaped convolution kernel and its receptive field
图2. 异形卷积核及其感受野
如图2(e)所示将几种异形卷积核叠加在一起,可以扩展卷积核的感受野。从结构上看相比于矩形卷积核,异形卷积核也有利于对角特征的描述。
由上图2所示的卷积核的变化方式,那么还存在四种阶梯型的卷积核,若将这四种卷积核应用于卷积神经网络中只能改变其卷积的计算逻辑,无疑会增加网络的计算量。而提出异性卷积核的目的是为了在不增加网计算难度和参数数量的情况下改变其卷积核的感受野,所以这四种不适用与本文所提出的网络结构,所以不再讨论范围内。
4. 融合异形卷积核和矩形卷积核的卷积神经网络
4.1. 异形卷积核的实现
以下任以3 * 3的卷积核为例。
假设
为3 * 3的标准卷积核,
为图像,
为A卷积B后的图像,则
,(2) 其中
,
,(这里规定:
,
或
,
时
)对于如图2(a)所示的异形卷积核(其元素如图中标记)记为
,令
, (3)
(4)
其中
,
若记,
,
,则
的偶数行与
与图片B卷积后的图片偶数行相等。(我们把
称为矩阵B的“移位矩阵”)。
分析表明,仅看偶数行
与B卷等于A与
的卷积。
如果删除矩阵
的第一行像素记作
,标准3 * 3卷积核A与矩阵
进行步长为2的卷积,就等于图2(b)卷积核与矩阵B做步长为2的卷积。设P为监督样本图像集合,P1 = {X|X是Y经公式(4)的变化所得图像,Y属于P},对P2 = {X|X是Y删除第一行并在最后一行补0得到的图像,Y属于P1}。通过对于一般的图像,删除第一行像素后(最后一行补0),其特征信息几乎不会变化,在获取图像特征时P1和P2几乎等价,通过深度学习得到的卷积核应该近似相同。基于上述的分析,以P1作为监督样本,利用CNN进行学习(卷积时变步长为1),就相当于同时用到了图2(a),图2(b)所示的卷积核。同理可以用相同的思路处理图2(c),图2(d)的卷积核,也就是对图像做纵向的移位,然后使用矩形卷积核进行卷积。这样可以通过对于图片的变化使得在使用同样的卷积核的时候使其感受野增加,对于图像的改变也使得异形卷积核在CNN中更加容易实现。异形卷积核的实现如图3所示。
![](//html.hanspub.org/file/5-1541905x50_hanspub.png)
Figure 3. The realization of the special-shaped convolution kernel
图3. 异形卷积核的实现
4.2. 融合移位图片的卷积神经网络
基于以上的分析将移位的图片输入到CNN中进行学习,会使得卷积神经网络第一层的卷积核变为异形卷积核,从而提高网络第一层的感受野。但是每一种移位方式(纵向或横向)只能对应训练一个网络。且通过实验发现在使用不同的移位方式训练出来的网络,会使某些类的分类精度变高而另一些类的分类精度变小,这样使得总体分类精度并没有发生变化甚至降低,所以我们提出一种联合两种异形卷积核的卷积神经网络的分类模型。这个模型中我们需要建立3个独立的神经网络,分别将以不同方移位的图片放入相同的网络结构中进行学习,最后将softmax层的概率相加求和再进行分类。这样将两个网络的分类概率相加后可以使得其分到正确的类别。虽然计算量增大且网络参数变多但是可以大幅提高网络分类精度。网络结构如图4所示(注意网络训练的时候是分开训练的):
融合网络需要对所有的训练样本图片做移位操作(横向和纵向)。分别用正常图片和移位后的图片训练各自的网络,这样可以训练出3个独立的CNN网络,将训练好的3个网络的参数保留,在其输入层前加入对图片做移位操作的函数(原图训练的网络不加),然后将其输出层舍去,把softmax分类概率相加求和构成新的输出层。这样构成一个新的网络,这个网络实际包含了三个相互独立的CNN,它们的输入是将同一张图片做不同的移位操作而得到的,所以每个独立的网络输入其实各不相同。
5. 实验
本文在MNIST、Fashion MNIST 和CIFAR-10三个数据集上进行仿真实验。MNIST数据集来自美国国家标准与技术研究所National Institute of Standards and Technology (NIST)。共70,000个手写数字图片大小为28 * 28,其中训练集60,000个,测试集10,000个。Fashion MNIST是MNIST数据集的升级版,两者格式大小相同,Fashion MNIST更具有挑战性。CIFAR-10数据集由10个类的60,000个32 * 32彩色图像组成,每个类有6000个图像,有50,000个训练图像和10,000个测试图像。使用MATLAB深度学习架构进行实验分析,为证明异形卷积核相对于传统卷积核的优势所在。构建了两种简单卷积神经网络。如图1和图5所示。
分别用移位的图片(横向和纵向)和正常图片分别训练三个神经网络(使用图1所示的网络结构,卷积层第一层用8个3 * 3的卷积块,第二层用16个3 * 3的卷积块,第三层16个3 * 3的卷积块,池化层采用2 * 2步长为2的最大池化 [14] ),训练过程使用具有动量的随机梯度下降法 [11] [12] 训练网络,初始学习率为0.1。我们先取MNIST每个数字的训练集的百分之一(小样本训练集可以更加清晰看到不同卷积核对于不同的特征敏感度),在迭代到正确率基本不发生变化时停止,重复100次平均后得到以下结果:
如表1所示,在小样本训练集上可以看到正常的图片训练出的网络对数字1、4的识别正确率更高,横向拉伸图片对数字9、6识别率更高,纵向拉伸图片对7、3的识别率更高。虽然总的正确率差距不大,但是对不同的数字不同的卷积核表现出了不同正确率,若将不同的卷积核的优势融合起来便会提高网络总体的正确率。
所以使用第四章所说的方法,用水平移位、垂直移位、正常的三种图片分别训练三个网络,将各网络的输出层删除,再将softmax层的概率相加求和除以3然后进行分类(这里也可以使用加权求和的方式给每个方向不一样的权重,本文三个方向权重相同)。在训练网络前对每一张图片的最外层都补了一圈0,这样使得移位后的图片和原图片大小相同。CIFAR-10数据集使用图5网络结构,MNIST和Fashion MNIST数据集使用图1网络结构(图一所示网络卷积层第一层用16个5 * 5的卷积块,第二层用32个3 * 3的卷积块,第三层64个3 * 3的卷积块,池化层采用2 * 2步长为2的最大池化),如图所示每一层卷积层和全连接层后会加一个归一化层加快训练速度,训练过程使用具有动量的随机梯度下降法训练网络,初始学习率为0.01。在迭代到正确率基本不发生变化时停止。结果如表2所示。
如表2所示通过MNIST、Fashion MNIST和CIFAR-10数据集的仿真实验证明,联合了正常图像和拉伸图像训练出网络的softmax层,融合CNN网络的分类正确率有较为明显的提升。其次,经过对比发现,采用正常图片训练所得的网络精度越小,其融合网络对于其精度的提升就越大。所以融合网络对于在CNN表现不好的数据集中有着更大的使用前景。且通过表1所得结果,异形卷积核因对于曲线特征更加敏感,而对于直线特征的学习能力并没有矩形卷积块强,所以将两者结合提升了CNN的特征提取能力,从而提升了准确率。通过三个数据集的仿真实验,我们发现单独使用移位图片训练出的CNN网络没有正常图片训练出的CNN网络正确率高,那么单独使用异形卷积核并没有矩形卷积核的效果好。这应该是异性卷积核只对某些特征比较敏感的结果。
如表3所示融合网络在MNIST、Fashion MNIST和CIFAR-10三种数据集中的准确率都明显优于其它算法,且融合网络可以适用于大多数读者自己创建的CNN,只需要对训练数据集进行修改便可以将异形卷积核应用到网络中。这相对于对网络内部的修改有着更强可行性 [15]。在实际问题中,可以针对问题中较为明显的特征设计异形卷积核,且对于更大的卷积核有着更多的变化方式。
![](Images/Table_Tmp.jpg)
Table 3. Comparison of accuracy rates of various methods
表3. 各类方法准确率对比
基金项目
陕西省自然科学基础研究计划资助项目(项目编号2018JQ1038)。