GhostNet论文阅读

GhostNet:More Features from Cheap Operations.


1、主要思想

深度网络处理过的特征有一部分冗余,这类特征可以通过更廉价的方式获取,不一定非要传统代价较为高昂的运算方式。也就是说,它主要针对网络Feature Map通道间存在的相似性,引入通道间的线性变换来替代原始的传统CNN运算,在减少网络参数和计算量的同时,保持Feature Map原本的通道数和不同通道间的相似性,从而不至于影响模型的表达能力。

至于引入冗余特征而不是对其进行剪枝的原因,可能是由于在对其他因素造成影响尽可能小的前提下,去优化计算量及由此带来的模型参数数量减少,这样不容易引入新的问题。从另一个角度讲,冗余信息的存在,也许能够使后续的分类、回归任务更加简单。例如有些二维空间需要通过曲线进行分割的数据,通过增加一个维度,在三维空间仅需一个平面就能轻易分割。这个类比可能不是很严谨,但是也可以作为引入冗余的信息来使分类任务更容易进行。

下图所示,左上角输入的小猫图片经ResNet-50网络的第一个residual group后得到的部分Feature Map。我们可以看到,其中红色、绿色、蓝色标出的三组Feature Map存在较大的相似性,作者认为可以利用这种相似性,在其中一些基础Feature Map的基础上,使用相比标准CNN卷积核更加简单地线性运算来得到与其相似的Feature Map。

                                             GhostNet论文阅读

2、实现方法

实现方法如下,图中a表示传统的卷积运算,一组卷积核将输入的张量转换成输出的Feature Map张量。图b即作者提出的Ghost模块,其计算可以拆解为两步,第一步对输入张量应用传统的卷积运算,得到图中由浅至深的黄色Feature Map张量,文章中将该张量称为intrinsic feature(内在卷积)。这些Feature Map就相当于前面提到的一些具有代表性的Feature Map。接着,将Φ函数表示的线性运算作用于这些代表性的Feature Map,生成图中由浅至深的红色Feature Map张量,最后堆叠到一起,作为Ghost模块的输出。

                                                           GhostNet论文阅读

设输入张量的宽为w,高为h,通道数为c,输出张量的通道数为n,标准卷积核的大小为k*k。设线性变换使用depthwist conv,线性变换核的大小为d*d,考虑到线性的要求,这里的conv应该不包含非线性的activation。又设Ghost模块中输出Feature Map可以分为n/s组,每组为s个Feature Map,这s个Feature Map中包含一个标准卷积核的计算结果和s-1个线性变换得到的结果。忽略偏置量相加的操作,且近似任务k*k与d*d相等,则上图a和b的计算量之比为(参数值比同理):

                                                                  GhostNet论文阅读

可见采用Ghost模块的方式对标准卷积核进行改造,可以使模型的计算量和参数数量均得到近似s倍的下降。

3、bottleneck

进一步,作者基于上述Ghost模块搭建了下图所示的bottleneck结构,如下图所示。这个结构主要采用常见的通道放大再缩小的设计模式,先经过一个将通道数放大的Ghost模块,继而接入一个使通道数缩小的Ghost的模块,使前后的通道数保持不变,从而与经过shortcut相连的原始张量进行逐通道的相加操作。这类bottleneck有两种类型,下图右侧的结构在左侧结构的基础上,加入了一个stride=2的Depthwise Conv,相应的,为了能够直接相加,shortcut分支需要进行一个下采样,下图未标出。

                                                               GhostNet论文阅读

针对文章中所提到的线性变换函数Φ,作者在文章中使用的是DWConv。作者同时指出可以尝试使用例如仿射变换、小波变换等方式来替代。但是,考虑到卷积运算在现有的移动端推理框架中有着比较高效的实现,且传统的数字图像处理技术如平滑、模糊等操作都可以用卷积操作来建模,所以选择了DWConv来对一系列单通道的Feature Map生成相应的Ghost Feature Map。

 

4、实验结果

为了验证所提出的Ghost模块和GhostNet架构的有效性,在几个基准视觉数据集上进行了实验,包括CIFAR-10、ImageNet ILSVRC 2012数据集和MS-COCO对象检测基准。针对d和s的大小,论文进行了实验,最终确定了d=3,s=2。             

                                        GhostNet论文阅读

COCO数据集上的实验对比:

                                              GhostNet论文阅读

 

参考文章:

https://zhuanlan.zhihu.com/p/109420599

https://blog.****.net/Yong_Qi2015/article/details/104567876