APP下载

DenseNet模型轻量化改进研究

2020-05-18蒋明威

关键词:密集卷积数量

舒 军,蒋明威,杨 莉,陈 宇

(1.湖北工业大学电气与电子工程学院,武汉 430068;2.湖北工业大学太阳能高效利用及储能运行控制湖北省重点实验室,武汉 430068;3.湖北第二师范学院计算机学院,武汉 430205)

卷积神经网络是一种模仿生物视觉神经连接的多层级联结构,在图像、视频处理领域有着非常广泛的应用.1998年,LeCun等提出降采样和网络权值共享两种思路,确立了CNN的现代结构—LeNet5[1].2012年,Krizhevsky等提出AlexNet[2],采用了新的非线性激活函数ReLU[3]和dropout[2]函数,减轻了网络的梯度消失和过拟合现象.2014年,VGG16、19[4]采用3×3卷积核和2×2池化核,验证了多个小卷积核的叠加效果优于单个大卷积核.同年,GoogleNet[5]设计Inception模块化结构,提出了Network In Network的思路.随着VGGNet、GoogleNet等网络的影响,后续网络逐渐加深.但网络加深导致的梯度消失问题,改变激活函数的方法已经无法有效改善.2015年,Highway Networks[6]、ResNet[7]提出跃层思路,跃层(Skip layer)整合前两层的输出信息作为当前层的输入.该方法使上层梯度信息可以通过跃层直接进入后层网络,减少了连续求导运算导致的梯度消失的问题.2016年,随机深度网络[8]在ResNet基础上采用随机路径训练,提升了深层网络的训练速度和性能.2017年CVPR发表的DenseNet[9]结合了两篇论文[7-8]的思路,提出密集连接结构(Dense Block),即每层网络的输入都是之前所有层输出的集合,每层网络只学习少量特征图,降低了网络参数量.DenseNet继承了ResNet抗过拟合和梯度消失的优点,而网络的参数量和计算量只有ResNet的一半.

DenseNet的密集连接结构可以使输出层获得之前所有网络层的信息,增大了特征图信息的利用率,但对于低强度图像任务,特征图的反复叠加,会产生较多冗余数据.原文作者设计了传输层和瓶颈层(TransitionLayer &Bottleneck)结构,对输出特征图进行压缩,但在小型数据集上DenseNet仍然出现了不同程度的过拟合问题.本文针对此问题展开研究,提出一种轻量化改进方法.

1 相关工作

1.1 跃层(Skip Layer)

早期的卷积神经网络一般由多层不同尺寸卷积核的卷积层(Convolution Layer)[10]进行特征提取和映射,交替加入激活函数、池化层[11]进行非线性激活和降采样,最后通过全连接层[1]和损失函数进行预测.随着计算机硬件的发展,LeNet5、AlexNet、VGGNet到Inception深度逐渐加深,图像处理任务不断提升的效果也说明了深层神经网络较浅层神经网络有更好的性能.但随着深度增加,出现了梯度消失和梯度爆炸等问题导致训练困难.新提出的激活函数ReLU和Batch Normalization(BN)[12]的方法一定程度上解决了问题,但对于超深层网络还是会出现无法训练或者准确率下降的问题.Highway Networks借鉴LSTM[13]门机制,提出了高速通道的思想,如式(1)所示.

y=H(x,WH)×T+x×C,

(1)

y=H(x,WH)为网络原来的映射函数,T和C为定义的两个门函数,x为隔层的特征图信息,调整两个函数即可控制变换和非变换信息流的比例.Residual Networks简化了Highway Networks的方法,采用直连方式,如式(2)所示.

y=F(x,Wi)+x,

(2)

F即ResNet的残差函数,Wi是残差层中的权重参数,x为隔层的特征图信息.结构如图1所示.

简化后上层信息直接通过跃层(Skip Layer)[7]和当前输出合并.跃层在训练过程中可以直接传递上层网络的梯度信息,提升了特征图像的复用率,解决了深度网络的训练问题.

1.2 密集型连接块(Dense Block)

区别于ResNet的跃层连接结构,DenseNet并非单纯的递进结构,模型结果不仅与当前输出的特征图相关,还与网络浅层输出有关.基于此思想,DenseNet作者设计了密集型连接块结构(Dense Block)[9],如图2所示.

图2 密集连接块Fig.2 Dense Block

密集连接块中任意两层网络间均有直接的跃层连接,较ResNet的单层连接,密集型连接的结构对特征图的利用率更高.DenseNet包含多个密集连接块,每个密集连接块后加入传输层和瓶颈层结构压缩参数,第L层网络的输入如式(3)所示.

xl=Hl([x0,x1,…,xl-1]),

(3)

xl表示第L层网络的输入,[x0,x1,…,xl-1]表示L层之前的网络的输出,Hl是表示拼接(Concatenation)的一个复合函数,即传输层和瓶颈层结构,包括Batch Normalization(BN),ReLU,Convolution(Conv)和Pooling.基于以上几点,每一层网络输出的特征图维数都比较低,有效降低了模型参数量,而计算量只有ResNet一半左右.

2 DenseNet模型轻量化改进

2.1 轻量化改进的DenseNet模型结构

保留DenseNet密集型连接特性基础上,本文提出一种改进的轻量化模型,改进前、后网络结构如图3所示.

图3 改进前后DenseNetFig.3 DenseNet and new DenseNet

首先,对密集连接块进行调整,总层数不变条件下增大密集连接块数量,保留i层内部网络;其次,对改进网络池化部分进行重新设计,使其适应新网络结构;最后,在密集连接块间加入跃层模块,增强信息流通.改进后的网络lth层的输入如式(4)所示.

(4)

2.2 基于图像分辨率自适应池化结构

由于每个密集连接块后接有传输层,数量增加后,其中池化层降采样会使后续卷积层无效(特征图尺寸≤卷积核).针对此问题,对新的网络结构设计了一种根据图像分辨率的自适应调整方法.保留密集连接块→传输层→瓶颈层的结构,在保证卷积有意义的条件下(特征图尺寸≥卷积核),自适应池化结构如式(5)所示.

(5)

2.3 密集连接块(Dense Block)结构优化

原网络在小型数据集(CIFAR10、CIFAR100和SVHN)上密集连接块的个数少,单个密集连接块内网络层数高.由于密集连接的特性,特征图复用率极高,而过于复杂的模型易导致过拟合问题.

针对此问题,设计了一组密集连接块数量和其内部网络层数最优化实验.层数低于3的密集连接块和残差结构基本相同,层数高于12则与DenseNet原网络相同,且过高的层数需要更大的压缩系数以节省计算资源.为避免实验结果差值太小,综合考虑,选择4/6/9/12层四种方案在CIFAR10数据集上进行测试,实验结果如表1所示.表中深度L=40层,压缩系数k=12,Blocks表示密集连接块基础单元个数,Params即模型的参数量,C10是4种改进模型在CIFAR10数据集测试的错误率.

表1 密集连接块基础单元数实验Tab.1 Dense Block basic unit experiment

表1中,DenseNet[6](6.72%)和DenseNet[9](6.69%)效果最佳且较为相近.而密集连接块内层数越高其个数越少,跃层数目也随之减少,考虑参数量和加入的跃层结构,选择DenseNet[6]作为网络的基本单元.在相同压缩系数(k=12)条件下对四种深度(L=40/100/190/250)的DenseNet[6]进行了测试,其余参数同表1,实验结果如表2所示.

表2 Dense Block[6]层数实验Tab.2 Dense Block[6] experiment on different layers

表2中,DenseNet[6]-250并没有出现之前DenseNet BC-250的过拟合的现象,随着网络的加深,精度随之提升.区别于DenseNet的三个或者四个密集连接块,6层的密集连接块将模型细化,解决了网络深度和特征图的维数不匹配问题.

2.4 基于批标准化(BN)和dropout改进的跃层(Skip Layer)结构

由于密集连接块→传输层→瓶颈层结构对输出信息的压缩,且密集连接块间无其他信息通道,故可能存在信息损失,网络的信息流通可以通过添加跃层的方式来进行优化.

针对此问题,考虑参数量和测试精度,设计了四组跃层(Skip Layer)对比实验,B1组为原跃层结构,使用两层3×3卷积层,中间加入批标准化(BN)和ReLU激活函数;B2组在B1组的基础上首尾加入1×1卷积层对参数量进行压缩;B3、B4组在B2组的基础上去掉1×1+3×3+BN层,分别加入dropout和dropout &BN.实验使用CIFAR10数据集进行测试,采用DenseNet(L=40,k=12)作为基础网络,加入Bi组跃层模块,四组实验方案参数量(Params)和测试错误率结果如表3所示,结构如图4(a)所示.

表3 跃层模块实验Tab.3 Skip Layer unit experiment

表3中,B1组未做数据压缩处理的跃层改进网络效果最好(6.32%),参数量也是最高的;B2组加入两层1×1卷积后,参数量减少,但1×1卷积的压缩作用导致模型精度下降;B3、B4去掉部分卷积层后,参数量最优(1.18 M),且加入了dropout+BN的B4组效果更接近B1组.基于上节讨论的基础,在每个密集连接块间加入B4组的跃层模块,最终网络结构示意如图4(b)所示.

图4 加入跃层的DenseNet和DenseNet[6]-SLFig.4 DenseNet with skip layer and DenseNet[6]-SL

为了测试DenseNet及其三种改进方法的性能,在CIFAR10数据集上做了一组对比试验.改进网络和DenseNet(L=40,k=12)的参数量(Params)、测试错误率的结果如表4所示.

表4 DenseNet和改进网络Tab.4 DenseNet and new network

对比1、2和3、4组,加入了跃层结构的DenseNet-SL(L=40,k=12)和DenseNet[6]-SL测试误差降低(-0.63%、-0.65%),实验结果证明跃层连接可以增强密集连接块间信息传递能力;对比2、4组,深度相同的情况下,拥有多个跃层的DenseNet[6]-SL测试误差更小(-0.3%).故密集连接块数量越少,跃层更趋向于全局残差结构[14-15]传递模块间信息,而不是ResNet中作为深度网络的一种辅助路径.

3 实验

3.1 数据集

3.1.1 CIFAR数据集 CIFAR10和CIFAR100数据集是由Hinton的学生Krizhevsky等收集的一个用于生活常见物体图像的数据集,它包含60 000张32×32的RGB彩色图片,分10和100个类别.其中,50 000张用于训练集,10 000张用于测试集.

3.1.2 SVHN数据集 SVHN数据集来自于Google街景图片中的房屋号码,是一个自然场景图像中的数字识别问题.图像已经过ROI提取和预裁剪,对数据预处理和格式化的需求最小.包含60万张32×32的RGB彩色图片,分0~9十个数字类别.

3.2 实验设置和结果

3.3 实验结果分析

3.3.1 数据集测试效果对比 表5中C10、C100和SVHN三列数据为两种改进方法DenseNet[6]和NewDenseNet[6]在三种数据集上测试结果.DenseNet[6]在浅层(L=40/100,结果取均值)网络上测试误差较DenseNet降低了3.3%;NewDenseNet[6]在浅层(L=40/100,结果取均值)网络上测试误差较DenseNet降低了9.3%.由于DenseNet(L=190)原文实验只有部分数据增强(C10+、C100+)后的数据,故只对比深层网络(L=250).在深层网络上,DenseNet[6]测试误差和DenseNet基本持平;NewDenseNet[6]测试误差较DenseNet降低了10.8%,网络的训练和校验损失曲线如图5所示.

表5 实验结果总表Tab.5 Summary of experimental results

图5 CIFAR数据集训练和校验损失曲线Fig.5 CIFAR data set train loss and test loss curves

3.3.2 模型参数、计算量对比 表5中Params、Flops两列数据为两种改进方法DenseNet[6]和NewDenseNet[6]的参数和计算量.DenseNet[6]的浅层(L=40/100,结果取均值)网络参数量较DenseNet降低了36%,计算量降低了26%;NewDenseNet[6]的浅层(L=40/100,结果取均值)网络参数量较DenseNet增加了28%,计算量降低了25%.DenseNet[6]的深层(L=190/250,结果取均值)网络参数量较DenseNet降低了14%,计算量降低了50%;NewDenseNet[6]的深层(L=190/250,结果取均值)网络参数量较DenseNet增加了9.6%,计算量降低了43.5%,网络的参数和计算量对比如图6所示.

3.3.3 综合评估 DenseNet[6]与DenseNet相比,参数量和计算量更少,而测试误差基本持平;NewDenseNet[6]较DenseNet参数量略有增加,但计算量降低且精度提升.其中NewDenseNet(L=190,k=40)效果最佳(C10 3.82%、C100 17.36%、SVHN 1.51%).综上所述,由于改进的方法对密集连接块的轻量化调整,降低了叠加的产生的特征图维数,在过拟合方面,网络在L=250、k=24时两种改进方法DenseNet[6]和NewDenseNet均未出现退化现象,网络效果随着深度增加而递进,实验结果证明改进方法有效.该轻量化网络对小数据集有着更大的优势,减少了过拟合的产生.

4 结论

本文主要针对DenseNet网络架构展开研究.DenseNet[6]的调整增大了网络深度和特征图维数的比例,与原网络精度相近的情况下降低了参数量和计算量,证明多个小型密集连接块可以降低模型复杂度.更进一步,本文在DenseNet[6]的基础上加入跃层作为辅助路径(NewDenseNet).实验结果证明,加入辅助路径的网络在参数量和原网络持平的情况下,计算量更少且精度更高.

猜你喜欢

密集卷积数量
耕地保护政策密集出台
芳芳猜童话书的数量
基于3D-Winograd的快速卷积算法设计及FPGA实现
密集恐惧症
卷积神经网络的分析与设计
从滤波器理解卷积
统一数量再比较
基于傅里叶域卷积表示的目标跟踪算法
头发的数量
做个Patty万人迷