基于新型初始模块的卷积神经网络图像分类方法

2021-01-08 02:26刘子龙
电子科技 2021年2期
关键词:梯度卷积神经网络

朱 斌,刘子龙

(上海理工大学 光电信息与计算机工程学院,上海 200093)

计算机硬件技术和摄像设备的迅猛发展带动了计算机领域内视觉行业的发展,很大程度上可帮助人们提取图像中超越人眼辨识范围的信息,并读取图像中所包含的内容。图像的分类问题,其根本是通过计算机模拟人脑内部神经对图像的分析过程,对图像信息进行特征分析与特征提取,自动把不同图像分门别类的过程。卷积神经网络是一种内部包含多种运算的人为模拟神经系统的网络模型。自从20世纪50年代发现视觉系统中的信息处理是分级的[1]之后,人类便开始通过计算机模仿人类的神经元对图像进行处理。

在实际图像分类问题中,传统的卷积神经网络可能会产生提取特征不足、精确度不高、欠拟合以及梯度爆炸、消失等问题。本文在传统神经网络模型的基础上加入新型Inception模块提高模型对特征的提取能力,并通过增加通道数以及扩展模型的深度和宽度来提升处理信息的性能。此外,通过在模型处理数据信息过程中加入数据标准化、ReLU激活函数、数据增强、权重优化以及Adadelta优化手段,有效缓解数据训练过程中一些常见的问题,如梯度突然消失、拟合程度过大或者不足等。

1 卷积神经网络

一个完整的卷积神经网络主要由输入层、输出层和隐含层3种构造层混合而成。输入层用来处理多维数据,输出层一般会通过归一化指数函数或逻辑函数来输出分类标签。隐含层指的是在整个网络模型中除开输入和输出的部分,同样也是由3种构造层混合组成,包括卷积层、池化层(卷积层加池化层也是卷积模型中的一个固有搭配)和全连接层[2]。传统卷积神经网络的结构如图1所示。

图1 传统卷积神经网络结构图Figure 1. Traditional convolutional neural network structure

卷积层也称为特征提取层,主要作用是通过卷积核对输入数据进行特征提取。在处理特征过程中,类似于滑动窗口理论中的窗口移动,卷积核的滑动路径为从左到右,从上到下地依次扫过输入特征,在感受区域内对特征进行矩阵元素乘法求和并叠加偏差,得到经过卷积处理的特征值大小。卷积层的特征提取方式类似神经元的提取方式,首先对局部特征进行感知,然后对感知的局部特征进行综合,多次往复后得到全局信息。经过卷积处理后的输出特征的大小如式(1)所示。

(1)

其中,n×n表示输入特征的尺寸大小;w×w表示该层所含的卷积核尺寸大小;s表示该层卷积核的步长;p表示边缘补齐像素数(一般而言,p可以有3种不同模式选择,为full、same或valid);f表示经过卷积处理后的输出特征的尺寸大小[4]。

池化层则是对经过卷积层提取后的特征进行选择和过滤操作,也可以理解为对特征量进行删减。通过将特征图中某个点的结果替换为相邻区域的特征图统计量,可以解决上一层提取特征的参数量过大的问题,降低特征维数[5]。经过池化处理的特征大小的计算式与式(1)相同。

全连接层是隐含层网络的最后部分。全连接层的作用一般是将池化后传递过来的局部特征重新通过权重矩阵进行重组,然后将学习到的特征映射到相应的标记空间,也就是特征展开成向量的形式输入到激励函数。经过激励函数的激励,然后再将响应部分以组合的形式输出[6]。全连接层的连接结构示意图如图2所示。

图2 全连接层示意图Figure 2. Schematic diagram of the full connection layer

从图2中可以看出,如果网络的上一层发送神经元的个数固定,那么下一层接收神经元个数也是固定不变的。所以每次特征映射输入必须是一定的大小,与权重矩阵正好可以相乘。

2 改进的卷积神经网络

2.1 改进卷积神经网络的结构

新型初始模块是结合卷积神经网络中的初始模块和残差模块搭建出来的,如图3所示。新增的初始模块由3个分支通道组成:

图3 New Inception 模块Figure 3. New Inception module

(1)第一个通道block中叠加一个双通道支干,每个支干由两个卷积层堆叠,分别采用大小为1×3和3×1的卷积核依次堆叠,来代替原始的3×3。该方式增加了通道的非线性,提升了网络的适应程度,使得训练速度加快。相比于原来的3×3卷积核,新方法在相同的情况下所需要的参数更少,并且双支干通道在经过deep concat后的合成特征增加了信息的融合;

(2)第二个通道block则是由一个1×1的卷积层加上两个1×3和3×1的卷积结构,并且在1×3卷积层的基础上引入了残差单元的思想(使用全等映射将前一层输出,跳过一层或更多层,传到后面),每两层增加一个跳远连接。该方法使得模型深度增加并且不会发生退化,在加快训练速度的同时,一定程度上提高了性能[7];

(3)第三个通道block是3×3的最大池化操作和1×1的内核卷积操作[8]。采用初始模块的优点有:1)加速训练网络的速度;2)防止表征维度极度压缩从而导致表征受阻,使得表征特征的大小平缓地从输入向输出递减[9];3)输出的特征冗余信息较少,提取的特征信息比单通道分支提取的特征更加准确,提升网络学习能力且不退化;4)使得网络宽度和深度有了一定的加强及平衡[10]。

包含初始模块的改进的卷积神经网络结构如图4所示。

图4 包含初始模块的改进卷积神经网络示意图Figure 4. Schematic diagram of an improved convolutional neural network with initial modules

和传统卷积模型一样,新型卷积网络同样将输入层用作图像数据的输入,输入数据信息的尺寸为32×32像素,深度为3。卷积层包含3×3卷积核,步长为1。池化层池化方式都为最大池化,池化窗口为2×2,步长为2。边缘补充的方式让输入与输出保持同样的尺寸,padding为“same”。激活函数为ReLU,在最后两层全连接层中加入Dropout缓解过拟合,由输出层输出分类结果。包含新型初始模块的卷积神经网络模型参数如表1所示。

2.2 卷积神经网络的优化

内部优化是在模型训练过程中加入了一些优化手段来提升模型的工作性能和数据处理能力。

2.2.1 数据标准化

为了防止数据信息的分布在传递过程中发生变化,导致模型不稳定,在卷积层之后插入BatchNorm层,对输入进行标准化处理[11]:

(1)数据增强。数据增强是提高卷积神经网络鲁棒性和泛化能力的有效手段,包括在线增强和离线增强两类[12]。实验中使用数据的在线增强,通过裁剪、翻转、旋转等得到新的图像,通过变换方法对数据集进行补充;

表1 新型卷积神经网络各结构参数

(2)激活函数ReLU。本文使用ReLU作为激活函数,可以避免传统的Sigmod或Tanh函数易饱和的问题,其表达式如式(2)所示。

(2)

函数具有不饱和性,当输入为正数时,梯度保持不变,有效解决了训练过程中梯度突然消失的问题,收敛速度也得到提升[13];

(3)权重初始化He_normal。本实验采用He_normal初始化方法。He_normal是以0为中心,标准差如式(3)所示。

stddev=sqrt(2/fan_in)

(3)

其中,fan_in是权重张量中输入单位的数量;sqrt是开方操作;stddev为标准差。He_normal权重初始化可以较大程度地体现数据本身的分布特性,每层权重值变化趋势呈现出离散性[14];

(4)优化器Adadelta。Adadelta优化方法在梯度下降的迭代计算中只增加少量的额外计算量,并且不需要在训练前人为给出一个初始学习率[15]。其学习率会随着梯度的倒数增长,即在较大梯度时具有较小的学习率,在较小的梯度时具有较大的学习率,与学习率固定不变的传统方法有显著的区别[16]。

3 实验结果及分析

3.1 实验数据集

实验所用到的数据集为CIFAR-10数据集。CIFAR-10数据集总共有10类互相独立的60 000张图片,图片的大小为32×32×3,其中部分样本数据如图5所示。

图5 CIFAR-10 部分样本数据Figure 5. CIFAR-10 partial sample data

3.2 实验结果

本文的实验环境为Inter(R)Core i5-9700,内存为4 GB,操作系统为Ubuntu,操作平台是tensorflow。在通过传统的神经网络进行测试数据时,将输出定义为10类,测试轮次设置为100,设定batch_size为128,设置初始学习率为0.001,激活函数为Sigmod,梯度下降算法使用的是随机梯度下降SGD,实验结果如图6所示。

图6 传统卷积网络测试结果图Figure 6. Test results of traditional convolution network

将上述测试网络中的激活函数由Sigmod换成ReLU,梯度下降算法由随机梯度下降SGD换成Adadelta算法,权重初始化方法使用He_normal。再结合数据增强和标准化,同样进行100个轮次的测试,batch_size仍是128。此测试中由于使用的Adadelta算法,所以不用事先给予学习率,实验结果如图7所示。

图7 传统网络加上ReLU、Adadelta和数据增强测试结果Figure 7. Test results of raditional network plus ReLU、Adadelta and data enhancement

从这两个实验中可以看出,在同样是传统网络模型的基础上,使用梯度优化算法和权重初始化优化算法可以提高网络的实验精度,将测试准确度从68.94%提高到74.28%。

使用改进的新型卷积神经网络作为网络基础,同样将输出定义为10类,测试轮次为100,batch_size为128,设置初始学习率为0.001,激活函数为Sigmod,梯度下降算法使用的是随机梯度下降SGD,实验结果如图8所示。

图8 改进的网络模型最终测试结果图Figure 8. Final test results of improved network model

从实验结果可以看出,在同样的条件下,使用新型卷积神经网络模型可以获得更高的识别精度,准确度从68.94%提高到73.11%,证明新型网络模型结构的正确性和有效性。

使用新型网络模型作为基础结构,激活函数为ReLU,优化方法为Adadelta算法,权重初始化方法使用He_normal,结合数据增强和标准化,同样进行100个轮次的测试,batch_size为128。实验结果如图9所示,损失函数如图10所示。

图9 改进模型加上ReLU、Adadelta和数据增强测试结果Figure 9. Test results of improved model plus ReLU, Adadelta and data enhancement

图10 改进模型加上ReLU、Adadelta和数据增强测试损失函数Figure 10. Loss of improved model plus ReLU, Adadelta and data enhancement

从图中可以看出,改进模型最高在第78代达到了84.23%的测试准确率。但是Testing Loss曲线并不是一直下降的,而是伴有上升的曲线。这是因为本文的检测性能指标不是val_loss而是val_accuracy,因此并不能在模型的loss停止下降时就结束训练。将本文所有实验的数据结果进行比对,其对比结果如表2所示。

表2 不同模型的测试准确率对比结果表

由表2可以看出,梯度优化算法和激活函数度的改进确可以提升网络模型的工作性能,提高测试精度。另一方面,改进的卷积神经网络相比于传统的网络模型有较大的准确率提升,准确率提高了4.17%;结合了ReLU、Adadelta和数据增强优化手段,网络的准确率比单纯的传统网络提升了5.34%;新型网络模型结合ReLU、Adadelta和数据增强后,模型的准确率提升了15.29%,具有更好的泛化能力。

4 结束语

针对传统卷积网络模型分类效率较低,处理能力不足的缺点,本文提出了一种包含初始模块的卷积神经网络模型。新方法通过在主通道模型网络中新增Inception模块来同时加深宽度和深度,使得模型结构有所平衡。本文在处理数据信息的同时结合ReLU激活函数、He_normal初始化、数据标准化以及扩充数据集,分类效果较传统模型有了很大提升,其准确率高达84.23%。实验结果证明初始模块的卷积网络模型是有效的。未来的工作是对网络模型加以改善,以提升网络的宽度或者深度,或从多角度改善特征参数的提取方式,并将其应用于实际生产活动中。

猜你喜欢
梯度卷积神经网络
一个带重启步的改进PRP型谱共轭梯度法
一个改进的WYL型三项共轭梯度法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种自适应Dai-Liao共轭梯度法
神经网络抑制无线通信干扰探究
从滤波器理解卷积
一个具梯度项的p-Laplace 方程弱解的存在性
基于傅里叶域卷积表示的目标跟踪算法
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用