非深度网络是否可以实现高性能的神经网络?(图)

神经网络的深度并不意味着一切?在最近的一项研究中,普林斯顿大学和英特尔的研究人员提出了一种使用并行子网络或子架构的神经网络 ParNet,可以在保持高性能的同时有效降低深度,甚至可以实现更快的速度和更好的性能。准确性。

深度是深度神经网络的关键,但更多的深度意味着更多的顺序计算和更多的延迟。这就引出了一个问题——是否有可能构建高性能的“非深度”神经网络?

普林斯顿大学和英特尔实验室最近的一项研究证明了这一想法的可行性。该研究使用并行子网络而不是逐层堆叠,这有助于在保持高性能的同时有效地减少深度。

论文地址:

通过利用并行子架构,这项研究首次表明,深度仅为 12 的网络在 ImageNet 上可以达到 80% 以上,在 CIFAR10 上可以达到 96% 以上,在 CIFAR100 上可以达到 81% 的 top-1 准确率。该研究还表明,具有低深度骨干网络的模型可以在 MS-COCO 上实现 48% 的 AP 指标。研究人员分析了这种设计的缩放规则,并展示了如何在不改变网络深度的情况下提高性能。最后,我们提供了一个关于如何使用非深度网络构建低延迟识别系统的概念验证。

方法

本研究提出了一种深度较低但仍能在多个基准测试中实现高性能的网络架构 ParNet,它由处理不同分辨率特征的并行子架构组成。这些并行的子结构被称为流,来自不同流的特征稍后在网络中融合,融合后的特征用于下游任务。图 2a 提供了 ParNet 的示意图。

图 2

ParNet 块

ParNet 中使用了 VGG 样式的块(Simonyan & Zisserman, 2015)。为了探索非深度网络是否可以实现高性能,本研究发现 VGG 样式的块比 ResNet 样式的块更适合通过实验(见下表 8)。一般来说,训练 VGG 风格的网络比 ResNet 更难(He et al., 2016a)。然而,最近的一些工作表明,使用“结构重新参数化”方法(Ding et al. , 2021), 将使 VGG 风格的块更容易训练。

在训练期间,该研究在 3×3 卷积块上使用多个分支。训练后,可以将多个分支融合成一个 3×3 的卷积块。因此,我们最终得到了一个仅由 3×3 块和非线性组成的简单网络。块的这种重新参数化或融合有助于减少推理过程中的延迟。

下采样和融合块

除了具有相同输入和输出大小的 RepVGG-SSE 块外,ParNet 还包括下采样和融合块。下采样块会降低分辨率并增加多尺度处理的宽度网络交换技术中第3层交换的含义是什么,而融合块会结合来自多个分辨率的信息。在下采样块中,没有跳过连接;相反,本研究添加了一个与卷积层并行的单层 SE 模块。

此外,本研究在 1×1 卷积分支中添加了 2D 平均池化。融合块类似于下采样块,但包括一个额外的连接层。由于连接,融合块的输入通道数是下采样块的两倍。为了减少参数量,本研究的下采样融合模块设计如下图所示。

网络架构

图 2a 显示了在 ImageNet 数据集上使用的 ParNet 模型的示意图。初始层由一系列下采样块组成,下采样块 2、3 和 4 的输出分别馈送到流 1、2 和 3。研究人员发现 3 是给定参数预算的最佳流数(如表 10 所示)。每个流由一系列处理不同分辨率特征的 RepVGG-SSE 块组成。然后来自不同流的特征由融合块使用连接进行融合。最后,将输出传递给深度为 11 的下采样块。与 RepVGG(Ding 等人,2021))类似,本研究对最后一个下采样层使用更大的宽度。

扩展 ParNet

已经观察到,神经网络可以通过扩大网络来实现更高的准确度。之前的一项研究 (Tan & Le, 2019) 扩展了宽度、分辨率和深度。由于这项研究的目标是评估是否可以在较低深度实现高性能,因此研究人员使用模型的深度来保持不变,ParNet 通过增加流的宽度、分辨率和数量来扩展。

对于 CIFAR10 和 CIFAR100,本研究增加了网络的宽度,同时保持分辨率为 32,流数为 3。对于 ImageNet,该研究进行了三个不同维度的实验,如下图 3 所示。

图片[1]-非深度网络是否可以实现高性能的神经网络?(图)-老王博客

并行架构的实际优势

目前5nm光刻工艺已经接近0.5nm晶硅尺寸,处理器频率进一步提升的空间有限。这意味着神经网络的更快推理必须依赖于计算的并行化。单个单片 GPU 的性能增长也在放缓,传统光刻可实现的最大裸片尺寸有望达到 800 mm2 (Arunkumar et al., 2017)。每个处理器的晶体管数量将保持一个高原。

为了解决这个问题,最近的一些工作提出了多芯片模块 GPU(MCM-GPU),它比最大的可实现的单芯片 GPU 更快。用中型芯片取代大型芯片有望降低硅成本。这种芯片设计促进了具有并行分支的分区算法,其中有限的数据尽可能独立地交换和执行。基于这些因素,非深度并行结构将有利于快速推理网络交换技术中第3层交换的含义是什么,尤其是对于未来的硬件。

实验结果

表 1 显示了 ParNet 在 ImageNet 上的性能。研究发现,深度仅为 12 的网络可以实现惊人的高性能。为了与 ResNet 进行公平比较,我们使用相同的训练协议和数据增强来重新训练 ResNet,这将 ResNet 的性能提升到超出官方结果。值得注意的是,该研究发现 ParNet-S 在准确度上比 ResNet34 高出 1 个百分点以上,而参数数量较少(19M 对 22M)。ParNet 在将深度降低到 1/4-1/8 的同时,也实现了与具有瓶颈设计的 ResNet 相当的性能。

如下表 2 所示,ParNet 在准确率和速度上优于 ResNet,但也有更多的参数和 flops。例如,ParNet-L 比 ResNet34 和 ResNet50 实现了更快的速度和更好的准确度。同样,ParNet-XL 比 ResNet50 实现了更快的速度和更好的准确率,但参数和触发器更多。这表明在使用 ParNet 而不是 ResNet 时,速度和参数和 flop 之间存在权衡。请注意,可以通过利用可以分布在 GPU 上的并行子结构来实现高速。

本研究测试了 ParNet 的三种变体:unfused、fused 和 multi-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 epochs、余弦退火)和 10-crop 测试。这项研究有助于评估非深度模型在 ImageNet 等大规模数据集上可以实现的准确性。

MS-COCO (Lin et al., 2014) 是一个物体检测数据集,包含日常场景中常见物体的图像。研究人员使用 COCO-2017 数据集进行评估。如下表 4 所示,即使在 ParNet 中也在单个 GPU 上实现了比基线更高的速度。这说明了如何使用非深度网络来制作快速目标检测系统。

表 6 总结了各种网络在 CIFAR10 和 CIFAR100 上的性能。

消融实验

为了测试是否可以简单地减少 ResNet 的深度并使其更宽,我们测试了三种 ResNet 变体:ResNet12-Wide、ResNet14-Wide-BN 和 ResNet12-Wide-SSE。ResNet12-Wide 使用深度为 12 的 ResNet 基础块,而 ResNet14-Wide-BN 使用深度为 14 的 ResNet 瓶颈块。表 7 展示了对各种网络架构和训练协议设计的消融研究结果,包括使用数据增强、SSE 块和 SiLU 激活函数的 3 个案例。

在表 10 中,我们评估了参数总数相同但分支数不同的网络(1、2、3、4)。实验表明,对于固定数量的参数,其中 3 分支网络具有最高的精度,对于 224×224 和 320×320 的网络分辨率都是最佳的。

并行化网络的另一种方法是创建多个网络的聚合。因此,本研究比较了 ParNet 和集成网络。如下表 9 所示,ParNet 在使用较少参数时优于集成网络。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论