论文阅读笔记 | 分类网络——ParNet

简介: 论文阅读笔记 | 分类网络——ParNet

paper:NON-DEEP NETWORKS

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

image.png

摘要:

深度是深度神经网络的标志,但深度越大意味着顺序计算越多延迟也越大。这就引出了一个问题——是否有可能构建高性能的“非深度”神经网络?为了做到这一点,我们使用并行子网,而不是一层接着一层堆叠,且成功实现。

作者实现了一个12层的网络结构实现了top-1 accuracy over 80%on ImageNet的效果。分析网络设计的伸缩规则,并展示如何在不改变网络深度的情况下提高性能。


1. Introduction


人们普遍认为,大深度是高性能网络的重要组成部分,因为深度增加了网络的表征能力,并有助于学习越来越抽象的特征。但是大深度总是必要的吗?这个问题值得一问,因为大深度并非没有缺点。更深层次的网络会导致更多的顺序处理和更高的延迟;它很难并行化,也不太适合需要快速响应的应用程序。


为此,作者进行了研究提出了ParNet (Parallel Networks),在一定程度上可以与SOTA进行比较,但是使用的层数只有12层。ParNet的一个关键设计选择是使用并行子网,不是按顺序排列层,而是在并行的子网络中排列层。


ParNet的子网结构中,除了开始和结束,子网之间没有连接。这使得可以在保持高精度的同时减少网络的深度,而且平行结构不同于通过增加一层神经元的数量来“扩大”一个网络。而由于具有并行的子结构,ParNet可以在多个处理器之间有效地并行化。


ParNet可以被有效的并行化,并且在速度和准确性上都优于resnet。注意,尽管处理单元之间的通信带来了额外的延迟,但还是实现了这一点。如果可以进一步减少通信延迟,类似parnet的体系结构可以用于创建非常快速的识别系统。


不仅如此,ParNet可以通过增加宽度、分辨率和分支数量来有效缩放,同时保持深度不变。作者观察到ParNet的性能并没有饱和,而是随着计算吞吐量的增加而增加。这表明,通过进一步增加计算,可以实现更高的性能,同时保持较小的深度(~ 10)和低延迟。

ParNet与一些backbone的比较:

image.png

作者的主要贡献:

1)首次证明,深度仅为12的神经网络可以在非常有竞争力的基准测试中取得高性能(ImageNet上80.7%)

2)展示了如何利用ParNet中的并行结构进行快速、低延迟的推断

3)研究了ParNet的缩放规则,并证明了恒定的低深度下的有效缩放


2. Related Work


2.1 Analyzing importance of depth

已有大量的研究证实了深层网络的优点,具有sigmoid激活的单层神经网络可以以任意小的误差近似任何函数,但是需要使用具有足够大宽度的网络。而要近似函数,具有非线性的深度网络需要的参数要比浅层网络所需要的参数少,而且在固定的预算参数下,深度网络的性能优于浅层网络,这通常被认为是大深度的主要优势之一。

但是在这样的分析中,先前的工作只研究了线性顺序结构的浅层网络,不清楚这个结论是否仍然适用于其他设计。在这项工作中,作者表明浅层网络也可以表现得非常好,但关键是要有并行的子结构。


2.2 Scaling DNNs

增加深度、宽度和分辨率可以有效地缩放卷积网络。而在在保持深度不变和较低的情况下,可以通过增加分支数量、宽度和分辨率来有效地扩展ParNet。


3. ParNet Method


ParNet由并行的子结构组成,以不同的分辨率处理特征。作者把这些平行的子结构称为流。来自不同流的特征在网络的后期阶段被融合,这些融合的特征用于下游任务。ParNet的结构如图所示:

image.png


3.1 ParNet Block

在RepVGG中提出了结构重参数化的思想,简单来说就是可以将3x3卷积,1x1卷积两个分支通过代数的处理变成另外的一个3x3的卷积操作。


作者就是借鉴了Rep-VGG的初始块设计,并对其进行修改,使其更适合的非深度架构。但一个只有3×3卷积的非深度网络的挑战是感受野相当有限。为此,作者对结构进行了改进,如图所示:

image.png

使用了一个Skip-Squeeze-Excitation的设计,这是应用在旁边的跳跃连接和使用一个单一的全连接层,这种设计有助于提高性能。作者将上图的block称为RepVGG-SSE。


另外一个问题是ImageNet这样的大规模数据集,非深度网络可能没有足够的非线性,限制了它的表征能力。因此,作者用SiLU代替ReLU激活。


3.2 Downsampling and fusion block

RepVGG-SSE block的输入与输出的大小是相同的,此外,ParNet结构中还有Downsampling block与fusion block。


Downsampling block的作用是降低分辨率,增加宽度,以实现多尺度处理。fusion block的作用是合并来自多个分辨率的信息。


具体结构如图所示:

image.png


3.3 Network Architecture

用于ImageNet数据集的ParNet模型如图所示:

image.png

初始层由一系列的Downsampling blocks组成,Downsampling blocks中的2、3和4的输出分别被馈送到流1、2和3中,其中3个流是最优流数,如表格所示:

image.png

每个流都由一系列的RepVGG-SSE blocks组成来处理出不同分辨率的特征图,然后来自不同流的特征会通过Fusion blocks进行concat拼接。最后通过11层的一个Downsampling blocks,这层的下采样通道数会宽一点,具体的网络结构参数如下图:

image.png

ps:在CIFAR中,图像分辨率较低,网络架构与ImageNet略有不同。首先作者用RepVGGSSE块替换深度1和2的Downsampling块。为了减少最后一层的参数数量,将最后一个宽度较大的Downsampling块替换为更窄的1×1卷积层。此外还通过从每个流中删除一个块并添加深度为3的块来减少参数的数量。


3.4 Scaling ParNet

使用神经网络,可以观察到通过扩大网络规模可以获得更高的精度。为此,作者保持深度不变,通过增加宽度、分辨率和流的数量来扩大ParNet。


对于CIFAR10和CIFAR100,作者增加了网络的宽度,同时保持分辨率为32,流的数量为3。对于ImageNet,作者通过改变所有三个维度来进行实验。

image.png


3.5 Practical Advantages or Parallel Architecures

目前的5纳米光刻工艺正在接近0.5纳米尺寸的硅晶格,进一步增加处理器频率的空间有限。这意味着更快的神经网络推断必须来自并行计算。


4. Result


  • 训练时的消融实验:

image.png

  • 结构的消融实验:

image.png

  • 与其他backbone在 CIFAR10与CIFAR100的对比:

image.png


总结:

作者提出了浅层网络能否达到深层网络同样的效果,提出了浅网多分支(流融合)的思想,结合RepVGG的结构重参数化,在训练与推断过程中适当的解耦,使得浅网的性能达到了一定的可比性。

目录
相关文章
|
2月前
|
Linux 开发工具 Android开发
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
ijkplayer是由Bilibili基于FFmpeg3.4研发并开源的播放器,适用于Android和iOS,支持本地视频及网络流媒体播放。本文详细介绍如何在新版Android Studio中导入并使用ijkplayer库,包括Gradle版本及配置更新、导入编译好的so文件以及添加直播链接播放代码等步骤,帮助开发者顺利进行App调试与开发。更多FFmpeg开发知识可参考《FFmpeg开发实战:从零基础到短视频上线》。
196 2
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
|
2月前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
71 3
|
2月前
|
网络协议
计算机网络的分类
【10月更文挑战第11天】 计算机网络可按覆盖范围(局域网、城域网、广域网)、传输技术(有线、无线)、拓扑结构(星型、总线型、环型、网状型)、使用者(公用、专用)、交换方式(电路交换、分组交换)和服务类型(面向连接、无连接)等多种方式进行分类,每种分类方式揭示了网络的不同特性和应用场景。
|
21天前
|
机器学习/深度学习 Serverless 索引
分类网络中one-hot编码的作用
在分类任务中,使用神经网络时,通常需要将类别标签转换为一种合适的输入格式。这时候,one-hot编码(one-hot encoding)是一种常见且有效的方法。one-hot编码将类别标签表示为向量形式,其中只有一个元素为1,其他元素为0。
24 2
|
1月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用Python和TensorFlow构建简单神经网络进行图像分类
利用Python和TensorFlow构建简单神经网络进行图像分类
60 3
|
2月前
|
机器学习/深度学习 Serverless 索引
分类网络中one-hot的作用
在分类任务中,使用神经网络时,通常需要将类别标签转换为一种合适的输入格式。这时候,one-hot编码(one-hot encoding)是一种常见且有效的方法。one-hot编码将类别标签表示为向量形式,其中只有一个元素为1,其他元素为0。
69 3
|
2月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
65 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
存储 分布式计算 负载均衡
|
2月前
|
安全 区块链 数据库
|
6天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
44 17