当前位置: 首页 > 科技观察

Princeton和Intel提出了ParNet,其速度和精度明显优于ResNet

时间:2023-03-12 13:39:18 科技观察

深度是深度神经网络的关键,但更多的深度意味着更多的序列计算和更多的延迟。这就引出了一个问题——是否有可能构建高性能的“非深度”神经网络?最近,普林斯顿大学和英特尔实验室的一项研究证明了这一观点的可行性。该研究使用并行子网络而不是一层一层地堆叠,这有助于在保持高性能的同时有效降低深度。论文地址:https://arxiv.org/abs/2110.07641通过利用并行子结构,该研究首次表明深度仅为12的网络在ImageNet上可以达到80%以上,在CIFAR10上可以达到96%以上,在CIFAR100上超过96%。达到了81%的top-1准确率。该研究还表明,具有低深度主干的模型可以在MS-COCO上实现48%的AP指标。研究人员分析了设计的缩放规则,并展示了如何在不改变网络深度的情况下提高性能。最后,研究人员提供了关于如何使用非深度网络构建低延迟识别系统的概念证明。方法本研究提出了一种深度较低但仍能在多个基准测试中实现高性能的网络架构ParNet。ParNet由以不同分辨率处理特征的并行子结构组成。这些并行子结构称为流,来自不同流的特征在网络的后期融合,融合后的特征用于下游任务。图2a提供了ParNet的示意图。图2ParNetBlockParNet使用VGG样式的块(Simonyan&Zisserman,2015)。为了探索非深度网络是否可以实现高性能,该研究通过实验发现,VGG-styleblocks比ResNet-styleblocks更适合(如下表8所示)。一般来说,训练VGG风格的网络比ResNets更难(Heetal.,2016a)。但最近的一些工作表明,使用“结构重新参数化”方法更容易训练VGG样式块(Ding等人,2021)。在训练期间,该研究在3×3卷积块上使用多个分支。经过训练,多个分支可以融合成一个3×3的卷积块。因此,我们最终得到一个仅由3×3块和非线性组成的简单网络。块的这种重新参数化或融合有助于减少推理期间的延迟。下采样和融合块除了具有相同输入和输出大小的RepVGG-SSE块外,ParNet还包括下采样和融合块。下采样块降低分辨率并增加多尺度处理的宽度,而融合块组合来自多个分辨率的信息。在下采样块中,没有残差连接(skipconnection);相反,该研究添加了一个与卷积层并行的单层SE模块。此外,该研究在1×1卷积分支中添加了2D平均池化。融合块类似于下采样块,但包括一个额外的连接层。由于级联,融合块的输入通道数是下采样块的两倍。为了减少参数量,本研究的下采样和融合块的设计如下图所示。NetworkArchitecture图2a显示了在ImageNet数据集上使用的ParNet模型的示意图。初始层由一系列下采样块组成,下采样块2、3和4的输出分别馈送到流1、2和3。研究人员发现3是给定参数预算的最佳流数(如表10所示)。每个流都包含一系列RepVGG-SSE块处理不同分辨率的特征。来自不同流的特征然后由融合块使用级联来融合。最后,输出被传递到深度为11的下采样块。与RepVGG(Dingetal.,2021)类似,本研究对最后一个下采样层使用了更大的宽度。扩展ParNet据观察,神经网络可以通过扩展网络来实现更高的精度。之前的研究(Tan&Le,2019)扩展了宽度、分辨率和深度。由于本研究的目标是评估是否可以在较低的深度实现高性能,因此研究人员保持模型的深度不变,并通过增加宽度、分辨率和流的数量来扩展ParNet。对于CIFAR10和CIFAR100,该研究增加了网络的宽度,同时保持分辨率为32,流的数量为3。对于ImageNet,该研究在三个不同的维度上进行了实验,如下图3所示。并行架构的实用优势目前5nm光刻工艺接近0.5nm晶硅尺寸,进一步提升处理器频率的空间有限。这意味着神经网络更快的推理必须依赖于计算的并行化。单个单片GPU的性能提升也在放缓,传统光刻技术可实现的最大裸片尺寸有望达到800平方毫米(Arunkumar等人,2017年)。总的来说,未来将在处理器频率、芯片尺寸和每个处理器的晶体管数量方面保持稳定。为了解决这个问题,最近的一些工作提出了多芯片模块GPU(MCM-GPU),它比可实现的最大单片GPU更快。用中型芯片取代大型芯片有望降低硅成本。这样的芯片设计有利于具有并行分支的分区算法,这些并行分支交换有限的数据并尽可能独立地执行。基于这些因素,非深度并行结构将有利于实现快速推理,特别是对于未来的硬件。实验结果表1显示了ParNet在ImageNet上的性能。研究发现,深度仅为12的网络可以达到惊人的高性能。为了与ResNet进行公平比较,研究人员使用相同的训练协议和数据增强对ResNet进行了再训练,这将ResNet的性能提升到了官方结果之外。值得注意的是,该研究发现ParNet-S的准确度比ResNet34高出1个百分点以上,参数数量较少(19M对22M)。ParNet还通过瓶颈设计实现了与ResNet相当的性能,同时将深度降低到1/4-1/8。如下表2所示,ParNet在精度和速度上优于ResNet,但也有更多的参数和flops。例如,ParNet-L实现了比ResNet34和ResNet50更快的速度和更好的精度。同样,ParNet-XL实现了比ResNet50更快的速度和更好的精度,但参数和触发器更多。这表明在使用ParNet而不是ResNet时,参数和触发器之间存在速度权衡。请注意,可以通过利用可分布在GPU上的并行子结构来实现高速。该研究测试了ParNet的三种变体的速度:未融合、融合和多GPU,结果如下表3所示。未融合变体由RepVGG-SSE块中的3×3和1×1分支组成。在融合变体中,使用结构重新参数化技术将3×3和1×1分支合并为单个3×3分支。对于融合和非融合变体,该研究使用单个GPU进行推理,而对于多GPU变体,使用了3个GPU。对于多GPU变体,每个流都在单独的GPU上启动。当处理一个流中的所有层时,来自两个相邻流的结果将被连接起来并在其中一个GPU上进一步处理。为了跨GPU传输数据,该研究使用了PyTorch中的NCCL后端。研究发现,尽管存在通信开销,但ParNet可以跨GPU高效并行化以实现快速推理。使用专用硬件可以减少通信延迟,甚至可以实现更快的速度。表5显示了其他提高ParNet性能的方法,例如使用更高分辨率的图像、更长的训练制度(200个时期、余弦退火)和10-crop测试。这项研究有助于评估非深度模型在ImageNet等大规模数据集上可以达到的准确性。MS-COCO(Linetal.,2014)是一个对象检测数据集,其中包含具有常见对象的日常场景图像。研究人员使用COCO-2017数据集进行评估。如下表4所示,即使在单个GPU上,ParNet也能实现比基线更高的速度。这阐明了如何使用非深度网络来构建快速对象检测系统。表6总结了各种网络在CIFAR10和CIFAR100上的性能。消融实验为了测试是否可以简单地降低ResNet的深度并使其更宽,研究人员测试了三种ResNet变体:ResNet12-Wide、ResNet14-Wide-BN和ResNet12-Wide-SSE。ResNet12-Wide使用深度为12的ResNet基块,而ResNet14-Wide-BN使用深度为14的ResNet瓶颈块。表7给出了各种网络架构和训练协议设计的消融研究结果,包括3个案例使用数据增强、SSE块和SiLU激活函数。在表10中,我们评估了参数总数相同但分支数量不同(1、2、3、4)的网络。实验表明,对于固定数量的参数,具有3个分支的网络具有最高的精度,并且对于224x224和320x320两种网络分辨率都是最优的。并行化网络的另一种方法是创建多个网络的集合。因此,本研究比较了ParNet和集成网络。如下表9所示,ParNet在使用较少参数时优于集成。