当前位置:   article > 正文

论文阅读:2020GhostNet华为轻量化网络

论文阅读:2020GhostNet华为轻量化网络

创新:(1)对卷积进行改进(2)加残差连接

1、Ghost Module

1、利用1x1卷积获得输入特征的必要特征浓缩。利用1x1卷积对我们输入进来的特征图进行跨通道的特征提取,进行通道的压缩,获得一个特征浓缩。
2、利用深度可分离卷积获得特征浓缩的相似特征图(Ghost)。在获得特征浓缩之后,利用深度可分离卷积进行逐层卷积,进行跨特征点的特征提取,获得额外的特征图,也就是Ghost。

将这两个进行堆叠就是输出的特征层

在这里插入图片描述

2、Ghost Bottlenecks

Ghost Bottlenecks是由Ghost Module组成的瓶颈结构,其实本质上就是用Ghost Module,来代替瓶颈结构里面的普通卷积。

Ghost Bottlenecks有两个种类(输入进来的步长为1选第一种,输入进来的步长为2选第二种),如下图所示。先来看第一个Ghost Bottleneck,可以分为两个部分,分别是主干部分和残差边部分。在主干部分,使用两个ghost模块对输入的特征层进行特征提取;在残差边部分,什么都不处理,直接将输入和输出进行逐元素求和。这样,第一个瓶颈结构就构建完成了,由于它的步长为1,所以不会对输入进来的特征图进行高和宽的压缩,它的功能是加深网络的深度。

当我们需要对特征层的宽高进行压缩的时候,需要设置第二个Ghost Bottlenecks,即在Bottlenecks里添加一些卷积层。在主干部分里,首先用ghost module进行特征提取,提取完成后使用一个步长为2的深度可分离卷积对输入特征层进行高和宽的压缩,然后再用一个ghost模块进行特征提取。在残差边部分,也会添加上一个步长为2的深度可分离卷积和1x1的普通卷积,然后将输入和输出进行相加。第二个瓶颈结构的步长为2,它的功能就是改变输入特征层的宽高。

在这里插入图片描述

(1)ghost module

(2)判断stride=2?,是否用深度可分离卷积

(3)判断是否使用注意力机制模块

注意力机制模块:(即插即用)(这个注意力机制模块类似于SEnet)

1)全局平均池化

2)1*1卷积降维

3)激活

4)1*1卷积升维

(升维降维之后)最终输入与输出通道数相同,然后再取sigmoid,使输出值在 [0,1] 之间,输出值即为每个通道的权重,这个结果乘以输入的特征层,就完成这个注意力机制的添加了

(4)ghost module

(5)判断步长=1?输入通道=输出通道?如果输入通道不等于输出通道,利用DWconv和1*1conv调整通道数,保证主干与残差可以相加

最终将有效特征层(4、6、8)取出来,利用这三个有效特征层进行加强特征提取网络的构建

标题:GhostNet:从廉价的运算中得到更到的特征

摘要:因为有限的内存和计算资源,在嵌入式设备中部署卷积神经网络(CNNs)是困难的。特征图的冗余是那些成功CNNs的一个重要特征,但是很少有关于网络架构设计的研究。这篇论文提出了一个新颖的Ghost模型,从廉价的运算中得到更到的特征图。基于本征特征图集,我们应用一系列低成本的线性运算去生成许多重影特征图,它能够完全的揭露隐藏在本征特征图下的信息。这个提出来的Ghost模块可以当做是一个即插即拔的组件,去升级已有的卷积神经网络。Ghost bottlenecks设计用来存储Ghost模块,然后就可以轻松地构建轻量级的GhostNet。在基准上进行的实验表明,在基准模型中,这个提出来的Ghost模型是卷积层的一个引人注目的替代品,而且在ImgeNet ILSVRC-2012分类数据集上,我们的GhostNet用相似的计算成本可以获得比MobileV3更高的检测性能(即top-1 75.7%的准确率)。

介绍

      深度卷积神经网络在很多计算机视觉工作上显示了卓越的性能,比如图像识别,目标检测和语义分割。传统的CNNs通常需要大量的参数和浮点运算(FLOPs)去获得一个令人满意的精度,比如RestNet-50大约有25.6M个参数,并且需要4.1B个浮点运算处理一张尺寸为224*224的图片。因此,深度神经网络设计的最新趋势是去为移动设备(比如智能手机和自动驾驶车)探索可移植、高效的、性能可接受的网络架构。

      在过去的几年中,提出了一系列的方法去研究紧凑的深度神经网络,比如网络剪枝(network pruning)、低位量化(low-bit quantization)、知识蒸馏(knowledge distillation)等。Song Han提出在神经网络中去剪枝不重要的权重。Hao Li使用L1正则化去修剪过滤器来获得高效的CNNs。Mohammad Rastegari为获取高压缩率和加速率,将权重和激活函数量化为一位数据。 Geoffrey Hinton 为了将知识从大的模型转换成一个更小的模型,引入了知识蒸馏。但是通常被称作是他们基线的预处理深度神经网络所限制。

      除了这些方法,有效的神经网络架构有很大的潜力去构建参数和计算更少的、非常高效的深度网络,而且最近获得了很大的成功。这种类型的方法也可以为自动研究方法提供新的研究单元。举例来说,MobileNet使用depthwise和pointwise卷积构建了一个单元,使用更大的卷积核来逼近原始的卷积层,并且获得了可比较的性能。ShuffleNet进一步探索了一个通道转移操作(a channel shuffle operation)去提高轻量级模型的性能。

       在训练有素的深度神经网络的特征图中,丰富甚至是冗余的信息常常保证了对输入数据的全面理解。举个例子来说,图片1提供一些由ResNet-50所生成的输入图像的特征图,而且这里存在很多相似的特征图对,像彼此的重影。特征图中的冗余可能是一个成功的深度神经网络重要的特征。我们不是避免冗余的特征图,我们倾向于采用他们,但是用一个低成本的方法

      在这篇论文中,我们介绍了一个新颖的Ghost模块,通过使用更少的参数来生成更多的特征。特别地,在深度神经网络中的,一个普通的卷积层会被分成两个部分。第一个部分涉及普通的卷积,但是它们总的数量会得到严格地控制。根据从第一个部分得到的本征特征图,之后使用一系列简单的线性运算去生成更多的信息。Ghost模块中,所有必要参数的数量和计算复杂度与那些在普通卷积神经网络中的相比已经下降了,并没有改变输出特征图的尺寸。基于Ghost模块,我们构建了一个高效的网络架构,即GhostNet。我们首先替换了基准网络架构中原始的卷积层,用来论证Ghost模块的有效性,然后在一些基准视觉测试集上验证了我们GhostNets的优越性。实验结果表示,在保持相似识别性能的同时,提出的Ghost模型能够减少通用卷积层的计算成本,并且GhostNets可以超越最高水准的高效深度模型,比如MobileNetV3,在移动设备上进行多种快速推理任务。

      论文的剩余部分安排如下:第二部分简要总结了这个领域的相关工作,紧接着Ghost模型和GhostNet在第三部分,实验和分析在第四部分,最后,总结在第五部分。

相关的工作

      这里,我们从两个部分回顾现有的减轻神经网络负担的方法:模型压缩和紧凑的模型设计。

2.1 模型压缩

      对于一个给定的神经网络,模型压缩旨在减少计算量、能源和存储成本。剪枝连接(Pruning connections)剪掉了神经元之间不重要的连接。通道修剪(Channel pruning)进一步针对移除无用的通道,以便在实际中更容易加速。模型量化(Model quantization)代表神经网络中的权重和激活函数,其离散值用于压缩和计算加速。特别地,二值化方法(Binarization methods)只使用一位值,通过高效的二值运算可以极大加速模型。张量分解(Tensor decomposition)通过利用权重的冗余和低级属性减少参数和计算量。知识蒸馏(knowledge distillation)利用更大的模型来教导更小的模型,这能够提升较小模型的性能。这些方法的性能通常决定于给定预训练的模型,在这个基础运算和架构上的提升将会让他们走的更远。

2.2 紧凑的模型设计

      随着在嵌入式设备上部署神经网络的需求出现,最近几年提出了一系列紧凑的模型。SqueeeNet使用一个bottleneck的方法达到了AlexNet级别的精度,参数比AlexNet的少了五十倍。Xception利用depthwise卷积操作,更有效的使用模型的参数。MobileNets是一系列的基于深度可分离卷积的轻量级深度神经网络。MobileNetsV2提出了倒残差块,MobileNetV3进一步使用AutoML技术用更少的FLOPs获得了更好的性能。ShuffleNet使用转移操作改善了通道组之间的信息流交换。对于紧凑的模型设计,ShuffleNetV2进一步考虑了在目标硬件上的实际速度。尽管这些模型用更少的FLOPs获得了更好的性能,但是他们从没有很好的开发出特征图之间的相关性和冗余。

研究方法

      在这个部分,我们首先会介绍Ghost模块,从原始的卷积层中使用更少的过滤器生成更多的特征图,然后开发了一个新的GhostNet,拥有一个非常高效的架构和优异的性能。

3.1 为了得到更多特征的Ghost模块

      深度卷积神经网络通常由大量的卷积组成,这导致了大量的计算开销。尽管最近的成果,比如MobileNet和ShuffleNet已经引入了depthwise卷积和shuffle操作,使用更小的卷积过滤器(浮点运算数量)构建高效的CNNs,但是剩下的1*1卷积核仍然占用相当大的内存和FLOPs。

      如图1所示,考虑到主流CNNs计算得到的中间特征图中广泛存在着冗余,我们提出减少必要的资源,即减少生成它们的卷积过滤器。在实际过程中,假设输入数据X∈

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/195886
推荐阅读
相关标签