首页 > 编程知识 正文

邓嘉皇冠(resnet34)

时间:2023-05-05 01:34:46 阅读:94590 作者:251

作者丨happy

编辑丨极市平台

原文链接: https://Arxiv.org/pdf/2110.07641.pdf

代码链接: https://github.com/imankgoyal/nondeepnetworks

这是普林斯顿大学Jia Deng队的最新力作ParNet。 通过12层的深度网络,ImageNet实现了80.7%的top-1精度。 提出的ParNet以RepVGG的模块为出发点,同时提出了为非深层网络设计的SSE模块,构建了新模块RepVGG-SSE。 方案以非常浅的结构获得了非常高的性能,例如ImageNet的80.7%、CIFAR10的96%、CIFAR100的81%、MS-COCO的48%。 此外,作者还分析了该结构的定标规律,说明了如何在不改变网络的情况下提高性能。 最后,作者还证明了非深层网络是如何用于构建低延迟识别系统的。

Abstract

深度(深)是深度神经网络的标志。 但是,更深意味着更多的计算量、更高的推理延迟。 这就提出了能否构建高性能的非深神经网络的问题。 根据本文的研究,很好!

为了实现上述目标,我们采用了并行子网络而不是串行的。 该处理方式可以在维持高性能的同时有效地减少深度。

通过利用并联子结构,提案首次在深度为12的网络中实现了ImageNet数据集80.7%的性能,在CIFAR10中达到了96%,在CIFAR100中达到了81%。 同时,提案(深度为12的骨干网)在MS-COCO数据集上达到了48%AP指标。 下图为提案与其他CNN、Transformer模型的深度-性能的比较图。

Method

本论文提出了一种在更浅的同时具有高性能的新架构ParNet。 ParNet包含用于处理不同分辨率输入的并行子结构,这些并行子结构称为流。 不同的流特征在网络后期融合,融合的特征用于下游任务。 下图显示了本论文中提出的ParNet体系结构的示意图。

为了研究在非深度网络上是否能提高性能,我们发现,VGG样式模块比ResNet样式模块更适合这种情况。 因此,ParNet采用了类VGG模块。 一般来说,VGG风格的网络比ResNet的训练难度大的RepVGG等结构重参数化可以有效地解决这一训练难题。

因此,我们从RepVGG出发,对其进行了修改,以适合非深度体系结构。 非深层网络的一个难题是,卷积的感受领域非常有限。 为了解决这个问题,我们基于SE的注意力构建了Skip-Squeeze-Excitation (SSE )。 因为普通SE会增加网络深度,所以普通SE不适用于我们的体系结构。 提案的SSE结构图请参照上图的Figure2右侧。 它附加在跳过的连接分支上,只包含一个全部连接层。 研究表明,该结构设计有助于提高模型的性能。 将如上构建的模块称为RepVGG-SSE。

对于大型数据集,非深度网络不具有足够的非线性,并且可能限制表达能力。 因此,我们采用了SiLU代替了ReLU。

ParNet Block

中,除了RepVGG-SSE (输入和输出大小相同)之外,ParNet还包括缩减取样和融合模块。

降采样模块:用于降低分辨率、增加宽度、促进多尺度处理。 同样跳过连接分支,添加了与卷积并行的单层SE模块,在体积积分分支中添加了2D平均池化。 融合模块:用于融合不同分辨率的信息。 这类似于下采样模块,但添加了concat层。 除了concat,输入通道数很多。 因此,为了减少参数量,采用了g=2的卷积。

h1 class="pgc-h-arrow-right">Network Architecture

上表给出了所提ParNet结构信息说明,注:上表为针对ImageNet而设计的结构。对于CIFAR任务,网络结构有轻微调整。

Scaling ParNet

已有研究表明:调整网络的深度、分辨率以及宽度可以取得更高的精度。由于我们的目标是评估非深度网络是否可以取得更高的性能 ,因此我们保持ParNet的深度不变转而调整宽度、分辨率以及streams数量 。

对于CIFAR10与CIFAR100,我们提升网络宽度而保持分辨率为32,stream为3;对于ImageNet,我们通过实验对三个维度进行调整。

Experiments

上表1给出了ImageNet数据集上的性能对比,可以看到:

深度仅为12的ParNet取得了非常高的性能;ParNet-S具有比ResNet34更高的性能、更低的参数量;ParNet-L具有比ResNet50更高的性能;ParNet-XL具有与ResNet101相当的性能,同时深度仅为其1/8。

上表2给出了所提ParNet与ResNet在精度、速度、参数量以及FLOPs方面的对比,从中可以看到:

相比ResNet34与ResNet50,ParNet-L具有更快的速度、更高的精度;相比ResNet50,ParNet-XL具有更快的速度、更高的精度。这就意味着:我们可以采用ParNet替代ResNet以均衡推理速度-参数量-flops等 因素。

上表3给出了三个ParNet的三个变种:unfused、fused以及多GPU。从中可以看到:ParNet可以跨GPU高效并行以达成更快推理 。这里的实现结果是在通讯负载约束下得到,也就是说:通过特定的硬件减少通讯延迟可以进一步提升推理速度 。

上表通过额外的方式进一步提升ParNet的性能,比如更高分辨率、更长训练周期、10-crop测试。通过不同trick组合,我们将ParNet-XL的性能从78.55提升到了80.72% 。据我们所知,这也是人类识别水平首次被深度为12层的网络达到 。

上图给出了ParNet作为骨干时在MS-COCO检测任务上的性能对比,可以看到:相比基线模型,ParNet具有更快的推理速度,更高的性能 。这说明:非深度网络可以用于构建快速目标识别系统 。

上表给出了CIFAR10与CIFAR100数据集上的性能对比,从中可以看到:

ParNet具有与ResNet、DenseNet相当的性能,同时更浅。ParNet超越了深度为其10倍的ResNet(5.0vs5.3),同时具有更低的参数量(1.3Mvs1.7M);ParNet超过了100倍深度的ResNet(3.90vs4.62),但同时参数量多50%;ParNet与DenseNet的表现相当,参数量稍多,但深度少3-8倍。总而言之,ParNet仅需12层即可取得96.12%@CIFAR10、81.35%@CIFAR100。这进一步说明:非深度网络可以表现的像深度网络一样。

Ablation Study

上表7给出了不同设计候选对于ParNet性能影响,可以看到:这三种设计候选均可导致更高的性能。

上表8给出了VGG风格与ResNet风格模块的性能对比,可以看到:VGG风格的模块更适合于本文目标。

上表给出了ParNet与模型集成的性能对比,可以看到:相比模型集成,ParNet性能更优,参数量更少。

上表给出了不同分支(参数量相同)模型的性能对比,可以看到:当固定模型总参数量后,3分支模型具有最高的精度 。

上图给出了模型缩放过程中不同维度的影响,可以看到:

相比提升通道数,提升streams可以更合理;对于ParNet来说,同时提升三个维度是最有效的方式;上图并未发现ParNet性能饱和,这说明:进一步提升计算量可以得到更高的性能,同时保持低深度。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。