其他卷积形式
在图像分割中,为什么需要转置卷积或上采样?有哪些常见上采样方法?¶

为什么需要上采样
在图像分割(语义分割、实例分割)中,编码器通过池化和步长卷积不断降低分辨率以提取高维语义特征。但分割任务要求输出与输入图像大小相同的像素级分类图,因此必须将低分辨率特征图恢复到原始分辨率。转置卷积和上采样操作正是起到恢复空间维度的作用。此外,它们还可以与编码器中的高分辨率特征进行融合(skip connections),以补偿下采样过程中丢失的细节。
常见上采样方法
- 双线性插值 / 最近邻插值
- 非学习的固定算法,速度最快,无参数。
- 双线性插值根据周围四个像素加权计算;最近邻直接复制最近像素。
- 缺点是无法学习最优的上采样方式,边界可能模糊,缺乏自适应能力。
-
常用于初始恢复分辨率或作为上采样后接卷积的预处理。
-
转置卷积(Transposed Convolution)
- 具有可学习的卷积核,通过“输入像素乘以核并平铺叠加”的方式放大尺寸。
- 本质上等价于在输入元素间插入零值再执行标准卷积。
- 优点:可学习,能够适应任务需求,生成更锐利的边缘。
- 缺点:如果步长和核大小不匹配会产生棋盘效应;训练初期不稳定。
-
广泛应用于 DCGAN、分割网络的解码器。
-
子像素卷积(Pixel Shuffle / Sub-pixel Convolution)
- 先用 1×1 卷积将通道数扩大 r2r2 倍,然后通过周期性重排将通道像素映射到空间上,使高、宽放大 rr 倍。
- 参数可学习,且能避免棋盘效应(因重排操作将多个通道的像素融合,均匀分布)。
-
在超分辨率和一些分割模型(如 ESPCN)中表现良好。
-
反池化(Unpooling)
- 记录池化时的最大值位置(Max Unpooling),将输入特征放到对应位置,其余置零。
- 常用于编码器-解码器结构(如 SegNet),可保留高频细节位置信息。
-
缺点是产生稀疏特征图,通常需配合卷积平滑。
-
双线性插值 + 卷积
- 先用双线性插值上采样,再跟一个可学习的卷积层来细化特征。此方法避免了转置卷积的棋盘伪影,保留学习能力,在 UNet 等网络中被采用。
总结:不同上采样方法各有优劣。学习型方法(转置卷积、子像素卷积)可适应任务,但需要更多计算;插值配合卷积兼顾效率和稳定性,逐渐成为主流选择。
空洞卷积在语义分割(如 DeepLab)中的作用是什么?如何设置空洞率来避免网格效应?¶
作用
-
语义分割需要输出高分辨率预测图,空洞卷积(Dilated/Atrous Convolution)可以在不进行下采样的情况下指数级扩大感受野。
-
在 DeepLab 系列中,空洞卷积被用来构建空洞空间金字塔池化(ASPP)模块:并行使用多个不同空洞率的卷积来捕获多尺度上下文信息,同时保持特征图的分辨率。
-
这样既能获取全局上下文(大空洞率),又能保留局部细节(小空洞率),大幅提升分割精度。
网格效应(Gridding Effect)
当连续使用相同空洞率的空洞卷积时,卷积核的采样点会形成固定的稀疏网格,导致某些输入像素完全未被采样,信息丢失。例如,连续两个空洞率=2 的 3×3 卷积,其采样点总是间隔固定步幅,输出像素只依赖于稀疏网格上的输入,产生类似棋盘的模式。这会降低对局部信息的建模能力。
避免网格效应的方法
-
使用连续递增的空洞率(如 1, 2, 4)堆叠:设计的原则是相邻空洞率的最大公约数应为 1,且空洞率之间不要有公因子。例如 HDC(Hybrid Dilated Convolution)框架建议采用锯齿状空洞率,如 [1, 2, 5, 1, 2, 5] 的循环,确保最终感受野覆盖所有输入像素而不遗漏。
-
在 ASPP 中,并行使用多个不同空洞率(如 6, 12, 18)并 concat,每个分支独立提取特征,融合后避免了单一空洞率连续堆叠的问题。
-
结合 1×1 卷积和全局池化:ASPP 中还包括 1×1 卷积分支和全局平均池化分支,进一步缓解网格效应并补充全图上下文。
-
空洞率上限受特征图大小限制:空洞率不能超过特征图尺寸,否则采样点会落在边界之外,退化为 1×1 卷积。通常随着特征图变小,后期空洞率不宜太大。
DeepLab v3 通过精心设计的 ASPP 模块(多空洞率+全局池化)成功避免了网格效应,并捕获了丰富的多尺度信息。
可变形卷积如何学习偏移量?其反向传播过程是怎样的?¶
学习偏移量

反向传播
由于偏移量是通过卷积网络预测的,整个系统端到端可微。梯度需要从采样值回传到偏移量和输入特征。具体梯流:
-
对主卷积核权重:与标准卷积相同,直接对加权输出求导。
-
对输入特征 X:不仅通过采样值的加权和直接回传(与标准卷积类似,但要考虑采样坐标可能不是整数),还要通过偏移量预测网络间接回传(双线性插值梯度)。

其中 G 是双线性插值的梯度核。框架自动实现了这些细节。
因此,DCN 通过额外的卷积来预测偏移,并用双线性插值保证可微性,使得整个网络能联合学习特征提取和几何变形。
动态卷积(如 CondConv、DY-Conv)如何根据输入动态生成卷积核权重?¶
动态卷积的思想是卷积核的参数不再是固定的,而是根据输入内容动态生成,以提升模型容量和适应性,同时保持推理时的高效性(通过合并多套核)。
CondConv(Conditionally Parameterized Convolutions)

-
然后用这个动态合成的卷积核执行标准卷积操作。
-
由于每个样本甚至每个空间位置都可以有不同的组合权重,模型能根据不同输入自适应地选择特征提取模式,极大地增强了表达能力。推理时,只需求出加权核并应用于卷积,计算量仅略高于标准卷积(增加路由函数的开销)。
DY-Conv(Dynamic Convolution)
类似于 CondConv,但进一步考虑了空间动态性:每个空间位置可以有不同的核组合。它在通道注意力上做了更精细的设计,但基本思想仍然是利用轻量级网络根据输入生成权重系数,混合多个静态核。
关键点:
-
通过动态组合,静态模型可以表现出多模型集成的能力,在相同计算量下取得更高的精度。
-
训练时容易陷入局部最优(因为 N 个核和路由函数需协同学习),需要特殊的训练策略(如使用较大的学习率或核的初始化策略)。
-
在图像分类、目标检测等任务中,CondConv/DY-Conv 以较小的 FLOPs 增加换来了显著的性能提升。
非局部神经网络(Non-local Neural Networks)是如何引入长程依赖的?与自注意力有何关系?¶
非局部神经网络
非局部模块直接对特征图中所有位置进行加权求和,捕获全局上下文。其核心公式:

这种方式能够直接捕获图像中两个远距离像素之间的依赖关系,打破了标准卷积局部感受野的限制。
与自注意力的关系
自注意力机制是 Transformer 的核心,也可以写成:

什么是 3D 卷积?它适用于什么类型的数据?¶
3D 卷积

适用数据
-
视频数据:帧序列可视为 3D 体数据(时间×高×宽)。3D 卷积可以捕获帧间的运动信息和时空特征,广泛应用于动作识别(如 C3D、I3D)、视频分类、视频分割。
-
医学三维影像:CT、MRI 扫描是真实的 3D 体素数据(如脑部扫描的 3D 体积)。3D 卷积能够直接在三维空间中提取病变特征,进行器官分割等任务(如 3D U-Net)。
-
点云体素化:在三维点云处理中,有时将点云转化为体素网格,再用 3D 卷积处理。
-
也可用于某些立体视觉任务中的深度维度。
计算量与内存:3D 卷积的计算量和参数量比 2D 卷积大得多,通常需要使用较浅网络或分解卷积(如 (3,1,1)+(1,3,3) 分离卷积)来降低开销。
分组卷积的组数如果等于输入通道数,它变成了什么操作?¶

深度卷积是深度可分离卷积的第一步,常与逐点卷积(1×1 卷积)结合使用,形成轻量级卷积模块。它是 MobileNet 和 Xception 等高效模型的核心。
为什么 ShuffleNet 要在分组卷积后加入通道混洗?不混洗会怎样?¶
问题:分组卷积将输入通道隔离,组内独立操作,组间信息无法流通。如果连续使用多个分组卷积,输出特征将完全局限在各组内部,通道之间没有交互,这会严重限制网络的学习能力,变成孤立的多路独立网络,无法融合跨组特征。
通道混洗(Channel Shuffle)
ShuffleNet 在分组卷积之后,对输出的通道进行重排:将通道划分为若干组,然后均匀打乱,使得下一次分组卷积时,每个输入组都包含来自上一阶段所有组的通道。这在不增加参数和计算的情况下实现了跨组信息流通。
不混洗的后果:
-
连续分组卷积退化为多个并行的、互相独立的弱子网络,特征多样性受限。
-
网络的表示能力大幅下降,因为无法学习到跨组特征组合。
-
实验表明,没有通道混洗时,即使增加深度,精度也会饱和乃至下降。
因此,通道混洗是 ShuffleNet 高效且有效的关键设计,实现了轻量级架构中的跨通道信息交换。
简述深度可分离卷积、分组卷积、通道混洗在轻量级模型设计中的组合使用。¶
这三者常被组合来构建极高效且性能良好的移动端 CNN 模块。
-
深度可分离卷积:负责在空间维度上提取特征,且不混合通道(depthwise),然后紧跟 1×1 逐点卷积融合通道。这是 MobileNet 的核心。
-
分组卷积:可以看作深度可分离卷积的推广(当组数小于通道数时)。组卷积允许在减少参数的同时保留一定的通道交互,但组间独立。ResNeXt 用分组卷积增加基数。
-
通道混洗:解决分组卷积后信息隔离的问题,强制不同组的通道在下一次分组卷积前混合。
典型组合:ShuffleNet 单元
-
ShuffleNet v1: 1×1 分组卷积 → 通道混洗 → 3×3 深度卷积 → 1×1 分组卷积。 通过两个 1×1 分组卷积(带通道混洗)实现通道信息混合,同时深度卷积处理空间特征。 这种设计在极小计算量下仍能获得不错精度。
-
ShuffleNet v2:进一步优化了操作顺序和分支结构,遵循高效网络设计的四条准则(包括均衡输入输出通道、减少分组卷积的组数等),仍使用通道混洗。
总结:深度可分离卷积负责空间滤波,分组卷积减少 1×1 卷积的计算量,通道混洗打破组的隔离,三者协同可在 FLOPs 和精度间取得卓越平衡。
卷积和自注意力各有何优缺点?为什么 ViT 等模型用注意力替代了卷积?¶
卷积的优势
-
归纳偏置强:局部连接和权值共享符合图像数据的空间局部性,使网络在数据量有限时能高效学习。
-
平移等变性:天然具有平移等变性,适合检测、分割等密集预测。
-
计算效率高:滑动窗口计算可以高度优化,现代硬件加速库成熟。
-
参数少,容易训练:对于小模型和数据量不特别大的场景,卷积容易收敛且泛化好。
卷积的劣势
-
感受野有限:捕捉长距离依赖需要堆叠多层或使用特殊结构,信息交互不够直接。
-
内容无关性:传统卷积核不随输入内容变化,对几何变换和复杂全局关系的建模能力不足。
自注意力的优势
-
全局依赖:每个位置直接与所有其他位置交互,一次操作即可捕获全局上下文。
-
内容自适应:注意力权重根据输入动态计算,对于不同输入能灵活关注不同区域。
-
多模态统一建模:序列结构统一,易于扩展到文本、图像、视频等多模态。
自注意力的劣势

为什么 ViT 用注意力替代卷积
-
在大规模数据(JFT-300M, ImageNet-21K)上训练时,Transformer 的强表达能力得以发挥,能够从数据中学会类似卷积的局部模式,并同时建模长程依赖。
-
注意力机制提供了统一而简单的全局建模,无需手工设计复杂的卷积堆叠和跳跃连接。
-
硬件对 Transformer 的优化进展迅速,大规模并行处理效率高。
-
最终,ViT 展示了纯 Transformer 在视觉任务上的竞争力,推动了“去卷积化”的浪潮。
什么是 RepVGG 中的结构重参数化?训练时多分支,推理时合并成单路,如何实现?¶
结构重参数化(Structural Re-parameterization)
RepVGG 在训练时使用多分支拓扑(类似于 VGG 的 3×3 卷积 + 1×1 卷积 + 恒等映射分支),以利用多分支的训练优势(如同 ResNet 的多路径,易于优化、梯度流动好)。而在推理时,将所有分支等价合并为一个单独的 3×3 卷积,使得推理时模型仅为一个简单的 VGG 风格直筒网络,无任何分支,速度极快。
合并原理
三个并行的分支:

为什么这样做
训练时的多分支带来类似 ResNet 的优化好处(缓解梯度消失),而推理时的单路 VGG 结构充分利用现代硬件对 3×3 卷积的极致优化(内存带宽利用率高、计算密度大),实现更高吞吐和更低延迟。这种解耦训练与推理架构的策略是重参数化的核心思想。
可变形卷积 v2 比 v1 多了什么?调制机制如何工作?¶
DCN v2 的改进 在 DCN v1 中,每个采样点仅学习空间偏移,且所有采样点对输出的贡献是均等权重(由卷积核权重决定,但核权重固定)。DCN v2 引入了调制机制(Modulation),为每个采样点增加一个可学习的调制标量 Δmn∈[0,1],允许网络控制每个偏移采样点的重要性。公式变为:

调制机制的作用
-
可以屏蔽掉一些不相关的采样点(如物体边界外的点),让网络自己决定哪些偏移采样是有用的,进一步提升了变形模块的处理能力。
-
同时,DCN v2 还增加了可学习的“特征增益”来平衡不同尺度的目标。
-
这使得可变形卷积能更精准地建模复杂几何形变,在检测和分割上带来进一步提升。
学习方式
与 DCN v1 相似,偏移量和调制系数都是通过额外的卷积层预测,反向传播通过双线性插值梯度回传至输入特征和偏移/调制预测网络,整个系统端到端训练。
在边缘设备上部署 CNN,除了使用 MobileNet,还可以通过哪些方式加速卷积运算?¶
-
模型压缩与优化
-
剪枝:删除不重要的权重或通道,生成稀疏模型,然后利用稀疏卷积加速。
-
量化:使用 INT8、FP16 甚至 INT4 进行推理,利用硬件指令(如 ARM NEON 的 SIMD)大幅提升速度,减少模型体积和内存占用。
-
蒸馏:用大模型教导小模型,使轻量网络精度逼近大模型。
-
高效卷积算子
-
深度可分离卷积、分组卷积:MobileNet、ShuffleNet 已采用。
-
Winograd 卷积:对于 3×3 卷积,Winograd 最小滤波算法可以减少乘法次数(约 2.25 倍),在 CPU/GPU 上常被推理库使用。
-
FFT 卷积:大核卷积可用 FFT 加速,但边缘设备上较少用,因为小核更常见。
-
Im2col/GEMM 优化:将卷积转化为矩阵乘法,利用高效 BLAS 库。
-
网络架构转换
-
结构重参数化(如 RepVGG):训练使用多分支,推理合并为单路,适应硬件加速。
-
神经网络架构搜索(NAS):直接针对目标设备的延迟和功耗进行搜索,得到定制化高效模型。
-
硬件与框架优化
-
使用推理框架(如 TensorFlow Lite, ONNX Runtime, OpenVINO, MNN, NCNN)对模型进行算子融合、常量折叠、内存优化等。
-
针对 GPU 使用 NCNN 的 Vulkan 优化,NPU/DSP 使用厂商 SDK(如高通 SNPE, 华为 HiAI)进行异构加速。
-
Winograd 和调优的 im2col 在移动端 CPU 上非常有效。
-
输入预处理与减少推理次数
-
调整输入分辨率:在保持精度的前提下使用更小的图像。
-
动态推理(如早退机制):简单样本使用浅层网络即可分类。
-
编译器级优化
-
TVM 等自动调优框架可针对特定硬件生成最优调度。
综合运用这些方法,可以使模型在边缘设备上达到实时性能,同时维持可接受的精度。
解释 Winograd 算法如何加速小卷积核计算,以及为何在大核或大 stride 时不适用。¶
Winograd 最小滤波算法

-
将输入分块(tiles),每个块与卷积核进行 Winograd 变换。
-
在变换域中执行逐元素乘法(输入和核的变换相乘)。
-
对结果执行逆变换得到输出块。 由于乘法数量减少,且现代硬件上乘法是昂贵操作,总体计算速度得以提升。小卷积核(如 3×3, 5×5)在深度学习推理中被广泛应用,Winograd 已成为许多推理库(如 cuDNN)的标准优化。
为何在大核或大 stride 时不适用
-
大卷积核:Winograd 的加速比随核尺寸增大而下降,且变换矩阵的数值稳定性变差,精度损失可能不可接受。此外,大核卷积本身在 CNN 中较少出现,Winograd 的优势领域不再。
-
大 stride:Winograd 算法通常假设步长为 1。对于 stride > 1 的卷积,输出块重叠和采样模式改变,标准 Winograd 公式不再直接适用。可以强制使用某种映射,但会引入额外开销,加速效果减弱甚至变慢。
-
内存开销:Winograd 变换会增加中间张量的通道数(因变换矩阵扩展),对于大核或大通道,额外的内存带宽需求可能抵消乘法减少带来的收益。
-
适用性:因此 Winograd 主要针对 3×3 步长 1 的卷积,且 batch size 适中(推理时 batch=1 常见),在 CPU/GPU 上均有效。大核或大 stride 时通常退化为常规 im2col+GEMM 或 FFT 方法。
你认为卷积结构的未来发展方向是什么?会与注意力机制完全融合吗?¶
卷积的未来发展方向
- 卷积与注意力深度融合
- 现代架构已经大量融合:例如 ConvNeXt 借鉴 Swin Transformer 的设计;CoAtNet 系统性地结合卷积和注意力;MaxViT、HorNet 等提出混合结构,用卷积捕获局部特征,用注意力(或高阶交互)捕获全局依赖。
-
未来可能不再区分“卷积网络”和“Transformer”,而是根据数据特性和计算约束,在块的内部灵活组合卷积、池化、注意力和 MLP 等算子,形成可学习的基础运算单元。
-
动态与自适应计算
- 动态卷积、动态深度、动态宽度将使网络能根据输入难度调整计算量。
-
可变形卷积的进一步发展可能使几何建模能力更强,适应复杂场景。
-
模型效率和部署友好性
- 结构重参数化、神经架构搜索与硬件协同设计将继续推动极致轻量化和低延迟推理。
-
未来网络可能训练时使用复杂的多分支注意力-卷积混合体,推理时重参数化为单一分支,兼顾表达力和速度。
-
大模型时代的卷积角色
- 尽管大语言模型以 Transformer 为主,视觉大模型(如 SAM、DINOv2)中,卷积仍作为有效特征提取器。
-
卷积的局部性和计算效率使其在超大规模模型中作为图像分块或局部处理单元不可或缺,并与全局注意力分工合作。
-
连续与等变卷积
- 探索连续域上的卷积(如 PDE 网络)、等变卷积(旋转、尺度等变性)以获得更好的几何泛化能力。
是否会完全融合?
可能性很大。从卷积的角度看,注意力是一种数据驱动的动态加权卷积(空间可变的核)。从注意力的角度看,卷积是固定窗口的稀疏注意力。已有工作如 Conv2Former 将 3×3 卷积演变为自注意力式的权重生成; VAN(Visual Attention Network) 使用大核注意力(实际上等价于动态深度卷积)。
未来可能演化出一种统一的范式:每个位置通过可学习的方式动态组合“局部静态核”(类似卷积)和“全局内容自适应核”(类似注意力),并且这些操作在数学上和工程实现上融合为一套基元。因此,完全融合并非两者界限消失,而是产生一种更强大通用的操作元,使得网络设计不再纠结于“卷积还是注意力”,而是面向效率和任务自适应地选择组合。卷积的局部性和注意力的全局性将成为同一枚硬币的两面。