MobileNet 深度可分离卷积(depthwise separable convolution)

简介

MobileNet作为一个,轻量级的网络,可以在移动设备上进行训练,关键是采用了 深度可分离卷积(depthwise separable convolution)来提高效率,下面注重介绍介绍 深度可分离卷积。

传统卷积方法

假设输入特征图大小为 D F × D F × M D_F×D_F×M DF×DF×M,输出特征图大小为 D F × D F × N D_F×D_F×N DF×DF×N,卷积核大小为 D K × D K × M D_K×D_K×M DK×DK×M,则传统卷积的计算量为:

D K × D K × M × N × D F × D F D_K×D_K×M×N×D_F×D_F DK×DK×M×N×DF×DF
下图为传统的卷积核
MobileNet 深度可分离卷积(depthwise separable convolution)_第1张图片

深度可分离卷积

深度可分离卷积,将卷积分为两步,第一步,使用的卷积核大小为 D K × D K × 1 D_K×D_K×1 DK×DK×1,进行卷积,这样每一个卷积核就会产生 M个 D F × D F D_F×D_F DF×DF结果(假设卷积不改变图片尺寸),然后使用 1 × 1 × M 1×1×M 1×1×M的 卷积核,这样就得到一个结果图。一共有N个卷积核,就得到了 D F × D F × N D_F×D_F×N DF×DF×N的结果图

深度可分离卷积的计算量为深度卷积和 1×1 卷积的计算量之和:

D K × D K × M × D F × D F + M × N × D F × D F D_K×D_K×M×D_F×D_F+M×N×D_F×D_F DK×DK×M×DF×DF+M×N×DF×DF

深度可分离卷积与传统卷积的计算量之比为:

D K × D K × M × D F × D F + M × N × D F × D F D K × D K × M × N × D F × D F = 1 N + 1 D K 2 \frac{D_K×D_K×M×D_F×D_F+M×N×D_F×D_F}{D_K×D_K×M×N×D_F×D_F} = \frac{1}{N} + \frac{1}{D_K^2} DK×DK×M×N×DF×DFDK×DK×M×DF×DF+M×N×DF×DF=N1+DK21

明显计算量比传统的卷积核小很多,其实是卷积核个数N越大的时候,计算量少的更加明显

下图为深度可分离的卷积核
MobileNet 深度可分离卷积(depthwise separable convolution)_第2张图片

下图为1*1 的卷积核
MobileNet 深度可分离卷积(depthwise separable convolution)_第3张图片

接下来一张图片,可以简单概括一下传统卷积核和深度可分离卷积的区别
(a) 传统的卷积,直接映射
(b) 深度可分离的卷积
MobileNet 深度可分离卷积(depthwise separable convolution)_第4张图片

你可能感兴趣的:(Deep,Learning,卷积,人工智能,深度学习)