空洞卷积有什么作用?
简化版
空洞卷积在卷积核采样点之间插入间隔,以不增加权重数量的方式扩大感受野,并保持较高输出分辨率。代价是采样呈网格状,连续堆叠相同 dilation 可能产生 gridding artifact,对小尺度细节也可能漏采。
详细版
-
有效核尺寸为
K_eff=K+(K-1)(d-1);3×3、d=2 等效覆盖 5×5 范围。 -
参数量仍是
Cin×Cout×K²,但覆盖范围变大,不等于使用稠密 5×5 卷积。 -
语义分割常用 dilation 替代后期 stride,以保留空间分辨率。
-
ASPP 并联多个 dilation 捕获多尺度上下文。
-
dilation 选择需结合特征图尺寸,过大时多数采样落到 padding 上。
完整版教学
一、在分辨率与上下文之间另开一条路
分类网络通过连续下采样扩大感受野,但分割需要逐像素输出,过低分辨率会损失边界。
空洞卷积扩大采样跨度,不必继续降低 H、W。
它扩大的只是采样覆盖,不会凭空获得全部中间像素信息。
这个区别解释了为何参数量不变,也解释了网格伪影。
二、底层机制与关键公式
dilation=d 表示相邻核元素在输入上间隔 d 个像素。
d=1 就是普通卷积;对 K=3,采样坐标从 {-1,0,1} 变为 {-d,0,d}。
多层 dilation 的组合决定实际覆盖。
若每层都使用同一大公因数的 dilation,采样点可能长期落在固定子网格;交错使用 1、2、3 或多分支能缓解。
K_effective = K + (K - 1) * (d - 1)
K=3, d=1 -> 3
K=3, d=2 -> 5
K=3, d=4 -> 9
三、带数字的推演
一个 3×3 卷积、d=4 覆盖 9×9 范围,却只读取 9 个位置;稠密 9×9 会读取 81 个位置。
二者覆盖边界相同,但信息密度和参数量完全不同。
四、方案对比与选择
| 方案/场景 | 机制或优势 | 主要代价 |
|---|---|---|
| 大核卷积 | 稠密读取大区域 | 参数与计算更高 |
| 空洞卷积 | 稀疏读取大区域 | 保分辨率,可能网格化 |
| 下采样卷积 | 压缩后扩大相对视野 | 丢失精细定位 |
五、实际执行流程
高分辨率特征 -> 取消一次 stride=2
-> 后续卷积 dilation 加倍以保持感受野
-> 多尺度 dilation 融合 -> 像素级预测
六、边界条件与工程代价
当 dilation 接近特征图尺寸时,边缘位置的大量采样会落入 padding,有效信息反而减少。
ASPP 的 rate 常随 output stride 调整,不能从一个输入尺寸机械照搬。
某些硬件对 dilation 算子优化较差,理论 MACs 不变但访存不连续,实际延迟可能高于普通卷积。
记忆钩子:把空洞卷积记成“核没变,脚步变大”:3×3、d=2 覆盖 5×5,但仍只踩 9 个点。
七、常见误区与追问
-
误区:空洞卷积等价于同尺寸的大核卷积。 它只稀疏采样大范围,未读取中间所有位置。
-
追问:参数量为何不增加? 权重元素仍只有 K×K,改变的是输入采样间隔。
-
误区:dilation 越大越好。 过大会漏掉局部结构,并让采样大量落在 padding。
-
追问:什么是 gridding artifact? 重复稀疏网格使相邻输出依赖互不覆盖的输入子集,形成棋盘式信息缺口。
-
追问:如何缓解网格效应? 混合不同 dilation、加入普通卷积或采用多尺度并联融合。
八、加强记忆
把空洞卷积记成“核没变,脚步变大”:3×3、d=2 覆盖 5×5,但仍只踩 9 个点。
优势是保分辨率看更远,风险是踩得太稀形成网格和边界空采样。