用于大规模图像识别的特深卷积网络①
2021-10-11李荟,王梅
李 荟,王 梅
(东北石油大学 计算机与信息技术学院,大庆 163318)
1 引言
伴随着大数据时代的到来以及各种强大的计算设备的发展,深度学习是可以充分利用海量数据,包括标注数据、弱标注数据和无标注数据类型,对抽象的知识表达进行完全自动地学习.目前,深度学习改进了图像处理、语音处理和文本处理等众多领域的算法设计思想,逐步形成了一套基于训练数据,通过一种端到端的模型,最后得到最终结果的思路,这是一种既简单又高效的处理方式,并且深受认同.随着不断深入的研究与应用,也出现了很多精良设计的深度网络结构,可以解决传统机器学习并不好解决的很多复杂问题.对比传统的机器学习,深度学习的本质就是一种特征学习方法,它把原始的数据经过简单并且非线性的模型转换成为层次更高的、更加抽象的表达.虽然深度学习能够很好的建立起输入和输出之间的映射关系,可是却不能较好地发现其内在物理联系.相比应用研究来说,深度学习的理论研究可以做的更多.
近年来,卷积神经网络受到了广泛关注,其在大规模图像识别和视频识别领域都获得了较于以往非常好的效果.随着大规模的图像库和高性能的GPU的发展,识别率有了显著的提升.值得一提的是以ImageNet为代表的大规模图像识别大赛,其在深度学习领域有较强的推动作用[1],此大赛已经成为了最近几年较大型实验平台.
目前,ConvNets 已经变成了图像识别的商品之一,研究人员努力改进Krizhevsky 等人创建的初始架构.目的是为了提升其在abid 中的准确率[2].本文我们主要讨论的是卷积神经网络设计时的一个非常重要的参数,即网络的架构深度,我们还尝试了架构中的其他参数的阈值,试图加入更多的卷积层,以此来保持增加网络深度的稳定,并且证明了其可行性.我们在所有的层里都采用了verysmall (3×3)的卷积滤波器,还提出了一种基于verysmall 卷积滤波器的架构模型,通过实验证明,该架构在多种图像识别数据集中都有较好的识别率[3,4],可以为接下来的工作打下基础.
2 卷积网络配置
为了衡量卷积网络深度在公平环境中所带来的改进,我们所有的卷积网络层配置均采用与Krizhevsky等人相同的设计原则.
2.1 架构
该卷积神经网络训练时的输入是224×224 像素的RGB 图像,并且大小固定.训练前的预处理过程是将训练数据集的RGB 算出平均值,再把每个像素都减去平均值完成预处理操作.将图像经过一些卷积(转换)层,包含verysmall 接受模板的过滤器.该模板是3×3的,因为它是可以分出上下左右中心的最小的尺寸.我们采用了1×1的卷积滤波器在其中的一种配置里,其作用相当于对输入通道做线性变换(马上再进行非线性变换).将卷积步长设定成1 个像素,并且将空间层的输入设定为卷积操作后原有的分辨率,也就是对3×3 转换,填充1 个像素层[5].用5 个最大池化层来填充空间层.最大池化层的操作在2×2 像素窗口上,设定步长为2.通过上述的卷积神经网络后,图像信号经过一叠三层的完全连接层,即前两个4096 个通道,第3 个有1000 个通道,架构的最后一层是Softmax 层.在任何神经网络中配置全连接层的方法都是相同的[6,7].
众所周知,全部的隐藏层都具有非线性整流特征.我们的网络中,无一例外都没有局部响应归一化(LRN)层.第4 节中会介绍归一化层部分[8].这样架构会使得内存的消耗变多,并且运行时间会增多,但是不会改变数据集的性能[9].
2.2 配置
本文评估的卷积网络配置在表1中列出,每列一个.在下面的论述中,我们通过他们的名称(A-E)来指代相应的网络.所有配置均遵循第2.1 节中提出的通用设计,并且仅在深度上不同:从网络A 中的11 个权重层—包含8 个转换层和3 个完全连接层到网络E 中的19 个权重层—包含16 个转换层和3 个完全连接层.转换层的宽度(通道数)相当小,从第一层中的64 开始,然后在每个最大化池层之后增加2 倍,直到达到512[10].
表1 卷积网络单尺度演化性能测试
3 分类框架
3.1 训练
网络权重的初始化很重要,因为糟糕的初始化可能会使深度网络中梯度的不稳定性停止学习.为了避免这个问题,我们开始训练配置A (表1),其足够浅以便随机初始化进行训练.然后,在处理更深层次的体系结构时,初始化了前4 个卷积层,最后3 个完全连接层用网A 初始化(中间层随机初始化).预初始化层的学习率没有调低,并允许它们在训练期间改变.对于随机初始化(如果适用),从具有零均值和102方差的正态分布中对权重进行采样[11].偏差初始化为零.我们发现使用文献[12]的随机初始化程序可以在没有预训练的情况下初始化权重.
为了获得固定大小的224×224 卷积网络输入图像,从重新缩放的训练图像中随机裁剪它们(每个SGD 迭代每个图像一个裁剪).为了进一步增加训练集,crop经历了随机水平翻转和随机RGB 色移操作[7].下面解释了训练图像重新缩放.
训练图像尺寸:设S是各向同性重新缩放的训练图像的最小边,从中裁剪出卷积网络输入(我们也将S称为训练比例).虽然作物大小固定为224×224,但原则上S可以采用不小于224的任何值:对于S=224,作物捕获全图像统计,完全跨越训练图像的最小侧;当S>>224 时裁剪将对应于图像的一小部分,包含一个小对象或一个对象部分.
我们考虑两种设置训练量表S的方法.第一种是修正S,它对应于单一规模的训练(注意,采样作物中的图像内容仍然可以代表多尺度图像统计)[12].在我们的实验中,我们评估了在两个固定尺度下训练的模型:S=256 (已在现有技术中广泛使用[7,13,14])和S在给定卷积网络配置的情况下,我们首先使用S=256 训练网络.为了加速S=384 网络的训练,使用S=256 预训练的权重对其进行初始化,并且我们使用较小的初始学习率10-3.
设置S的第2 种方法是多尺度训练,其中通过从特定范围[Smin,Smax](我们使用Smin=256和Smax=512)随机采样S来单独地缩放每个训练图像[15].由于图像中的物体可以具有不同的尺寸,因此在训练期间考虑这一点是有益的.这也可以被视为通过尺度抖动的训练集增强,其中训练单个模型以识别各种尺度上的对象.出于速度原因,我们通过使用相同的配置微调单尺度模型的所有层来训练多尺度模型,使用固定的S=384 进行预训练.
3.2 测试
在测试时,给定经过训练的卷积网络和输入图像,按以下方式对其进行分类.首先,它被各向同性地重新缩放到预定义的最小图像侧,表示为Q(我们也将其称为测试标度).我们注意到Q不一定等于训练量S(正如我们将在第4 节中所示,每个S使用几个Q值可以提高性能).然后,以类似于文献[14]的方式将网络密集地施加在重新缩放的测试图像上.即,首先将完全连接的层转换为卷积层(第一FC 层到7×7conv.层,最后两个FC 层到1×1 转换层).然后将得到的完全卷积网应用于整个(未剪切的)图像.结果是一个类得分图,其中通道数等于类的数量,并且可变空间分辨率取决于inputimage 大小.最后,为了获得图像的类别得分的固定大小的矢量,类别得分图被空间平均(求和).我们还通过水平翻转图像来增加测试集;对原始图像和翻转图像的Softmax 类后验进行平均以获得图像的最终分数[16,17].
3.3 实现
我们的实现源自公开的C ++ Caffe 工具箱,但包含许多重要的修改,允许我们对安装在单个系统中的多个GPU 进行训练和评估,以及训练并在多个尺度上评估完整尺寸(未剪切的)图像.多GPU 训练利用数据并行性,并通过将每批训练图像分成几个GPUbatches来执行,并在每个GPU 上并行处理.在计算GPU 批量梯度之后,他们被平均获得完整批次的梯度[18].梯度计算在GPU 之间是同步的,因此结果与在单个GPU 上训练时的结果完全相同.
虽然最近提出了加速卷积网络培训的更复杂方法,采用了网络不同层次的模型和数据并行性,但我们发现概念上更简单的方案已经提供了3.75倍的加速与使用单个GPU 相比,现成的4-GPU 系统.在配备有4 个NVIDIA Titan Black GPU的系统上,根据架构的不同,训练一个网络需要14~21 天[19,20].
4 分类实验
数据集:在本节中,我们将介绍由描述的ConcevNet架构在ILSVRC-2012 数据集上实现的图像分类结果.该数据集包括1000 个类的图像,并分为3 组:训练组(1.3 M 图像数据),验证组(50 K 图像数据)和测试组(具有保持类标签的100 K 图像数据).使用两个度量评估分类性能:top-1和top-5 错误.前者是多级分类错误,即错误分类图像的比例;后者是ILSVRC 中使用的主要评估标准,并且计算为图像的比例,使得地面实况类别在前5 个预测类别之外.
4.1 单尺度演化
我们首先使用Sect 中描述的层配置,以单一规模评估各个卷积网络模型的性能[21].测试图像尺寸设定如下:Q=S表示固定S,Q=0.5(Smin+Smax) 表示抖动S∈[Smin,Smax].结果如表1所示.
首先,我们注意到使用本地响应规范化(A-LRN网络)并没有改进没有任何规范化层的模型A.因此,我们不在深层结构(B~E)中采用标准化.
其次,我们观察到分类误差随着卷积网络深度的增加而减小:从A 中的11 层到E 中的19 层.值得注意的是,尽管深度相同,但配置C (包含3 个1×1 转换层)的性能更差比配置D,它在整个网络中使用3×3 转换层.这表明虽然附加的非线性确实有帮助(C 比B 更好),但使用conv 捕获空间上下文也很重要.具有非平凡接收字段的过滤器(D 优于C).当深度达到19 层时,我们的架构的错误率会饱和,但更深的模型可能对更大的数据集有益.我们还将净B 与浅网进行了比较,其中5 个为5×5 转换.通过3×3 转换的替换对来自B的层.具有单个5×5 转换的层.层是指在2.3 节中具有相同的感受区域.在中心作物上,测量浅网的前1 个误差比B的高1%,这证实了具有小过滤器的深网优于具有较大过滤器的浅网.
最后,即使在测试时使用单个尺度,在训练时间(S∈[256;512])的尺度抖动导致对具有固定最小边(S=256 或S=384)的图像的显着更好的结果.这证实了通过尺度抖动的训练集增加确实有助于捕获多尺度图像统计.
4.2 多尺度演化
在单一规模评估卷积网络模型后,评估规模抖动对时间的影响,包括在测试图像的几个重新缩放版本上运行模型(对应于不同的Q值),然后对得到的类后验进行平均[22].考虑到训练和测试量表之间的巨大差异导致性能下降,在3 个测试图像大小上评估具有固定S的模型,接近训练一:Q={S-32,S,S+32}.同时,在训练时刻度抖动允许网络在测试时应用于更宽范围的尺度,因此模型训练变量S∈[Smin,Smax],结果如表2所示.
表2 卷积网络多尺度演化性能测试
表2中显示的结果表明,在测试时刻度的抖动导致更好的性能(与在单一规模上评估相同模型相比,如表3所示).与以前一样,最深的配置(D和E)表现最佳,并且比例抖动优于使用固定最小边S的训练.我们在验证集上的最佳top-1/ top-5是24.8%、7.5%错误.在测试集上,配置E 达到7.3%的前5 个错误.
4.3 Multi-crop 演化
在表3中,我们将密集的卷积网络评估与多作物评估进行比较.我们还通过平均其软最大输出来评估两种评估技术的互补性[23].可以看出,使用多种作物的表现略好于密集评价,这两种方法确实是互补的,因为它们的组合优于每一种.如上所述,我们假设这是由于对卷积边界条件的不同处理.
表3 网络演化方法比较
4.4 卷积网络混合演化
到目前为止,我们评估了各个卷积网络模型的性能.在这部分实验中,我们将几个模型的输出结合起来,通过平均它们的Softmax 类后验.由于模型的互补性,这提高了性能,并且在2012年和2013年的顶级ILSVRCs提交中使用[24].结果显示在表4中.
表4 不同网络模型错误率比较(%)
到ILSVRC 提交时,我们只训练了单级网络,以及多尺度模型D (仅通过微调全连接层而不是所有层).由此产生的7 个网络集合有7.3%的ILSVRC 测试错误.提交后,我们考虑了仅有两个性能最佳的多尺度模型(配置D和E)的集合,使用密集评估将测试误差降低到6.8%使用综合密集和多作物评估.作为参考,我们表现最佳的单模具有7.1%的误差.
实验发现,从深层网络的角度出发,不同的隐层对学习速度的差异很大.当靠近输出层时,其相应权值矩阵学习的情况很好,而靠近输入层时,其权值矩阵学习很慢,有时训练了很久,前几层的权值矩阵仍然和随机初始化的值差不多.因此,深度学习中梯度消失问题的根源在于反向传播算法.为了摆脱反向传播思想的限制,有研究人员提出了CapsuleNet,充分地利用数据中组件的朝向和空间上的相对关系,并使用动态路由算法计算胶囊的输出.但是该网络并没有完全地摆脱反向传播算法,因为网络中的转换矩阵仍然用成本函数通过反向传播进行训练.近年来,关于梯度消失问题,研究人员提出了一系列改良方案,如精调结合的训练策略和预训练、梯度剪切、权重正则,使用不同的激活函数(如ReLU),使用批量归一化技巧,使用残差结构,使用LSTM 网络等[25].为了从本质上解决梯度消失问题,设计避免局部极值和鞍点的高效优化算法成为目前深度学习研究的重点.
5 结论
在这项工作中,我们评估了非常深的卷积网络(最多19 个权重层),用于大规模图像分类.已经证明,表示深度有利于分类准确性,并且使用传统的卷积网络架构可以实现ImageNet 挑战数据集上的最先进性能.深度大幅增加.我们还展示了我们的模型很好地概括了广泛的任务和数据集,匹配或优于围绕不太深的图像表示构建的更复杂的识别管道.我们的结果再次证实了深度视觉表征的重要性.