深度可分离卷积:轻量化网络设计的经典方法
1. 引言
在上一篇文章中,我们已经分析了标准卷积为什么会成为卷积神经网络中的主要复杂度来源。其根本原因在于,标准卷积将空间特征提取和通道信息融合绑定在一次高成本操作中完成:每个输出通道都要与全部输入通道相连,同时卷积核还要在整张特征图上反复滑动。这样虽然保证了较强的表达能力,但也带来了较高的参数量和 FLOPs。
轻量化卷积的目标,并不是否定卷积本身,而是在尽量保留卷积建模能力的前提下,重新组织卷积计算过程,从而降低复杂度。在众多轻量化卷积设计中,深度可分离卷积无疑是最具代表性的一类。它并不是简单删减某些卷积核,也不是对标准卷积做局部修补,而是直接改变了卷积的实现方式:将原本一次完成的高成本操作拆分成两个低成本步骤。
也正因为这种拆分方式既清晰又高效,深度可分离卷积逐渐成为轻量化网络设计中的经典方法,并在 MobileNet 等网络中得到广泛应用。它之所以重要,不只是因为“更轻”,更因为它提供了一种非常典型的复杂度优化思路:把原本耦合在一起的任务解耦,再分别用更便宜的方式完成。
2. 深度可分离卷积的提出背景
2.1 标准卷积中的双重任务
要理解深度可分离卷积,首先要重新审视标准卷积到底在做什么。从计算过程上看,标准卷积并不只是单纯做一次局部滑动计算,而是在一次操作中同时完成了两类任务。
标准卷积实际上承担了双重职责:既要负责空间建模,又要负责通道融合。它之所以表达能力强,很大程度上也正是因为它在一次操作中把这两件事同时完成了。
2.2 高复杂度的根源
这种耦合的直接后果,就是标准卷积的参数量和 FLOPs 都比较高。回顾上一篇文章中的公式,标准卷积的参数量为:
Params_std = C_in × C_out × K × K
其 FLOPs 近似为:
FLOPs_std ≈ H_out × W_out × C_in × C_out × K × K
3. 深度可分离卷积的基本结构
3.1 整体结构
Depthwise Convolution
Pointwise Convolution
其整体思路可以概括为一句话:
在这两步中,第一步只负责提取每个通道内部的空间特征,不做跨通道信息混合;第二步则只负责在通道维度上重新组合特征,不再做大卷积核的空间滑动。也就是说,原本在标准卷积中被绑在一起完成的两项任务,在这里被显式拆开了。
这种拆分并不是随意的,而是有明确逻辑的:既然空间建模和通道建模本质上是两类不同任务,那么就没有必要每次都用一次昂贵的标准卷积同时完成它们。只要能够先提取空间特征,再完成通道融合,就有可能以更低代价获得接近的表示能力。

3.2 Depthwise Convolution
因此,depthwise convolution 的参数量为:
Params_dw = C_in × K × K
其 FLOPs 近似为:
FLOPs_dw ≈ H_out × W_out × C_in × K × K
从本质上看,depthwise convolution 是对标准卷积中“空间特征提取”部分的单独保留。它的代价远低于标准卷积,因为它不再需要为每个输出通道都遍历全部输入通道,而只是对每个输入通道各自进行一次空间卷积。
3.3 Pointwise Convolution
经过 depthwise convolution 之后,虽然每个通道内部的空间特征已经被提取出来,但不同通道之间 עדיין没有发生信息融合。为了完成这一部分任务,深度可分离卷积的第二步引入了 pointwise convolution。
Params_pw = C_in × C_out
其 FLOPs 近似为:
FLOPs_pw ≈ H_out × W_out × C_in × C_out
从功能上看,pointwise convolution 回答的是这样一个问题:在完成每个通道内部的空间特征提取之后,这些通道之间的信息应该如何重新组合,才能形成有用的输出表示。也正因为如此,它承担的是通道融合任务,而不是空间建模任务。
4. 深度可分离卷积与标准卷积的复杂度对比
4.1 标准卷积的复杂度
为了更清楚地看出深度可分离卷积为何能够显著降低复杂度,先回顾标准卷积的复杂度表达式。
Params_std = C_in × C_out × K × K
其 FLOPs 近似为:
FLOPs_std ≈ H_out × W_out × C_in × C_out × K × K
4.2 深度可分离卷积的复杂度
对于深度可分离卷积,由于它由 depthwise convolution 和 pointwise convolution 两步组成,因此其总复杂度是这两步复杂度之和。
第一步 depthwise convolution 的参数量为:
Params_dw = C_in × K × K
第二步 pointwise convolution 的参数量为:
Params_pw = C_in × C_out
因此,深度可分离卷积的总参数量为:
Params_sep = C_in × K × K + C_in × C_out
同理,其总 FLOPs 为:
FLOPs_sep ≈ H_out × W_out × (C_in × K × K + C_in × C_out)
4.3 复杂度下降的原因
深度可分离卷积之所以能够显著降低复杂度,根本原因并不在于简单减少了一部分卷积核,而在于它改变了卷积计算的组织方式。
而深度可分离卷积把这一过程拆成了两步:
- 先用 depthwise convolution 做逐通道的 K × K 空间卷积
- 再用 pointwise convolution 做 1 × 1 通道融合
从比例上看,深度可分离卷积相对于标准卷积的参数量比值大致为:
Params_sep / Params_std = (C_in × K × K + C_in × C_out) / (C_in × C_out × K × K)
约简后可写为:
1 / C_out + 1 / (K × K)
4.4 数值示例
为了更直观地理解这种差异,下面给出一个简单例子。设:
C_in = 64
C_out = 128
K = 3
则标准卷积的参数量为:
Params_std = 64 × 128 × 3 × 3 = 73728
而深度可分离卷积的参数量为:
Params_sep = 64 × 3 × 3 + 64 × 128 = 576 + 8192 = 8768
如果从计算量角度看,标准卷积的 FLOPs 为:
FLOPs_std ≈ H_out × W_out × 64 × 128 × 3 × 3
而深度可分离卷积的 FLOPs 为:
FLOPs_sep ≈ H_out × W_out × (64 × 3 × 3 + 64 × 128)
两者同样存在显著差距。
这个例子说明,深度可分离卷积的复杂度下降并不是“略有优化”,而是在很多常见通道配置下都能带来非常可观的压缩效果。这也是它之所以能够成为轻量化网络设计经典方法的直接原因之一。

5. 深度可分离卷积的本质理解
5.1 空间相关性建模
如果只记住深度可分离卷积由 depthwise 和 pointwise 两步组成,那么理解还停留在结构表面。要真正把它讲透,必须进一步理解这两步分别在建模什么。
也就是说,depthwise convolution 保留了卷积对局部空间结构敏感的核心能力,但不再试图在这一步同时做跨通道融合。它专注于空间信息本身,把“看局部空间”的工作独立完成。
5.2 通道相关性建模
换句话说,pointwise convolution 的核心作用是进行跨通道信息融合。它把 depthwise convolution 已经提取出的各通道空间特征重新加权、重组,形成新的输出通道。
因此,深度可分离卷积的本质可以概括为一句话:
它将“空间相关性建模”和“通道相关性建模”从标准卷积的一次高成本操作中解耦出来,分别用更低成本的方式完成。
这也是为什么它不是简单意义上的“压缩卷积”,而是一种更深层的计算重构。它重构的不是某几个参数,而是卷积本身的计算逻辑。

6. 深度可分离卷积的优势
深度可分离卷积之所以被广泛采用,根本原因在于它在复杂度和表达能力之间取得了一个相对优秀的平衡。相比标准卷积,它的优势主要体现在以下几个方面。
从历史上看,MobileNet 系列正是依托这一设计思想,推动了深度可分离卷积在轻量化网络中的广泛传播。可以说,它已经不只是某一个“技巧”,而是轻量化 CNN 设计中的基础工具之一。
7. 深度可分离卷积的局限性
深度可分离卷积虽然在复杂度降低方面表现突出,但它并不是没有代价。它之所以能够变轻,本质上是因为对标准卷积的完整联合建模能力做了拆分和近似,因此在表达能力上通常也会面临一定折中。
需要明确一点:深度可分离卷积并不是标准卷积的“全局替代品”,而是一种非常有效但仍有边界的轻量化设计。它代表的是一种复杂度—性能折中思想,而不是“越轻越绝对正确”的单向选择。
8. 深度可分离卷积的经典性来源
深度可分离卷积之所以能够成为轻量化网络设计中的经典方法,并不仅仅因为它比标准卷积“更轻”,而是因为它在思路、收益和通用性三个方面都非常突出。
深度可分离卷积之所以经典,不只是因为它“更轻”,更因为它以一种非常清晰且有效的方式重构了卷积计算。它让人们看到,卷积复杂度优化并不一定依赖于简单删减,而可以通过计算逻辑重构,在保持核心建模能力的同时大幅降低复杂度。也正因为这种思想具有很强的代表性,它才会成为轻量化网络设计中的标志性方法。
9. 总结
深度可分离卷积是轻量化网络设计中最经典的方法之一。它通过将标准卷积拆分为 depthwise convolution 和 pointwise convolution 两步,显式地把空间建模与通道融合解耦,从而显著降低了参数量和 FLOPs。
从结构上看,depthwise convolution 负责逐通道的空间特征提取,pointwise convolution 负责跨通道的信息融合;从本质上看,它是在重构卷积的计算逻辑,把原本一次高成本完成的双重任务拆成两次低成本操作。也正是这种拆分,使它能够在复杂度下降和表达能力保持之间取得较好的平衡。
当然,深度可分离卷积并不是没有代价。由于其联合建模能力弱于标准卷积,因此在某些场景下可能会带来表达能力上的折中。但总体而言,它所体现出的复杂度优化思路非常清晰,收益也非常显著,因此逐渐成为轻量化卷积设计中的经典范式。
从更广的角度看,深度可分离卷积的重要性不只在于它本身,而在于它代表了一类典型的轻量化思想:当一个高成本操作同时承担多项任务时,可以尝试将这些任务解耦,再分别用更低成本的方式完成。这种思想不仅适用于卷积,也深刻影响了后续许多轻量化网络结构的设计方向。
