网络越"深"越"好"?

2021-12-02 15:46:08 浏览数 (1)

作者:十方

深度神经网络的特点是啥?特点就是深,但是越深的网络意味着计算复杂度的加大和更高的延迟,这产生了个疑问?网络真的越深越好吗?有么有"不深又好"的网络呢?这篇论文<NON-DEEP NETWORKS>给了我们肯定的答案。这篇论文充分利用了并行子网络有效的降低了网络的深度并提升了模型的效果。

Introduction

曾几何时,越深的网络就意味着越好的效果,从Inceptions->ResNets->DenseNet等等,直到现在都被"巨大的"transformer模型所替代。我们都发现越深的网络往往带来更好的效果但是也带来了更高的计算复杂度,更大的内存需求,和长达可能数天的训练时间。Non-Deep Networks因此就诞生了,仅仅用了12层就取得了最好的效果。神经网络缩放通常增加网络深度,分辨率和宽度,但是该论文提出的ParNets选择了并行子网络结构。

Architecture

主要思想就是使用12层网络,并使用并行化,如下图所示,我们会看到一些流(分支),每个分支带有类似于VGG模型的blocks,这些blocks称为ParNet blocks。多个3x3卷积分支可合并为单个3x3卷积分支,有效减少推理次数。

每个ParNet块由3个主要组件组成,然后在下一个块之前合并/融合这些组件:

  • 1 * 1 convolution
  • 3 * 3 convolution
  • SSE(Skip-Squeeze-and-Excitation) layer also called the RepVGG-SSE block

SSE如上图最右侧所示。它所做的基本上是,增加感受域而不增加深度,而不是传统的Squeeze-Excitation实现。为了在浅网络规模下诱发比ReLU激活更多的非线性,作者选择使用较新的SiLU。

下一步是down-sampling和fusion blocks。下采样导致宽度增加,这有利于多尺度处理。这个block非常简单,使用Squeeze-Excitation(SE)层和连接到1x1卷积分支的average pooling层。除了一个额外的连接层外,fusion与下采样没有什么不同。

实验

该模型在ImageNet上使用SGD优化器,batchsize为2048,训练120个epoch。如果batchsize大小不满足memory,则学习率会随batchsize大小成比例降低。我们可以看到ParNet比ResNets效果更好。

参考资料

1.https://arxiv.org/pdf/2110.07641.pdf

2.https://github.com/imankgoyal/NonDeepNetworks

0 人点赞