介绍
本文的中心句:Generate more features by using fewer parameters,主要提出了一个ghost模块,和普通的卷积层相比,用比原来少的参数量,生成相同数量的特征图,并且保留了普通卷积层生成特征图的主要特征。
Ghost 模块
图(a)为普通的卷积层,假设是W *H *C的输入X,经过n个k *k的卷积核f,输出了W’ *H’ *n的特征图Y,则可以表示为:
那么计算量为
而作者提出的Ghost模块如图(b)所示分为两步:首先,像普通卷积层一样对输入进行卷积操作,但是只需要m个卷积核,生成m通道的特征图Y‘,m小于等于n。第二步,就是对这个m个通道分别进行线性映射,
yi’是Y’中第i个(通道)特征图,每个通道都会进行s次线性映射,但其中有1次是恒等映射,为了保留原来的特征。所以最后生成的特征图中有m个通道是第一次卷积的结果恒等映射过来的,也就是图中的上半部分。这样最后就能得到n=m *s个通道的特征图,但是计算量会大大减少。
Ghost Bottlenecks
在Ghost模块的基础上,作者搭建了Ghost bottleneck来建立轻量化的模型。如图所示。第一个Ghost模块用作扩展层,增加了通道数。作者将输出通道数与输入通道数之比称为扩展比。第二个Ghost模块减少了通道数,然后与输入进行相加。对于步长为2的情况,在两个Ghost模块之间插入了stride = 2的深度卷积。 在实践中,Gh为了提高效率,两个Ghost模块间插入的是点卷积。