APP下载

深度扩展网络在图像识别中的应用

2020-12-04钱淑娟

计算机技术与发展 2020年11期
关键词:连通性网络结构卷积

钱淑娟

(上海理工大学 理学院,上海 200093)

0 引 言

近几年来,卷积神经网络(CNN)[1]在各种机器学习应用中展现出巨大的价值,尤其是图像识别这一领域。但这一类结构复杂程度高,需要消耗大量的计算时间和CPU资源。2015年牛津大学的视觉几何组和Google DeepMind公司提出了VGG[2]结构,VGG结构简单紧凑,参数量大,具有广泛的应用价值,因此紧凑型神经网络体系结构受到广泛的关注。紧凑型网络结构在一定程度上能够解决深度卷积神经网络中参数多、模型大的问题。

对于卷积层的设计,ResNet[3]和DenseNet-BC[4]注重结构间的连通性,具有较强的参数共享能力,保证网络中层与层之间高效的信息交互。Google提出的深度可分离结构MobileNet[5],引入传统结构中的分组设计,将卷积分成深度卷积以及点卷积,计算规模上比传统结构减少了数倍。这些模型从网络中删除影响较小的几个连接,降低了训练过程中的资源消耗。从图1中可以看出,传统的模型压缩方法,例如剪枝[6],会使不同层间的相关信息难以交互,它们去除网络中大量的神经元连接,造成模型全局连通性较差。网络中的连通性适合利用常规的图形来分析,它是构造良好的连通性的一种高效处理方式。该文提出利用扩展图[7]有关的结构来设计各层间的连接,扩展图是理论计算机科学中的基础内容,是一种结构稀疏但连通性强的图,在网络通信和区块链技术中得到了广泛的应用。

图1 三种网络模型结构

该文使用扩展图来表示深层网络中的神经元连接,并且验证提出的结构在图像识别中产生的效果。使用稀疏矩阵以及快速卷积设计卷积层(Expander-Conv)的高效结构,将扩展卷积与连通性较差的分组卷积[8]进行性能比较。当这两种卷积方式都应用于ImageNet数据集上训练时,Expander-Conv层实现的准确度更高。同时还在CIFAR-100、MNIST多个数据集进行训练,来验证该设计具有良好的图像识别能力。与修剪技术相比,Deep-ExpanderNet模型具有更强的连通性和更快的训练速度,展示出了更高的网络性能。

1 相关工作

文中方法是将神经网络结构设计和网络压缩技术结合起来,通过研究相关文献对这两种技术进行了详细的介绍。

1.1 高效层设计

近年来,神经网络的研究得到较大的发展,广泛应用于模式识别、推荐系统、语音识别、计算机视觉等诸多领域,但是神经网络结构的选取与设计会对应用效果产生重大影响。神经网络的性能与结构有着密切的关联,但是目前缺乏科学的理论指导。大多数是利用已有的较为成熟的结构,但是每个结构有其应用的独特性,最终导致模型的计算量大、效率低,这种盲目的选择方法严重制约了神经网络的应用。目前,人们对设计新的结构以及高效地利用它们进行图像识别进行了深入研究。该文的研究方向就是基于已有的结构进行改进。

近几年结构设计的研究方向之一是架构搜索[9],架构搜索根据已有效果较好的神经网络结构,找到更高效的结构,一般通过替换当中的一层,增添一层或者减少一层来实现。架构搜索主要分为三个步骤:首先确定搜索空间;然后确定所采用的优化算法;最后设计合理的评估方案。Deep-ExpanderNet结构也利用了网络架构搜索的思想。

另一种高效的架构设计是分组卷积,它最初是在AlexNet[10]中提出的,当时处理设备的计算能力有限,AlexNet卷积运算不能由单个GPU处理,需要将降维操作交由多个GPU并行处理,最后合并多个GPU运行的结果。假设常规卷积中输入特征映射的尺寸为L*H*W,卷积核的数量为N个,单个卷积核的大小均为L*K*K,那么N个卷积核的参数总量为N*L*K*K。当利用分组卷积进行操作时,输入特征映射的尺寸以及卷积核数与常规卷积时相同,划分为G组,单个卷积核的大小为L/G*K*K,卷积核数为N/G,卷积核的总参数量为N*L/G*K*K,分组卷积后的参数量缩小为原先的1/G。分组卷积主要用于减少参数规模以及结构稀疏。近几年,设计深层网络主要是通过增强层间的连通性,实现信息在深层网络中的高效流动,使得图像识别的精度得到更大的提高。

在2014年ILSVRC的比赛中,Google Inception Net[11]以巨大的优势取得第一名的成绩。InceptionNet设计的Inception Module,先将前一层产生的特征图作为1×1、3×3和5×5的卷积层和一个最大池化层的输入,然后各个分支在输出通道上堆叠到一起,作为下一个模块的输入。这种深层网络结构限制了计算量和参数量,提高了准确率并且降低了过拟合的可能性。

1.2 网络压缩

神经网络模型在图像识别领域取得了显著的成果,但是通常有几百万的参数和几十层的网络,结构相当复杂,需要大量的计算成本和存储空间。股票行情分析、远程医疗监控以及自动驾驶等实时应用的网络结构,首要目标就是降低其存储和计算成本,减少结构的层数和参数。目前移动设备占据重要的市场,如何让神经网络结构模型在移动设备上发挥作用,也是网络结构设计的一项重要任务。学者们提出了神经网络压缩[12]的思想,对结构进行一定程度的简化。神经网络压缩指的是改变网络结构或利用量化的方式来缩减结构的参数量,在保证运行精度不受影响的同时,降低网络计算成本和内存消耗。神经网络压缩大体上包含参数修剪和共享,低秩因子分解,压缩卷积滤波器以及知识蒸馏这四类方法。

基于剪枝和共享的方法剔除对精度影响甚微的数据,需要预先训练模型。该方法包含以下三类:模型量化和二进制化、参数共享和结构化矩阵。量化方式削减每个权重所占用的数据量来达到压缩网络的效果,参数共享常用于降低网络结构复杂度,结构化矩阵是指少于m×n个参数组成的一个m×n阶矩阵。低秩分解方式利用矩阵计算神经网络模型的参数,需要预先训练模型。基于迁移/压缩卷积滤波器的方法采用特定的卷积核来存储参数,能够减少参数规模和计算复杂度,通常可以取得较好的结果。该方法依据Cohen[13]的群等变卷积的思想,利用变换矩阵T(.)转变输入x,然后提交给层Φ(.)处理,其结果和转换这两个步骤的结果是相同的。

其公式可以表示为:

Φ(x)=Φ(Tx)

其中,x为输入,Φ(.)为网络或层的处理操作,T(.)为变换矩阵。

Φ(.)采用变换的方式来缩减网络结构,能够直接降低参数规模。知识蒸馏方法学习softmax函数产生的概率分布,产生一个更紧凑的神经网络来模拟最初复杂的模型,模型的学习能力受网络结构的影响,只能从零开始训练。这几种网络压缩方法[14]可用于卷积层和全连接层的结构设计,迁移/压缩卷积滤波器一般情况下不用于全连接层的设计。该文利用扩展图结构设计神经网络各层间的连接,减少结构的参数规模,并在图像识别数据集中取得较好的效果。

2 二部图与结构化稀疏

近几年诸如ResNet和DenseNet等卷积神经网络成熟的结构,其原理都是不断增强神经元的连接性,达到更高的精度。这些研究结果表明,连通性是提高深层网络结构性能的一个重要因素。该文研究了在保持神经元之间连通性的同时,显著地减少神经元之间的冗余连接。这样的结构不但可以保持准确性,也能够降低参数规模。

2.1 二部图与深度卷积神经网络

该文利用扩展图来优化神经元间的连接,并将阐述扩展图和深度卷积神经网络结构之间的关联。

给定一个顶点集为U,V的二部图G,二部图[15]是图论中的基础内容。G是一个无向图,顶点集由两个完全不同的子集组成,图中的每条边(i,j)所关联的两个顶点i和j处于这两个不同的顶点集中。G所定义的线性层,是一个包含|U|个输入神经元,V个输出神经元的层,每个输出神经元只接收G给出的神经元的输入。图G是结构稀疏的,只存在M条边。线性层中有M个参数,|V|×|U|是较为常见的尺寸大小。卷积层表示成顶点为U和V、卷积核大小为c×c的二部图G。卷积层接收|U|个通道的输入,并生成带有|V|个通道的输出。该结构的卷积核有M×c×c个参数,而普通神经网络结构卷积核的参数数量为|V|×|U|×c×c,参数的规模得到一定程度的减少。

2.2 结构化稀疏

文中模型通过稀疏图G[16]来创建卷积层的结构。在没有任何数据分布的情况下,从所有输入通道的集合中随机地选择每个输出通道的邻域,利用这种方式产生的图G被称为扩展图,其阶数为D、谱隙为γ,具有稀疏和连通两大特性。且扩展图G=(U,V,E),其中E是边的集合,E⊆U×V。与稠密图中|U|×|V|条边相比,该图只有D×|V|条边,具备稀疏性这一特点。对于每个顶点v∈V,D个邻域是从U中随机且不重复地筛选出来的。扩展线性层(Expander-Linear)是由一个D阶随机二部扩展图G定义的层,其中系数D较小,而扩展因子K与D大致相等,使得该层仍有良好的学习能力。扩展卷积层(Expander-Conv)是由一个D阶的随机二部扩展图G定义的卷积层,其中系数D较小。对于扩展图G1=(V0,V1,E1),G2=(V1,V2,E2),…,Gm=(Vm-1,Vm,Em),将卷积网络定义为m层深度网络,其中卷积层使用上述定义的Expander-Conv层,线性层使用上述定义的Expander-Linear层。扩展图中的随机游走[17]快速收敛于图节点上的均匀分布。Deep-ExpanderNet有多层,每个层都有从扩展图中得到的连接,有着强大的连通性。

3 Deep-ExpanderNet模型

Deep-ExpanderNet模型利用扩展图的结构稀疏性以及快速密集卷积来设计算法,降低了参数规模,提高了运行速度,并在训练过程中大大地节省了内存。在给定内存和运行时间有限的情况下,该结构可以获得高效的性能。

3.1 稀疏卷积模型

稀疏连接可以达到较高的压缩率,但可能会产生杂乱的卷积核,需要结合稀疏矩阵来加快计算。当D较小时,扩展图的邻接矩阵是高度稀疏的。模型可以使用与扩展图的边缘相对应的非零项来初始化稀疏矩阵。与大多数压缩模型不同,稀疏连接是在训练阶段之前结构就能够确定,并且比较稳定[18]。在模型训练结束后,将所有卷积核转换为稀疏矩阵存储,防止每次前向传播进行重构。稀疏卷积达到了很高的压缩率[19],提高了统计效率,并且大多数深度学习库提供了相关实现。

3.2 密集卷积结构

在Expander-Conv层中,每个输出通道只与外部输入通道相关。Expander-Conv使用初始化模型时产生的掩码从输入中筛选出D个通道,然后与一个尺寸为k×k×D×1的卷积核进行卷积操作,输出层为filter遍历输入层的计算结果。从1至输入通道数间的数字中随机且不重复选取D个样本得到掩码。所筛选的D个通道的掩码为1,其他通道的掩码为0。该模型将Expander-Conv层权值矩阵中的非零权值系数表示为D通道的压缩密集矩阵,输出是选定的通道与压缩权值矩阵卷积后的结果。Expander-Conv层的基本原理如图2所示。

图2 Expander-Conv层的基本原理

3.3 Deep-ExpanderNet架构

图3是设计的深度扩展网络Deep-ExpanderNet架构图。在扩展卷积结构之前,增加了一般卷积和最大池化,实现了不同通道间的特征组合。为了降低网络的参数规模,在扩展卷积结构后面采用了多个1×1的标准卷积,对同一位置、不同通道的特征图进行融合。当输出通道数量一致时,3×3卷积能够实现相同的功能,但3×3卷积参数量是1×1卷积的参数量的9倍。

在最后的扩展卷积结构之后是增加了多个尺寸较小的卷积层,这些卷积层替代全连接的输出层,用于实现特征提取。增加多个小型卷积层是将特征图的宽度和高度不断缩小、使通道数量与图像数据集中的类别数目大致相同。2×2等尺寸的卷积核获得较大的感受野需要更多网络的层数,增加网络训练难度,容易出现过拟合,5×5、7×7尺寸的卷积核各层的参数规模大,导致训练速度慢,且5×5尺寸的卷积核能用两个3×3卷积代替。经实验证明,3×3卷积最为合适,能使网络的参数数量和计算量少并且分类准确率高。

图3 Deep-ExpanderNet架构

4 实验和结果

为了验证提出的深度扩展网络架构的性能,本节将在CIFAR-100、MNIST多个数据集中进行测试和验证。实验采用python语言,并且使用了Tensorflow学习库。CIFAR-10数据集共有60 000张图像,图像的尺寸为32×32,由50 000张训练样本和10 000张测试样本组成,对图像随机剪切成为28×28的大小。MNIST数据集是由60 000张训练样本和10 000张测试样本组成的图像数据集,每个样本为28×28大小的灰度手写数字图像,是机器学习领域中比较常用的一个数据集。

4.1 与分组卷积比较

本节将扩展卷积(Expander-Conv)与分组卷积(G-Conv)进行比较。分组卷积是目前较为常用的方法,具有与扩展卷积网络相同的稀疏性,但缺乏连通性。实验选择MobileNet作为基础模型,它是高效的神经网络架构。实验中将MobileNet-0.5中的尺寸大小为1×1卷积层替换为Expander-Conv层,形成Expander-MobileNet-0.5。同样,将它们替换为G-Conv层,以形成Group-MobileNet-0.5。对比结果如图4所示。

图4 Group-MobileNet-0.5与Deep-ExpanderNet-0.5损失率对比

E-m或G-m表示使用Expander-Conv或G-Conv将1×1转换层压缩m次。当增加稀疏性时,Expander-MobileNets的准确率比Group-MobileNets高出4%以上。实验表明Expander-Conv可以用来进一步提高性能。

4.2 与剪枝技术的比较

与ResNets相比,文中模型实现了更好的性能,Expander-ResNets的计算量减少一半,而准确率仅降低2%左右。为了进一步证明文中模型在DenseNet-BC上的高效性,在CIFAR100数据集上对其进行了测试,并在图5中绘制了对比曲线。

图5 DenseNet以及Expander-DenseNet性能对比曲线

文中方法的思想是在训练开始之前,用一个经过充分研究的稀疏连接模式来约束权重矩阵,这样就可以对Expander-Conv模型进行快速训练。在VGG16架构上进行了性能测试。将两种Expander-VGG-16模型与现有修剪技术进行了比较。在减少50%的参数和计算量的情况下,Expander-VGG-16达到与VGG16模型相似的精度,达到了最先进的剪枝技术相等的水平。

4.3 模型的稳定性

在ImageNet数据集上与分组卷积进行比较,以证明基于扩展的模型在多次运行中的精度与普通神经网络结构的训练结果相似。用MobileNet0.5进行了多次分组和扩展方法的实验。从表1可以看出,两个模型之间的精度变化相当,差值小于1%,证明文中模型不会降低稳定性。因此,即使选择了效果较差的连接图,精度受到影响的可能性较小。

表1 ImageNet数据集上MobileNet0.5改进结构的准确度和变化范围

续表1

4.4 训练更广泛和更深入的网络

Expander-DenseNet在训练之前将权重矩阵约束为稀疏连接模式,可以在训练阶段充分利用内存和运行时间,这样能够训练出更高效的网络。文中测试了Expander-DenseNet不同的宽度以及深度对精度的影响。实验中调整了DenseNet-BC-40-60的结构,分别将增长率从60提高到100和200,并比较了不同的网络宽度对这些模型的影响。同样,将深度从40增加到58和70,比较各项训练后的数据。实验使用CIFAR-100数据集对这些方法进行性能对比,结果如图6所示。实验结果表明,结构更深的Expander-DenseNet-BC-70-60的性能明显优于Expander-DenseNet-BC-58-60,而结构更宽的Expander-DenseNet-40-200比Expander-DenseNet-BC-40-100表现出更好的性能。曲线斜率的减小表明Expander-DenseNet模型随着深度和宽度压缩的增加而受到的损失较小。

图6 Expander-DenseNet宽度与深度的性能对比曲线

4.5 识别对比实验结果

表2中使用MNIST测试集上的错误率作对比,有着更直观的比较。实验表明,Deep-ExpanderNet在参数数量较少的情况下,有更高的识别率。在参数规模远低于其他网络结构的情况下,依然可以达到更高的准确率。

表2 MNIST对比实验结果

5 结束语

使用扩展图提出了一种新的深层网络结构,该结构在图像识别中有着高效的性能。在准确性未受影响的情况下,改进的结构Deep-ExpanderNet减少了结构上的冗余。强大的网络连接性使改进后的结构在参数数量或计算成本比目前的体系结构有了显著的改善。在保证参数交互的同时,使用高效的方法来稀疏模型,有助于开发高效的深层网络。实验结果表明,Deep-ExpanderNet在参数规模低于其他网络结构的情况下,取得了更好的识别效果。未来深层扩展网络可以在其他领域中得到广泛应用。

猜你喜欢

连通性网络结构卷积
基于全卷积神经网络的猪背膘厚快速准确测定
植被覆盖度和降雨侵蚀力变化对小流域泥沙连通性的影响
超越视野
中国自然保护地连通性的重要意义与关键议题
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
基于ACQI模型的枢纽机场航线网络规划模型评估
试论分布式计算机网络结构分析与优化
带通信配网故障指示器故障监测方法及安装分析