Skip to main content
QUICK REVIEW

[论文解读] Layer Folding: Neural Network Depth Reduction using Activation Linearization

Amir Ben Dror, Niv Zehngut|arXiv (Cornell University)|Jun 17, 2021
Advanced Neural Network Applications参考文献 63被引用 4
一句话总结

该论文提出了一种名为层折叠(Layer Folding)的方法,通过学习移除连续卷积层之间的非线性激活函数,从而减少神经网络的深度,使这些层能够合并为单个更大的卷积层。该方法在移动设备和边缘设备上实现了高达25%的延迟降低,同时精度下降极小(最低仅0.5%),并在ImageNet基准测试中保持或提升了性能。

ABSTRACT

Despite the increasing prevalence of deep neural networks, their applicability in resource-constrained devices is limited due to their computational load. While modern devices exhibit a high level of parallelism, real-time latency is still highly dependent on networks' depth. Although recent works show that below a certain depth, the width of shallower networks must grow exponentially, we presume that neural networks typically exceed this minimal depth to accelerate convergence and incrementally increase accuracy. This motivates us to transform pre-trained deep networks that already exploit such advantages into shallower forms. We propose a method that learns whether non-linear activations can be removed, allowing to fold consecutive linear layers into one. We apply our method to networks pre-trained on CIFAR-10 and CIFAR-100 and find that they can all be transformed into shallower forms that share a similar depth. Finally, we use our method to provide more efficient alternatives to MobileNetV2 and EfficientNet-Lite architectures on the ImageNet classification task.

研究动机与目标

  • 通过在不造成显著精度下降的前提下减少网络深度,解决资源受限设备上深度神经网络高延迟的挑战。
  • 探究预训练的深度神经网络是否可以被转化为更浅、更高效的形态,同时保持其表征能力。
  • 确定一个最小深度阈值——称为有效非线性度(Effective Degree of Non-Linearity, EDNL)——在此阈值以上,网络可被压缩而不损失性能。
  • 提出一种通过学习移除层间ReLU-like激活函数来实现深度减少的方法,从而实现相邻线性层的功能性合并。
  • 通过激活函数线性化实现深度减少,为MobileNetV2和EfficientNet-Lite等流行移动端架构提供高效替代方案。

提出的方法

  • 提出一种技术,用于学习判断在不降低模型精度的前提下,哪些连续卷积层之间的非线性ReLU6激活可以被移除。
  • 正式定义该变换为通过移除中间非线性激活,将连续的线性层折叠为单个等效层,从而将卷积核大小从 $k \times k$ 扩大至 $(2k-1) \times (2k-1)$。
  • 在微调阶段应用该方法,以保留原始网络的中间表示,避免从头开始重新训练。
  • 在成对的ReLU6激活之间使用共享的可学习参数 $\alpha$,确保其要么同时被移除,要么同时被保留,从而实现每一块的稳定折叠。
  • 将该方法应用于MobileNetV2和EfficientNet-Lite中的整个MBConv模块,当两个ReLU6激活都被移除时,将扩展、深度可分离和投影层折叠为单个卷积。
  • 通过硬件感知的延迟优化,优先减少层间计算开销,尤其对具有高层内并行性的加速器和GPU有益。

实验结果

研究问题

  • RQ1能否通过移除非线性激活,将预训练的深度神经网络转化为更浅的形态,且精度下降极小?
  • RQ2为在给定任务上保持性能所需的最小深度(即有效非线性度,EDNL)是多少?该值在不同架构间是否一致?
  • RQ3在连续卷积层之间移除中间ReLU6激活是否能实现实质性层合并,同时在边缘设备上降低延迟?
  • RQ4与现有的剪枝和重参数化技术相比,所提出的层折叠方法在效率与精度权衡方面表现如何?
  • RQ5该方法能否有效应用于MobileNetV2和EfficientNet-Lite等最先进移动端架构,实现更快的推理速度,且FLOPs增加极少?

主要发现

  • 层折叠在ImageNet分类任务中将推理延迟降低了高达25%,在MobileNetV2-1.0和MobileNetV2-1.4上效果最为显著。
  • 该方法在Top-1精度上比MobileNetV2-0.75高出1.2%,同时快14%,展示了更优的效率-精度权衡。
  • 在MobileNetV2-1.4上,延迟降低19%,FLOPs减少3%,精度仅下降0.5%,显示出极强的实际可行性。
  • 对于EfficientNet-Lite0,延迟降低15%,FLOPs减少3%,精度仅下降0.5%,表明该方法在多种架构中均具有广泛适用性。
  • 通过移除两个ReLU6激活,将整个MBConv模块折叠,可使扩张因子 $t=6$ 的模块计算负载减半,因为三个卷积被合并为一个。
  • 该方法实现了有利的权衡:尽管在某些情况下(如当 $c \gg 9$ 时)FLOPs可能略有增加,但层间开销的减少在硬件加速器上带来了净延迟收益。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。