发布时间:2024-07-23 16:01
原文链接:https://arxiv.org/pdf/2110.07641.pdf
原文代码:GitHub - imankgoyal/NonDeepNetworks: Official Code for "Non-deep Networks"
摘要:深度仅为12的网络,可以在ImageNet上达到80%以上的top-1精度,在CIFAR10上达到96%,在CIFAR100上达到81%。还表明,具有低深度(12)骨干的网络可以在MS-COCO上实现48%的AP。
备注:cifar10是10分类数据集,AP是average precision,平均精度
1 介绍
人们普遍认为,网络越深效果越好,然后并不是
本文中研究了非深度神经网络并设计,10基层可以与高层网络媲美,命名为ParNet(parallel networks,并行网络),层数为12在imageNet上准确率超过80%,在CIFAR10上达到96%,在CIFAR100上达到81%。我们还表明,具有低深度(12)骨干的检测网络可以在MS-COCO上实现48%的AP。注意,ParNet中的参数数量与最先进的模型相当,如下图。
ParNet的一个关键设计选择是使用并行子网。
在这种意义上,子网之间没有任何连接,除了在开始和结束。这使我们能够在保持高精确度的同时减少网络的深度。值得注意的是,我们的平行结构不同于通过增加一层神经元的数量来“扩大”网络。
贡献有三:
我们首次表明,深度仅为12的神经网络可以在非常有竞争力的基准上实现高性能(ImageNet上80.7%,CIFAR10上96%,CIFAR100上81%)。
我们将展示如何利用ParNet中的并行结构进行快速、低延迟的推理。
我们研究了ParNet的缩放规则,并证明了在恒定的低深度下的有效缩放。
2 相关工作
深度重要性分析。Cybenko等人的经典工作表明,具有sigmoid激活的单层神经网络可以以任意小的误差逼近任何函数;非线性的深度网络比浅层网络所需的参数要少得多。
Multi-stream networks. 多个分支流
3 方法
开发一种架构,深度要小的多,但仍然具备高性能,由处理不同尺度特征并行子结构组成,并行子结构成为streams,来自不同流的特征在网络后期进行融合(结合),融合后再给后面任务。结构如下图:
12层,三分支并行 。(a)中每个块的宽度与ParNet-M中的输出通道数成比例,高度反映了输出分辨率。ParNet块由三个并行分支组成:1×1 convolution, 3×3 convolution和skip - squeez -and-激励(SSE)。一旦训练完成,1×1和3×3卷积可以融合在一起,以更快地进行推理。SSE支增加感受野而不影响深度。
3.1 PARNET BLOCK
使用VGG风格的块,用3X3来开始分支,分支融合时候仍然采用3X3卷积。
Silu取代Relu,是为了加入非线性。
3.2 DOWNSAMPLING AND fusion block
除了输入输出大小相同的RepVGG-SSE块外,ParNet还包含Downsampling和Fusion块。
3.3 NETWORK ARCHITECTURE
架构参数
网络块结构