专栏感知【模型轻量化专题】深度可分离卷积:轻量化网络设计的经典方法

【模型轻量化专题】深度可分离卷积:轻量化网络设计的经典方法

YCJ2026-05-22
10
0

深度可分离卷积:轻量化网络设计的经典方法

1. 引言

在上一篇文章中,我们已经分析了标准卷积为什么会成为卷积神经网络中的主要复杂度来源。其根本原因在于,标准卷积将空间特征提取和通道信息融合绑定在一次高成本操作中完成:每个输出通道都要与全部输入通道相连,同时卷积核还要在整张特征图上反复滑动。这样虽然保证了较强的表达能力,但也带来了较高的参数量和 FLOPs。

轻量化卷积的目标,并不是否定卷积本身,而是在尽量保留卷积建模能力的前提下,重新组织卷积计算过程,从而降低复杂度。在众多轻量化卷积设计中,深度可分离卷积无疑是最具代表性的一类。它并不是简单删减某些卷积核,也不是对标准卷积做局部修补,而是直接改变了卷积的实现方式:将原本一次完成的高成本操作拆分成两个低成本步骤。

也正因为这种拆分方式既清晰又高效,深度可分离卷积逐渐成为轻量化网络设计中的经典方法,并在 MobileNet 等网络中得到广泛应用。它之所以重要,不只是因为“更轻”,更因为它提供了一种非常典型的复杂度优化思路:把原本耦合在一起的任务解耦,再分别用更便宜的方式完成。


2. 深度可分离卷积的提出背景

2.1 标准卷积中的双重任务

要理解深度可分离卷积,首先要重新审视标准卷积到底在做什么。从计算过程上看,标准卷积并不只是单纯做一次局部滑动计算,而是在一次操作中同时完成了两类任务。

第一类任务是空间特征提取。卷积核在特征图上滑动时,会感受局部空间区域内的像素或特征响应,从而提取边缘、纹理、局部形状等空间信息。这个过程本质上是在建模空间相关性,也就是“某个位置周围的局部模式是什么”。
第二类任务是通道信息融合。标准卷积的每个输出通道都依赖全部输入通道,也就是说,卷积层不仅在每个通道内部提取空间特征,还会同时对不同输入通道的信息进行加权组合,从而形成新的输出通道表示。这个过程本质上是在建模通道相关性,也就是“不同通道之间的信息应该如何组合”。

标准卷积实际上承担了双重职责:既要负责空间建模,又要负责通道融合。它之所以表达能力强,很大程度上也正是因为它在一次操作中把这两件事同时完成了。

2.2 高复杂度的根源

问题在于,这两类任务在标准卷积中是绑定在一起完成的,而且这种绑定方式代价很高。每一次 K × K 空间卷积,都伴随着对全部输入通道的加权融合;每生成一个输出通道,都需要依赖所有输入通道的信息。这意味着,空间建模和通道建模不是分开进行的,而是耦合成了一次高成本计算。

这种耦合的直接后果,就是标准卷积的参数量和 FLOPs 都比较高。回顾上一篇文章中的公式,标准卷积的参数量为:

Params_std = C_in × C_out × K × K

其 FLOPs 近似为:

FLOPs_std ≈ H_out × W_out × C_in × C_out × K × K

从中可以看出,高复杂度并不是单纯来自 K × K 空间卷积本身,而是来自“K × K 空间卷积 + 跨通道融合”被同时执行。换句话说,标准卷积最贵的地方,并不是只做了空间卷积,而是每做一次空间卷积,都要顺带完成高成本的通道混合。
深度可分离卷积正是在这个背景下被提出的。它的核心思想非常直接:既然标准卷积同时承担了空间建模和通道融合这两类任务,而且将它们绑定在一起会带来很高的复杂度,那么是否可以把这两类任务拆开,分别用更低成本的方式完成?深度可分离卷积给出的答案,就是将标准卷积拆成两步:先逐通道进行空间卷积,再通过 1 × 1 卷积完成通道融合。

alt text

3. 深度可分离卷积的基本结构

3.1 整体结构

深度可分离卷积(Depthwise Separable Convolution)可以理解为对标准卷积的一种结构性拆分。它不再使用一个统一的 K × K 卷积同时完成空间建模和通道融合,而是将这一过程拆成两个连续的步骤:
  1. Depthwise Convolution

  2. Pointwise Convolution

其整体思路可以概括为一句话:

先逐通道做空间卷积,再通过 1 × 1 卷积做通道融合。

在这两步中,第一步只负责提取每个通道内部的空间特征,不做跨通道信息混合;第二步则只负责在通道维度上重新组合特征,不再做大卷积核的空间滑动。也就是说,原本在标准卷积中被绑在一起完成的两项任务,在这里被显式拆开了。

这种拆分并不是随意的,而是有明确逻辑的:既然空间建模和通道建模本质上是两类不同任务,那么就没有必要每次都用一次昂贵的标准卷积同时完成它们。只要能够先提取空间特征,再完成通道融合,就有可能以更低代价获得接近的表示能力。

alt text

3.2 Depthwise Convolution

Depthwise Convolution 是深度可分离卷积的第一步。它的核心做法是:每个输入通道各自使用一个 K × K 卷积核,独立完成空间卷积。
设输入特征图通道数为 C_in,则 depthwise convolution 会为每个输入通道分配一个独立的 K × K 卷积核。这样一来,通道与通道之间彼此独立,每个通道只在自身内部进行空间卷积,不与其他通道发生混合。

因此,depthwise convolution 的参数量为:

Params_dw = C_in × K × K

其 FLOPs 近似为:

FLOPs_dw ≈ H_out × W_out × C_in × K × K

与标准卷积相比,这一步最大的不同在于:它保留了 K × K 空间卷积,但去掉了跨通道融合。也就是说,它只负责回答“每个通道内部的空间模式是什么”,而不负责回答“不同通道之间应该如何组合”。

从本质上看,depthwise convolution 是对标准卷积中“空间特征提取”部分的单独保留。它的代价远低于标准卷积,因为它不再需要为每个输出通道都遍历全部输入通道,而只是对每个输入通道各自进行一次空间卷积。

因此,可以把 depthwise convolution 理解为:保留空间卷积,剥离通道混合。

3.3 Pointwise Convolution

经过 depthwise convolution 之后,虽然每个通道内部的空间特征已经被提取出来,但不同通道之间 עדיין没有发生信息融合。为了完成这一部分任务,深度可分离卷积的第二步引入了 pointwise convolution。

Pointwise Convolution 本质上就是 1 × 1 卷积。它的作用不是进行空间范围上的特征提取,而是在每一个空间位置上,对全部输入通道做线性组合,从而生成新的输出通道表示。也就是说,它只负责通道维度上的信息融合,而不负责大范围空间建模。
设输入通道数为 C_in,输出通道数为 C_out,则 pointwise convolution 的参数量为:

Params_pw = C_in × C_out

其 FLOPs 近似为:

FLOPs_pw ≈ H_out × W_out × C_in × C_out

可以看到,pointwise convolution 仍然会进行跨通道加权组合,但由于卷积核大小只有 1 × 1,相比标准卷积中昂贵的 K × K 跨通道卷积,它的成本已经大幅下降。

从功能上看,pointwise convolution 回答的是这样一个问题:在完成每个通道内部的空间特征提取之后,这些通道之间的信息应该如何重新组合,才能形成有用的输出表示。也正因为如此,它承担的是通道融合任务,而不是空间建模任务。

因此,可以把 pointwise convolution 理解为:用廉价的 1 × 1 卷积完成通道混合。

4. 深度可分离卷积与标准卷积的复杂度对比

4.1 标准卷积的复杂度

为了更清楚地看出深度可分离卷积为何能够显著降低复杂度,先回顾标准卷积的复杂度表达式。

设输入通道数为 C_in,输出通道数为 C_out,卷积核大小为 K × K,输出特征图空间尺寸为 H_out × W_out,则标准卷积的参数量为:

Params_std = C_in × C_out × K × K

其 FLOPs 近似为:

FLOPs_std ≈ H_out × W_out × C_in × C_out × K × K

这两个公式说明,标准卷积的参数量和计算量都同时受到输入通道数、输出通道数和卷积核尺寸的共同影响,并且其中最昂贵的部分在于: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)

与标准卷积相比,这里的核心变化在于:原本的 K × K 卷积不再作用于“所有输入通道到所有输出通道”的完整映射,而只是先在每个输入通道内部独立执行;跨通道融合则被交给成本更低的 1 × 1 卷积完成。

4.3 复杂度下降的原因

深度可分离卷积之所以能够显著降低复杂度,根本原因并不在于简单减少了一部分卷积核,而在于它改变了卷积计算的组织方式。

标准卷积最昂贵的地方,是每个输出通道都要在全部输入通道上执行一次 K × K 卷积。也就是说,K × K 空间卷积和跨通道融合被同时绑定在高成本操作中完成。

而深度可分离卷积把这一过程拆成了两步:

  • 先用 depthwise convolution 做逐通道的 K × K 空间卷积
  • 再用 pointwise convolution 做 1 × 1 通道融合
这样一来,昂贵的 K × K 卷积只保留在通道内部,而跨通道融合则由便宜得多的 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)

这说明,当 C_out 较大且 K = 3 时,深度可分离卷积的参数量会远低于标准卷积,其 FLOPs 也会呈现类似下降趋势。这也是为什么它在轻量化网络中极具吸引力:它抓住了标准卷积中最贵的部分,并用结构分解方式显著降低了复杂度。

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

可以看到,在这个例子中,参数量从 73728 降到了 8768,下降非常明显。

如果从计算量角度看,标准卷积的 FLOPs 为:

FLOPs_std ≈ H_out × W_out × 64 × 128 × 3 × 3

而深度可分离卷积的 FLOPs 为:

FLOPs_sep ≈ H_out × W_out × (64 × 3 × 3 + 64 × 128)

两者同样存在显著差距。

这个例子说明,深度可分离卷积的复杂度下降并不是“略有优化”,而是在很多常见通道配置下都能带来非常可观的压缩效果。这也是它之所以能够成为轻量化网络设计经典方法的直接原因之一。

alt text

5. 深度可分离卷积的本质理解

5.1 空间相关性建模

如果只记住深度可分离卷积由 depthwise 和 pointwise 两步组成,那么理解还停留在结构表面。要真正把它讲透,必须进一步理解这两步分别在建模什么。

Depthwise convolution 本质上是在建模空间相关性。由于每个输入通道都单独执行一个 K × K 卷积,因此它关注的是某一通道内部局部空间区域的模式,比如边缘、纹理、局部结构等。它回答的问题是:在当前通道内部,某个位置周围的空间模式是什么。

也就是说,depthwise convolution 保留了卷积对局部空间结构敏感的核心能力,但不再试图在这一步同时做跨通道融合。它专注于空间信息本身,把“看局部空间”的工作独立完成。

5.2 通道相关性建模

Pointwise convolution 本质上是在建模通道相关性。由于 1 × 1 卷积不会在空间维度上扩展感受野,因此它并不负责提取新的空间模式,而是对同一空间位置上的多个通道响应进行线性组合。它回答的问题是:在某个固定空间位置上,不同通道之间的信息应该如何组合,才能形成有意义的输出表示。

换句话说,pointwise convolution 的核心作用是进行跨通道信息融合。它把 depthwise convolution 已经提取出的各通道空间特征重新加权、重组,形成新的输出通道。

因此,深度可分离卷积的本质可以概括为一句话:

它将“空间相关性建模”和“通道相关性建模”从标准卷积的一次高成本操作中解耦出来,分别用更低成本的方式完成。

这也是为什么它不是简单意义上的“压缩卷积”,而是一种更深层的计算重构。它重构的不是某几个参数,而是卷积本身的计算逻辑。

alt text

6. 深度可分离卷积的优势

深度可分离卷积之所以被广泛采用,根本原因在于它在复杂度和表达能力之间取得了一个相对优秀的平衡。相比标准卷积,它的优势主要体现在以下几个方面。

显著降低参数量。由于不再对每个输出通道都执行完整的 K × K × C_in 卷积,而是把空间卷积和通道融合拆开,深度可分离卷积能够大幅减少参数数量。这使得模型在静态规模上明显更紧凑,更符合轻量化网络设计的需求。
显著降低 FLOPs。深度可分离卷积将高成本的 K × K 跨通道卷积替换为“逐通道 K × K 卷积 + 1 × 1 通道融合”,从而显著减少理论计算量。对于以卷积层为主体的网络来说,这种下降会在整网层面累积出非常可观的复杂度收益。
适合构建轻量化网络。由于其结构清晰、复杂度低,深度可分离卷积非常适合作为轻量化 CNN 的基础组件。它不仅可以独立使用,还可以与 bottleneck、残差连接、注意力模块等设计结合,从而构成更完整的轻量化网络结构。
设计思路具有普适性。深度可分离卷积并不是某个特定网络独有的技巧,而是一种通用的卷积重构方法。也正因为如此,它能够在不同网络中反复出现,并逐渐成为轻量化卷积设计中的经典范式。

从历史上看,MobileNet 系列正是依托这一设计思想,推动了深度可分离卷积在轻量化网络中的广泛传播。可以说,它已经不只是某一个“技巧”,而是轻量化 CNN 设计中的基础工具之一。


7. 深度可分离卷积的局限性

深度可分离卷积虽然在复杂度降低方面表现突出,但它并不是没有代价。它之所以能够变轻,本质上是因为对标准卷积的完整联合建模能力做了拆分和近似,因此在表达能力上通常也会面临一定折中。

通道交互能力先天受限。在 depthwise convolution 阶段,各通道之间完全独立,彼此不发生信息交换。也就是说,这一步只能在每个通道内部提取空间特征,而不能在不同通道之间建立联合表示。跨通道融合完全依赖后续的 pointwise convolution。如果 pointwise convolution 的设计能力不足,那么整体特征融合效果可能会受到影响。
表达能力可能弱于标准卷积。标准卷积在一次操作中同时完成空间建模和通道融合,这种联合建模方式本身更充分。而深度可分离卷积将其拆成两步,虽然复杂度显著降低,但也意味着这种联合性被削弱了。换句话说,它是对标准卷积的一种低成本近似,因此在某些任务或某些层上,其表征能力可能不如标准卷积。
复杂度下降不等于任何场景都最优。深度可分离卷积的理论收益非常明显,但这并不意味着它在所有网络结构中都一定是最佳选择。某些任务可能更依赖强通道耦合能力,某些层可能更需要标准卷积的完整表达能力。因此,是否采用深度可分离卷积,仍然要结合具体网络设计和任务需求综合考虑。

需要明确一点:深度可分离卷积并不是标准卷积的“全局替代品”,而是一种非常有效但仍有边界的轻量化设计。它代表的是一种复杂度—性能折中思想,而不是“越轻越绝对正确”的单向选择。


8. 深度可分离卷积的经典性来源

深度可分离卷积之所以能够成为轻量化网络设计中的经典方法,并不仅仅因为它比标准卷积“更轻”,而是因为它在思路、收益和通用性三个方面都非常突出。

思路清晰。它没有绕开卷积问题,而是直接针对标准卷积复杂度高的根源下手。既然标准卷积最昂贵的地方在于把空间建模和通道融合绑定在一次高成本操作中完成,那么最自然的优化方式,就是把这两类任务拆开。这种设计逻辑非常直接,也非常容易解释。
收益显著。与很多轻量化技巧相比,深度可分离卷积在参数量和 FLOPs 上的下降都非常明显,而且这种收益能够通过简单公式直观展示出来。也就是说,它不是“略有优化”,而是能带来可观、稳定的复杂度压缩效果。
通用性强。深度可分离卷积不是只适用于某一个网络或某一个任务的特殊结构,而是一种可以嵌入多种轻量化 CNN 设计中的基础组件。它能够和 bottleneck、残差结构、注意力模块等多种设计方式结合,这使得它很容易演化成一种通用构件,而不只是论文中的单点技巧。

深度可分离卷积之所以经典,不只是因为它“更轻”,更因为它以一种非常清晰且有效的方式重构了卷积计算。它让人们看到,卷积复杂度优化并不一定依赖于简单删减,而可以通过计算逻辑重构,在保持核心建模能力的同时大幅降低复杂度。也正因为这种思想具有很强的代表性,它才会成为轻量化网络设计中的标志性方法。


9. 总结

深度可分离卷积是轻量化网络设计中最经典的方法之一。它通过将标准卷积拆分为 depthwise convolution 和 pointwise convolution 两步,显式地把空间建模与通道融合解耦,从而显著降低了参数量和 FLOPs。

从结构上看,depthwise convolution 负责逐通道的空间特征提取,pointwise convolution 负责跨通道的信息融合;从本质上看,它是在重构卷积的计算逻辑,把原本一次高成本完成的双重任务拆成两次低成本操作。也正是这种拆分,使它能够在复杂度下降和表达能力保持之间取得较好的平衡。

当然,深度可分离卷积并不是没有代价。由于其联合建模能力弱于标准卷积,因此在某些场景下可能会带来表达能力上的折中。但总体而言,它所体现出的复杂度优化思路非常清晰,收益也非常显著,因此逐渐成为轻量化卷积设计中的经典范式。

从更广的角度看,深度可分离卷积的重要性不只在于它本身,而在于它代表了一类典型的轻量化思想:当一个高成本操作同时承担多项任务时,可以尝试将这些任务解耦,再分别用更低成本的方式完成。这种思想不仅适用于卷积,也深刻影响了后续许多轻量化网络结构的设计方向。

感知
技术深度解析杂谈
评论0
0/1000