APP下载

基于Padding权重化的卷积神经网络研究

2021-07-24刘之瑜徐精诚罗长银王豪石张淑芬

新一代信息技术 2021年3期
关键词:边界卷积准确率

刘之瑜,徐精诚,罗长银,王豪石,张淑芬

(1. 华北理工大学 理学院,河北 唐山 063210;2. 河北省数据科学与应用重点实验室,河北 唐山 063210;3. 唐山市数据科学重点实验室,河北 唐山 063210)

0 引言

随着计算机网络和数码设备的发展,大量数据不断地产生与传播,数据的种类多种多样,除了经过统计呈现出来的数值型数据,还存在大量的自然语言和视频图像等类型的数据。传统的数据处理方法难以实现对大规模图像数据集的分析,如ImageNet[1]数据集,包含有超过2万种的图像种类和超过 1 000万的图像样本。处理数以万计的图像数据集,传统的人工设计特征提取算子的方法耗时耗力精度不足,现在主流的方法用到卷积神经网络[2](CNN),CNN 通过卷积层自动获取图像特征,经过层层处理后进行分类,精度很高,同时还用 Pytorch和Tensorflow框架来加速训练。卷积神经网络在语音识别,目标检测[3]、语义分割[4]和图像分类[5]等计算机视觉领域应用广泛,其性能在图像识别任务中表现出色。

图像分类任务利用数字图像中所学习到的图像特征信息,对图像的类别进行划分,是计算机视觉和图像处理领域的基础问题[6]。处理图像分类任务的方法有很多,主要分为传统方法和深度学习方法。传统方法(如SIFT[7],HOG[8]等图像特征提取算法)通过人工设计特征提取算子对图像提取多种特征作为标签对图像分类,人工设计的特征提取算子很难解决图像低维特征到高维特征之间存在的语义差别,算子设计繁琐应用成本高,准确率较低。深度学习中的卷积神经网络在图像识别领域应用较广,网络自动学习图像由低维到高维的特征,准确率高。

CNN卷积层的基本参数有卷积核的大小(Kernel Size)、步幅(Stride)、边界扩充(Padding)、输入与输出通道(Channels)。卷积核的大小定义了卷积核的感受野[9](现通常为3×3),步幅定义了卷积核遍历图像矩阵时的步幅大小,边界扩充定义了网络层处理样本边界的方式,输入通道决定了卷积核的通道数,输出通道决定了卷积核的个数。

其中边界扩充操作会在图像四周填充数值0,边界填充后卷积输出的图像矩阵不会减小,但会模糊边缘信息,影响模型精度,本文对卷积层边界扩充的内容进行研究,对填充值进行改进,保留更多图像边缘信息。

1 卷积神经网络

比较著名的卷积神经网络模型有AlexNet[10]、ZFNet[11]、VGGNet[12]、GoogleNet[13]和 ResNet[14],这五种网络均在 ImageNet数据集的图像分类任务中取得了很高的精度。卷积神经网络通常包含卷积层(Convolutions layer)、池化层(Pooling layer)和全连接层(Full connected layer)。在其网络结构中,卷积层用于学习输入图像的特征,对图像的特征进行特征提取和表示,通过卷积核卷积图像矩阵生成特征图(feature map),其后通常由非线性激活函数处理,激活函数使线性计算的网络变成非线性的,增强网络的分类能力,常用的激活函数有 sigmoid、tanh、ReLU函数;池化层用来降低卷积层输出的维数,减少计算量增加训练速度的同时改善过拟合的情况,常用的池化操作有平均池化和最大池化[15-17];全连接层类似于一个分类器把分布式特征映射到样本标记空间。

在卷积层中卷积核按类型和大小分为很多种。卷积核的类型有扩张卷积[18](空洞卷积)-扩大感受野、转置卷积(反卷积)-卷积操作的反向操作、可分离卷积[19]-通过拆分卷积核来提高计算效率、可形变卷积[20]-改变了卷积核固定的几何结构、组卷积[21]等。大小如 1×1,3×3,5×5,7×7,11×11等等,卷积核越大感受野越大,能获得更多更全面的特征信息,但卷积核越大卷积后输出的矩阵尺寸会越小,导致网络模型的深度减小,且涉及到的参数更多导致计算量急剧增加。假设图像大小为N×N,卷积核的大小为C×C,步长为S,Padding的像素数为P=0,输出图片的大小n×n,则有:

其中,N为图像的大小,C为卷积核大小,P为Padding操作填充数值,S为卷积核移动步长,n为经过Padding填充后输出的图像大小。

一个 7×7大小的图像,经过大小为 5×5,步长为1,无Padding填充的卷积核卷积后输出的特征图矩阵大小为3×3,如图1所示。

图1 5×5 卷积核卷积图示Fig.1 5×5 convolution diagram of convolution kernel

若改为经过大小为 3×3步长为 1无 Padding的卷积核卷积,则有第一次卷积后输出的特征图矩阵大小为 5×5,第二次卷积后输出的图像大小为3×3如图2所示。

图2 3×3 卷积核卷积图示Fig.2 3×3 convolution diagram of convolution kernel

即 3×3大小的卷积核卷积两次等同于一个5×5大小的卷积核卷积一次的效果,二者的输出特征图矩阵大小相同。同理3×3大小卷积核卷积三次等同于一个7×7大小的卷积核卷积一次,如此即可保持感受野大小不变。网络层数的增加增强了网络的非线性表达能力,提高识别精度。而使用更小的卷积核需要训练的参数更少,两个3×3卷积核的参数为 3×3×2个,一个 5×5的卷积核的参数为5×5个,同理三个3×3卷积核的参数为3×3×3个,一个7×7的卷积核的参数为 7×7个,参数量大大减少,放在大型的卷积神经网络模型中起到了减少计算量加速训练的效果,同时由于用两次卷积代替了一次卷积增加了网络深度,使网络模型对图像特征的表现更加丰富。所以选择使用3×3卷积核更有优势。本文采用3×3卷积核进行网络设计和实验。

经上面计算没有进行边界填充的卷积操作会使图像大小缩减,图像四周边缘像素只被卷积了一次,这造成了图像边缘信息的损失。要使卷积后图像大小不变并更多的保留边界信息,需要在图像四周进行边界填充(Padding),现在常用的有OpenCV中提供的两种填充模式:same模式和valid模式。填充值时外围虚线部分填充0,根据卷积核大小和步幅的不同会填充不同圈数的 0,如步长为1,则填充一圈,步长为2填充2圈。

设图像大小为7×7,卷积核的大小为3×3,步长为1。填充模式有两种:

valid mode表示当卷积核的边角与矩阵的边角重合时开始做卷积运算,此时和没有 Padding的情况相同,输出的矩阵会变小,如图3所示,深色部分为卷积核。

图3 valid 填充模式Fig.3 valid mode

same mode表示当卷积核的边角与填充后矩阵的边角重合时开始做卷积运算,同时保持与输出的矩阵大小相同,此时在矩阵外围填充一圈0,如图4所示,虚线处为边界填充值。

图4 same填充模式Fig.4 same mode

2 Padding 权重化

在卷积层对图像矩阵进行边缘填充,采取same mode模式,在矩阵外围填充一圈数值0,卷积核卷积填充值时结果为 0,如图 4所示,这保证了图像边界值可以被重复卷积,但也导致卷积后边缘的信息有损失,在图像边界处可能会出现明显的不连贯的现象[22]。为了更好的保留图像边界的特征信息,将 Padding填充值权重化,将边界填充的数值0替换为边界值加权后的值,在图像外围填充一圈值,填充值由图像边界值经过加权计算取得,另外,四角填充的值取0。

在每个图像矩阵边界值外侧分别填充该边界值的加权计算值,如7×7大小图像在外围填充一圈值,变为 9×9大小,四角值取数值 0,如图 5所示。将边界填充值记为Y,权重记为X,边界单个元素的值记为Vi,i的取值为Padding填充值的个数 0至 31,经过计算最终填充的值为Y=X×Vi× 5 0,其中的50为训练过程中取分类精度较高时的值。

图5 P adding权重化填充Fig.5 Padding weighting filling

整个计算流程为:

输入:读取图片路径,读取待训练图片

Step.1 获得训练数据集,将图片以数字矩阵形式读取

Step.2 对图片进行 Padding操作,填充边界填充值Y

Step.3 将填充后的矩阵A进入第1个卷积层进行卷积

Step.4 经Relu1和BN1处理后进入第1个池化层,经池化得到矩阵B

Step.5 矩阵B经过Padding操作填充值后,进入第2个卷积层进行卷积

Step.6 经Relu2和BN2处理后进入第2个池化层,经池化得到矩阵C

Step.7 矩阵C经过Padding操作填充值后,进入第3个卷积层进行卷积,得到矩阵D

Step.8 经 Relu3和 BN3处理后进入全连接层,最终完成分类

输出分类结果

3 实验

数据集为Fashion-MNIST数据集,数据集划分为训练集和测试集,训练集有60 000张图片测试集有10 000张图片,每张图片的大小为28×28。不同于MNIST手写数据集,Fashion-MNIST数据集包含了 10个类别的服装图像,包括 T恤衫(t-shirt),牛仔裤(trouser),套衫(pullover),裙子(dress),外套(coat),凉鞋(sandal),衬衫(shirt),运动鞋(sneaker),包(bag),短靴(ankle boot)。部分举例如图6所示。

图6 Fashion-M NIST图片举例Fig.6 Fashion-MNIST image example

本文使用卷积神经网络,该网络较为简单,包含3个卷积层2个池化层和2个全连接层,其中卷积核大小为 3×3,池化层取最大池化。训练时在卷积层后进行批标准化处理,加速网络的收敛速度,在2个全连接层之间加Dropout层,防止模型过拟合。网络模型图如图7所示。

图7 CNN 模型图Fig.7 CNN model diagram

实验设备参数:

使用Intel(R) Core(TM) i5-8300H CPU @2.30 GHz CPU,OS:win10专业版1909 64位操作系统,16 G运行内存,运行环境位Python3.7.6。

搭建卷积神经网络并随机初始化参数,将Fashion-MNIST数据集输入网络模型进行训练,Padding修改前后的网络分别对数据集进行训练和测试并记录数据,每个网络训练两个epoch(周期),每个epoch分为2 000个批次进行训练,训练完成后两个网络的loss值下降缓慢训练达到稳定状态,网络修改前的loss值由1.33129降低到0.39343,如图8所示。

图8 网络修改前loss值Fig.8 Loss value before network modification

修改后的loss值由1.227362降低到0.388945,修改后的网络模型loss值更小,比修改前的网络模型更稳定,如图9所示。

图9 网络修改后loss值Fig.9 Loss value after network modification

训练完成后使用测试集进行测试,每个epoch结束后求取平均准确率,Padding修改前的网络分类准确率为 85.7%,修改后的网络分类准确率为87.22%,平均准确率增加了1.52%,如表1所示。对结果进行分析,说明对于 Padding的改动有效改善了图像边缘信息模糊的情况,提高了准确率。

表1 网络测试准确率Tab.1 Accuracy of network test

4 结论

在计算机视觉领域,卷积神经网络多被用在处理图像分类任务中并表现良好,在卷积层,图像矩阵经过边界填充操作进行矩阵的填充,以保持卷积后输出矩阵的大小不变,进而保持训练深度。本文对边缘填充的方法和类型进行了讨论,并对填充的内容进行了改进,将图像边缘元素经加权计算后填充至图像外圈。经实验证明该方法有效,更多的保留了图像边缘信息,经对比发现提升了图像分类准确率1.52%。

猜你喜欢

边界卷积准确率
拓展阅读的边界
基于3D-Winograd的快速卷积算法设计及FPGA实现
探索太阳系的边界
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
意大利边界穿越之家
卷积神经网络的分析与设计
从滤波器理解卷积
论中立的帮助行为之可罚边界