深度可分离卷积 = 深度卷积(Depthwise Convolution) + 逐点卷积(Pointwise Convolution)。
深度卷积
分组卷积(Group Convolution):
输入通道数 c i n c_{in} cin,输出通道数 c o u t c_{out} cout, 将输入feature map分为 G G G组,每组分别卷积,最后进行拼接。
分组卷积作用:
- 参数量减少为原来的 1 / G 1/G 1/G
分组前: c i n c o u t k 2 c_{in}c_{out}k^2 cincoutk2
分组后: c i n G c o u t G c o u t k 2 G = c i n c o u t k 2 G \displaystyle \frac{c_{in}}G\frac{c_{out}}Gc_{out}k^2G=\frac{c_{in}c_{out}k^2}G GcinGcoutcoutk2G=Gcincoutk2 - 分组卷积可看做结构化稀疏(structured sparse),相当于正则。
分组卷积中,令分组数 G = c i n = c o u t G = c_{in} = c_{out} G=cin=cout,分组卷积就成了深度卷积,参数量进一步减少。
深度可分离卷积
逐点卷积就是1x1的普通卷积。
因为深度卷积没有融合通道间信息,所以需要配合逐点卷积使用。