深入浅出谈谈深度可分离卷积

1 简介

    深度可分离卷积的核心思想就是将普通N个通道为M的卷积拆分成1个通道为M的卷积(这个卷积进行单通道滤波操作,区别于普通卷积滤波后通道相加)和N个1×1×M的卷积,其作用在于减少运行的参数量。如果采用 3 × 3 的卷积,那么采用深度可分离卷积后,参数将变成原来的1/8~1/9。

2 原理

2.1 普通卷积

                             深入浅出谈谈深度可分离卷积

    对于普通卷积而言,一个边长为Dk,通道为M的卷积核(N个卷积),处理一个输入矩阵(通道为M),得到一个宽为Dw,高为Dh,通道为N的输出特征图(上图)。

    仅仅考虑乘加计算,其参数量为:

                                                                深入浅出谈谈深度可分离卷积

    计算量为:

                                                     深入浅出谈谈深度可分离卷积

 

2.2 深度可分离卷积

                    深入浅出谈谈深度可分离卷积

    对于普通卷积而言,一个边长为Dk,通道为M的卷积核,处理一个输入矩阵(通道为M),得到一个宽为Dw,高为Dh,通道为M的中间特征图。为了获得和普通卷积一样的深度,通过N个通道为M的单位卷积核,得到宽为Dw,高为Dh,通道为N的输出特征图(上图)。

    与普通卷积相比,最大特点在于通道M的深度可分离卷积核进行的是单个通道的点乘计算,所以一个卷积核处理后得到的中间特征图的通道依旧是M,而一个普通卷积核处理后得到的特征图的通道是1。

   仅仅考虑乘加计算,其参数量为:

                                                                深入浅出谈谈深度可分离卷积

    计算量为:

                                                     深入浅出谈谈深度可分离卷积

2.3 效率比较

 

    深入浅出谈谈深度可分离卷积=  深入浅出谈谈深度可分离卷积

    提高计算效率显著。

3 点评

    没看MobileNet论文原文,推测深度可分离卷积的思想源于卷积中很多参数为0或者接近0,不然这样压缩参数岂不是有很大损失?倘若很多参数不中用,目测直接压缩网络也可以了吧。

    做了些实际的DL工程项目,不禁好奇对于一个特定的任务而言,多少参数或者说网络结构是合理的问题,似乎很难回答。