其他分享
首页 > 其他分享> > #PaperWeekly# 2021 EfficientNetV2: 谷歌发布更小、更快、更强的深度学习模型

#PaperWeekly# 2021 EfficientNetV2: 谷歌发布更小、更快、更强的深度学习模型

作者:互联网

在这里插入图片描述

文章目录


前言

今天介绍一篇谷歌大脑最近发布的论文,EfficientNetV2。号称更小、更快、更强的深度学习模型,较目前的SOTA模型来说,具有训练速度更快、模型参数更少、准确率指标更优的特点。目前代码还未开源,所以还不能拿来玩一玩。大家可以先了解一下这个模型优化的地方和一些有趣的发现。我将从以下五个方面来进行介绍,包括工作开展的动机及主要贡献、EfficientNetV2的模型结构、改进版的渐进式学习算法、这个模型在各个数据集上的性能表现,最后是简单的总结。


一、动机与贡献

首先,大家都知道,对于深度学习模型而言,模型的训练效率是非常重要的一个问题,这里的效率主要包括两个方面,一是训练时间、二是训练后的模型参数。因为现有的一些性能比较好的模型,举个例子,GPT3,大家公认的在少样本学习上表现出来的性能很好,但是训练效率就不高,需要好几周的训练、几千块GPU集群,所以训练成本极高,对于一般用户来说,不可能有机会参与到训练或者优化的工作中,这是目前深度学习发展的一个很大的限制。

第二个是,EfficientNet模型,这个模型是19年谷歌发布的,这个模型已经开源了,系统地研究了模型缩放并且仔细验证了网络深度、宽度和分辨率之间的平衡进而获得更好的性能表现, 待会儿我们会讨论这个模型存在的三个值得思考的问题或者说可以优化的地方,这是本文的第二个动机。

第三个动机就是,现有的渐进式学习都是采用渐进式的更改输入图片的尺寸来实现,但是保持同样的正则化配置,作者认为这是导致模型性能下降的一大因素。可能大家还不太知道什么是渐进式学习,待会儿我会介绍一下。

因此基于上述三个动机,本文EfficientNetV2提出了相应的改进方案。总的来说,本文的贡献主要包括三点

1. 提出了EfficientNetV2模型,谷歌在EfficientNet的基础上,引入了Fused-MBConv到搜索空间中
2. 修改了渐进式学习策略,提出了自适应调整正则化参数的机制,实现了加速训练、同时还能够保证准确率不降,甚至还有细微上升的效果。
3. 最后作者在多个benchmark上进行了实验,我们可以发现模型在多个基准数据集上取得了SOTA性能,且训练效率更高。

二、EfficientNetV2的模型结构

1.EfficeientNet存在的三个问题

我们下面着重介绍一下EfficientNetV2的模型结构,首先来讨论一下EfficeientNet存在的三个问题。

第一个,已有研究表明:EfficientNet的大图像尺寸会导致显著的内存占用。由于GPU/TPU的总内存是固定的,我们不得不采用更小的batch训练这些模型,这无疑会降低训练速度。大家可以看到这个图,如果训练图片尺寸设置为512,就会出现OOM的问题,如果小尺寸,则batch size的数量又会显著增加。这个很好理解,对吧。所以,需要渐进式的输入图片

在这里插入图片描述

第二个,DepthWise卷积不能完全利用现有的加速器。什么是DepthWise卷积呢?我们可以来看看这两张图,左边的图是常规卷积,这种卷积就是每个卷积核都对每个通道进行了一次计算。右边这个图是DepthWise卷积方式,这种卷积则只让每个卷积核卷积一个通道,也就是说我们经过Depthwise卷积后,不会改变我们Tensor的通道数目,这样就极大的节省了计算开销。但是研究发现,DepthWise卷积很大的一个问题是不能充分利用现有的加速器,同时Fused-MBConv被论证能够充分利用移动端和服务器端的加速器加速计算,因此引入了这个算子到搜索空间中,进一步提速。
在这里插入图片描述

第三个值得讨论的是EfficientNet,提出我们需要同时考虑网络宽度、网络深度和分辨率来设计网络结构,也验证了这种方式提升了模型性能。但是采用的策略是对模型结构均匀的缩放和扩张,什么意思呢?就是每个stage的扩张倍数是一样的,举个例子,比如我把depth系数配置为2,那么每个stage的网络深度都乘2。作者认为,这种策略是需要被优化的,不是所有的阶段对模型的训练效率、模型性能影响都是相同的。因此,本文采用了非均匀的模型缩放策略,越往后的stage模型层数越深。

在这里插入图片描述

2.EfficeientNetV2改进

有了上面的讨论,那么对于这篇论文网络架构的设计就很好理解了。我们来看看。

1.首先是神经网络结构搜索的改进,作者的主要改进包括:把Fused-MBConv算子加入到搜索空间中,移除一些不重要的搜索选项。

在这里插入图片描述

2.第二个是网络架构的改进,我们可以看到这个表格,主要改进的地方,就是最初的几层改为同时使用MBConv和Fused-MBConv,Kernal size降低为了3*3,最后一层Stride-1层被移除了,这三个改进的地方降低了内存访问的开销,确保了训练加速。

在这里插入图片描述

3.第三个改进的地方就是严格限制了模型infer的图片尺寸大小、同时越往后的阶段,模型的层数增加越多。这两个改进明显提升了模型的训练和推断效率。我们可以看到右边这张图,在没有引入渐进式学习的情况下,模型在取得同样Accuracy的情况下,EfficientNetV2的迭代次数明显是低于其他模型的。
在这里插入图片描述

三.改进版渐进式学习算法

好,现在就剩下最后一个问题了,那就是引入改进的渐进式学习的策略。

什么是渐进式学习呢?渐进式学习的话,就是在训练过程中,动态的调整输入图片的尺寸,来尽可能多的使用数据集。但是现有的渐进式学习研究,只改了输入,并没有修改模型的正则化参数,也就是没有改变模型反向调参的过程,那是不是认为不同分辨率的图片对模型的影响是同等的。作者认为,这是导致模型Accuracy下降的一个原因。我们的经验其实可以看到,更大的模型应该需要更严格的正则化来避免过拟合,例如EfficientNet-B7就需要设置更大的dropout值以及更强的数据增强方式。

所以这篇论文,认为即使对于同一个网络,更小的图片尺寸训练出的模型性能更差,所以正则化要求更弱,反之,大尺寸的图片,依赖于更严格的正则化配置

在这里插入图片描述

可以看到上面这个图,EfficientNetV2在训练的过程中,输入图片尺寸是在逐步增大的,同时实验配置的正则化参数也随之增大,包括三个参数,dropout的概率、随机擦除样本的行数、两种图片混合的比例,也就是数据增强的幅度在逐渐增大,来提升模型正则的要求

在这里插入图片描述
完整的过程如算法1的描述所示,初始化图片的尺寸和正则化参数配置,同时设置最终的图片尺寸和正则化参数,以及迭代的步数和模型的Stage数目,然后在训练的过程中,不断增加图片尺寸和正则化强度。

OK,以上就是模型的两大主要改进的部分,模型架构和改进版的渐进式学习过程。后面是就是一些吹水的内容了,包括在各个benchmark上的性能表现和消融实验。我们快速瞻仰一下这个模型有多厉害。

4.实验结果

在这里插入图片描述

这篇论文的主要实验结果就是这张图。第1个实验,我们看第五行和倒数第五行两条数据,可以看出EfficientNetV2的训练速度提升了11倍,同时,相较于ViT-L/ 16这个模型来说,准确率提升了1.5个百分点,参数量降低了2.5倍,FLOPs减少了3.6倍,训练速度也提升了6-7倍。第3点,在ImageNet21k数据集上预训练可以显著提升模型精度。在高准确率的情况下(模型准确率超过85%),缩放数据尺寸比简单的缩放模型尺寸更有效。

在这里插入图片描述

第二个实验,对比了EfficientNetV2和EfficientNet的性能。EfficientNetV2 相较于EfficientNet, 模型参数、FLOPs提升效果有限,但是推断速度提升了3倍。这个结果的获得,就是刚才提到的,引入了Fuded_MBConv这个结构,还有搜索空间的调整。

在这里插入图片描述

然后,第三个实验,对比了在不同数据集上,模型的预训练泛化能力,可以看到模型准确率均有不同程度的提升。

然后是消融实验的部分, 首先对比了改进版的渐进式学习对模型性能的影响,我们可以看到,在不同的模型中,改进版的渐进式学习机制都可以有效地减少训练时间,同时提升准确率。
在这里插入图片描述

下面这个表格对比了两种正则化策略,一种是本文提到的算法,一种是随机选择正则化策略,可以看到,模型的准确率得到了提升,同时曲线图里面,绿色的是添加了自适应正则化策略的模型训练迭代过程,黄色的是不加。因此,我们可以从实验结果中看到,由于在小尺寸图片上使用小的正则化,自适应配置,因此,可以保证模型收敛速度更快、最终获得更好的准确率。
在这里插入图片描述

在这里插入图片描述

OK,这个就是这篇论文完整的工作,我个人感觉这些tricks看起来都很好理解。

5. 结论和一些思考

虽然说这篇论文是在大模型的训练上采用的一些trick,但是我感觉对于文本的一些下游任务的finetune过程也是可以借鉴的,比如文本分类任务,每次输入模型的sequence是固定的,那么我们每次都会对样本进行填充或者截断,而样本本身来说,长度是不同的,如果能够渐进式的根据样本长度来自适应训练过程,应该对模型的性能指标也会有影响,我觉得可以在文本任务上试一试。当然对于CV来说,效果已经被验证过了,等代码开源了,可以拿来玩一玩。

以上就是我对于EfficientNetV2的解读,不知道大家有没有什么问题,或者我没有说明白的地方?任何问题和不恰当的地方,欢迎留言交流。


标签:PaperWeekly,训练,卷积,模型,渐进式,正则,2021,EfficientNetV2
来源: https://blog.csdn.net/weixin_43955436/article/details/116378910