Separable Convolution(可分离卷积)是一种优化卷积计算的方法,将普通卷积操作分解成两个更简单的操作,以减少计算量和参数量,同时保持较高的准确性。主要有两种形式:空间可分离卷积和深度可分离卷积。
1. 空间可分离卷积(Spatially Separable Convolution)
普通卷积使用的是一个二维卷积核,而空间可分离卷积将其分解为两个一维卷积核:
-
分解方式: 将 k × k k \times k k×k 的二维卷积核分解为两个一维卷积核:
- 一个 k × 1 k \times 1 k×1 卷积核(只在垂直方向上进行卷积)。
- 一个 1 × k 1 \times k 1×k 卷积核(只在水平方向上进行卷积)。
-
优势:
- 减少计算量:
- 普通卷积的计算量为 k × k × C i n × H × W k \times k \times C_{in} \times H \times W k×k×Cin×H×W。
- 空间可分离卷积的计算量为 ( k × 1 + 1 × k ) × C i n × H × W (k \times 1 + 1 \times k) \times C_{in} \times H \times W (k×1+1×k)×Cin×H×W,大幅减少。
- 更高效的参数存储。
- 减少计算量:
-
示例:
在 3 × 3 3 \times 3 3×3 卷积中,普通卷积需要 9 次乘法,而分解后只需要 3 + 3 = 6 3+3=6 3+3=6 次。
2. 深度可分离卷积(Depthwise Separable Convolution)
深度可分离卷积是目前应用最广泛的可分离卷积形式(如 MobileNet、Xception)。它将普通卷积分解为两个步骤:
-
Depthwise Convolution(深度卷积):
- 每个输入通道单独使用一个卷积核进行操作(不进行跨通道操作)。
- 计算量: k × k × C i n × H × W k \times k \times C_{in} \times H \times W k×k×Cin×H×W。
-
Pointwise Convolution(逐点卷积):
- 使用 1 × 1 1 \times 1 1×1 卷积核,对所有通道进行线性组合,产生 C o u t C_{out} Cout 个输出通道。
- 计算量: C i n × C o u t × H × W C_{in} \times C_{out} \times H \times W Cin×Cout×H×W。
-
计算量对比:
- 普通卷积计算量: k × k × C i n × C o u t × H × W k \times k \times C_{in} \times C_{out} \times H \times W k×k×Cin×Cout×H×W。
- 深度可分离卷积计算量: k × k × C i n × H × W + C i n × C o u t × H × W k \times k \times C_{in} \times H \times W + C_{in} \times C_{out} \times H \times W k×k×Cin×H×W+Cin×Cout×H×W。
比较节省:
减少比例 = 1 C o u t + k 2 C i n \text{减少比例} = \frac{1}{C_{out} + \frac{k^2}{C_{in}}} 减少比例=Cout+Cink21
对于 C i n = C o u t C_{in}=C_{out} Cin=Cout,且 k = 3 k=3 k=3,计算量减少约 8 − 9 8-9 8−9 倍。 -
示例:
在 MobileNet 中:- 普通卷积计算量: 3 × 3 × 32 × 64 × 224 × 224 3 \times 3 \times 32 \times 64 \times 224 \times 224 3×3×32×64×224×224。
- 深度可分离卷积计算量: 3 × 3 × 32 × 224 × 224 + 1 × 1 × 32 × 64 × 224 × 224 3 \times 3 \times 32 \times 224 \times 224 + 1 \times 1 \times 32 \times 64 \times 224 \times 224 3×3×32×224×224+1×1×32×64×224×224。
3. 普通卷积与可分离卷积的比较
特性 | 普通卷积 | 空间可分离卷积 | 深度可分离卷积 |
---|---|---|---|
计算量 | 高 | 较低 | 更低 |
参数量 | 高 | 较低 | 更低 |
应用场景 | 高精度模型 | 特定场景优化 | 轻量化网络(如 MobileNet) |
复杂度 | 无分解 | 分解为两步 | 分解为两步 |
4. 深度可分离卷积的优点
- 效率提升: 在相同条件下计算量和参数量大幅减少。
- 轻量化模型: 特别适用于移动设备或资源受限的环境。
- 灵活性强: 通过 Pointwise 卷积可以调整通道数,实现通道间的交互。
5. 应用
- MobileNet 系列: 使用深度可分离卷积代替普通卷积。
- Xception: 全面采用深度可分离卷积代替传统卷积,提升计算效率。
- EfficientNet: 作为轻量化模型的重要组成部分,结合其他优化策略使用。
总结: 可分离卷积是一种有效的优化技术,通过降低计算复杂性,在轻量化模型中得到广泛应用,同时保持了较高的模型性能。