本文记录的目的是方便自己学习和复习,有误之处请谅解,欢迎指出。
从卷积神经网络登上历史舞台开始,经过不断的改进和优化,卷积早已不是当年的卷积,诞生了分组卷积(Group convolution)、空洞卷积(Dilated convolution 或 À trous)等各式各样的卷积。今天主要讲一下深度可分离卷积(depthwise separable convolutions),这是Xception以及MobileNet系列的精华所在。而它最早是由Google Brain 的一名实习生 Laurent Sifre 于2013年提出,Sifre在其博士论文中对此进行了详细的分析和实验,有兴趣的可以去翻阅。
标准卷积过程如下图所示:
标准卷积
标准卷积
深度可分离卷积过程如下图所示:
深度可分离卷积第一步
深度可分离卷积二步
假设输入特征图大小为 W_in×H_in×M,
输出特征图大小为 W_out×H_out×N,
卷积核大小为 D_K×D_K
参数量:
标准卷积参数量为:
D_K × D_K × M × N
深度可分离卷积参数量为:
D_K × D_K × M + M × N
计算量:
标准卷积计算量为:
D_K × D_K × M × W_out × H_out × N
深度可分离卷积计算量为:
D_K × D_K × M × W_out × H_out + M × W_out × H_out × N