1. 文章概述
这篇文章主要是从 CNN 的特征图的角度出发增加包含信息的特征图的数量的角度构建了叫做 ghost module 的组件。在一系列称之为本质信息的特征图的基础上,通过简单的变换生成更多的特征图,并将这些变换的特征图和原有的本质特征图结合在一起增强 ghost module 的特征信息,更重要的是这样的操作方式并没有增加网络的参数和计算量。
2. 模块介绍
假设某层卷积的输入数据
X
∈
R
H
×
W
×
c
X \in R^{H \times W \times c}
X∈RH×W×c, 卷积核的尺寸
f
∈
R
c
×
k
×
k
×
n
f \in R^{c \times k \times k \times n}
f∈Rc×k×k×n, 输出数据的尺寸是
Y
∈
R
h
′
×
w
′
×
n
Y \in R^{{h}' \times {w}' \times n}
Y∈Rh′×w′×n。传统的卷积模式:
计算公式为:
Y
=
X
∗
f
+
b
Y = X * f +b
Y=X∗f+b
该过程的计算量为
n
×
h
′
×
w
′
×
c
×
k
×
k
n \times {h}' \times {w}' \times c \times k \times k
n×h′×w′×c×k×k, 参数量为
n
×
c
×
k
×
k
n \times c \times k \times k
n×c×k×k。
ghost module 的结构:
这个模块能够替代传统的卷积层,该过程并不会改变该层网络的输出的通道数目和尺寸。该过程将传统的卷积分成两个部分:
- 首先经过一个传统卷积层生成 m 个通道的特征图, 其中 m ≤ n m \le n m≤n。
- 其次将 m 个通道的特征图映射成为 n 个通道的特征图,该部分包含两个部分, 其中 m个特征图是 Identity 方法获得的,(n-m) 个特征图是通过简单的变换得到的,该部分的生成方法如下:
y i , j = Φ i , j ( y i ′ ) , ∀ i = 1 , … m , j = i , … , s y_{i,j}=\Phi_{i,j}({y_i}'), \forall i=1, \dots m, j=i,\dots,s yi,j=Φi,j(yi′),∀i=1,…m,j=i,…,s
其中, y i ′ {y_i}' yi′是第 i i i个本质特征图, Φ i , j \Phi_{i,j} Φi,j是变换函数, 其中 n = m s n = ms n=ms。
3. 不同之处
- Ghost 模块的卷积核具有自定义的功能;
- Ghost 模块采用传统的卷积生成少量的内在特征图,然后利用线性变换增加特征图数量;
- Ghost 模块中的线性变换增强了特征图的多样性;
- Ghost 模块中的转换以保留固有的特征图。
4. 计算量测量
传统的卷积层的计算量是:
n
×
h
′
×
w
′
×
c
×
k
×
k
n \times {h}' \times {w}' \times c \times k \times k
n×h′×w′×c×k×k.
Ghost 模块中,首先生成 m 个通道的特征图的计算量是:
m
×
h
′
×
w
′
×
c
×
k
×
k
m \times {h}' \times {w}' \times c \times k \times k
m×h′×w′×c×k×k;
其次线性变换生成特征图的计算量:
(
n
−
m
)
×
d
×
d
×
h
′
×
w
′
=
m
×
(
s
−
1
)
×
d
×
d
×
h
′
×
w
′
=
n
s
×
(
s
−
1
)
×
d
×
d
×
h
′
×
w
′
(n-m) \times d \times d \times {h}' \times {w}' = m \times (s-1) \times d \times d \times {h}' \times {w}' = \frac{n}{s} \times (s-1) \times d \times d \times {h}' \times {w}'
(n−m)×d×d×h′×w′=m×(s−1)×d×d×h′×w′=sn×(s−1)×d×d×h′×w′。则 ghost 模块的压缩率 r:
r
=
n
×
h
′
×
w
′
×
c
×
k
×
k
m
×
h
′
×
w
′
×
c
×
k
×
k
+
n
s
×
(
s
−
1
)
×
d
×
d
×
h
′
×
w
′
=
c
×
k
×
k
1
s
×
c
×
k
×
k
+
s
−
1
s
×
d
×
d
≈
s
×
c
s
+
c
−
1
≈
s
r = \frac{n \times {h}' \times {w}' \times c \times k \times k}{m \times {h}' \times {w}' \times c \times k \times k + \frac{n}{s} \times (s-1) \times d \times d \times {h}' \times {w}'}=\frac{c \times k \times k}{\frac{1}{s}\times c \times k \times k +\frac{s-1}{s} \times d \times d} \approx \frac{s \times c}{s+c-1} \approx s
r=m×h′×w′×c×k×k+sn×(s−1)×d×d×h′×w′n×h′×w′×c×k×k=s1×c×k×k+ss−1×d×dc×k×k≈s+c−1s×c≈s。其中,
d
×
d
d \times d
d×d 和
k
×
k
k \times k
k×k 具有相似的尺寸并且
s
≪
c
s \ll c
s≪c.
5. GhostNet
利用上述的 ghost 模块构建 GhostNet 网络并应用于分类,检测和分割等,具体的网络结构可以参考原论文ghostnet.