本文作者: slience_me
我看的论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
内容
1. 标准卷积
假设输入为DF×DF×M,输出为输入为DF×DF×N,卷积核为DK×DK×M,共有N个卷积核进行卷积操作
下图为标准的卷积过程,每个卷积核对输入的向量进行卷积操作,得到一个特征映射,共有N个卷积核进行卷积操作,则可以得到N个特征映射,即DK×DK×N
示意图如下:一般卷积
2. 深度可分离卷积(Depthwise Separable Convolution)
2.1 Depthwise Convolution
对于深度可分离卷积而言,
根据我的第二个图可知,每一个卷积核只负责一个通道的卷积操作,共有M个通道,则需要M个卷积核,对每一个通道进行卷积操作。
详细过程描述为:
- 使用尺寸为DK×DK×1×M的宽度卷积核(M个尺寸为DK×DK×1的卷积核),对每个通道的特征进行卷积
- 得到M个尺寸为DF×DF的特征映射
2.2 Pointwise Convolution
逐点卷积,采用了1×1×M的卷积核对2.1中深度卷积的结果进行逐点卷积操作,详细来说:
- 使用尺寸为1×1×M×N的1×1卷积核(N个尺寸为1×1 ×M的卷积核),对上一步得到的特征进行1×1卷积,每个卷积核对M个特征相同位置上的卷积结果进行整合,即上一步的map在深度方向上进行加权组合
- 得到一个DF×DF×1的结果
- N个1×1卷积得到尺寸为DF×DF×N的输出结果
优点
标准卷积的计算成本为:
深度可分离卷积的计算成本为:
通过该操作,相同的输入,Depthwise Separable Convolution的参数个数是常规卷积的约1/N+1/D2K, 计算量可以大大减少,提高性能。因此,在参数的数量相同的前提下,采用Depthwise Separable Convolution的神经网络层数可以做的更深。
参考内容如下:
①: 深度可分离卷积
②:卷积神经网络之深度可分离卷积(Depthwise Separable Convolution)