引言

Vision Transformer (ViT) 和卷积神经网络 (CNN) 是计算机视觉领域的两大主流架构。ViT将Transformer架构引入视觉领域,在大规模数据上展现出卓越性能;CNN则凭借局部感受野和层次化特征提取,在各类视觉任务中保持竞争力。

本文系统分析两种架构的理论特性,提供实践选择指南。


架构差异理论分析

卷积神经网络 (CNN)

核心机制

CNN通过局部感受野权重共享提取特征:

归纳偏置

归纳偏置描述优势
局部性只关注局部邻域参数效率高
平移不变性权重在空间共享鲁棒性好
层次结构逐层抽象符合视觉认知

特点

  • ✅ 参数效率高(小数据集)
  • ✅ 计算效率高
  • ✅ 对局部特征敏感
  • ✅ 易于硬件优化
  • ❌ 感受野受限于卷积核大小
  • ❌ 难以捕获全局依赖

Vision Transformer (ViT)

核心机制

ViT将图像划分为patch,然后应用标准Transformer:

┌─────┬─────┬─────┐
│ P₁₁ │ P₁₂ │ P₁₃ │
├─────┼─────┼─────┤
│ P₂₁ │ P₂₂ │ P₂₃ │
├─────┼─────┼─────┤
│ P₃₁ │ P₃₂ │ P₃₃ │
└─────┴─────┴─────┘
      ↓ flatten + linear projection
[x₁, x₂, ..., x₉] + [CLS] → Transformer

自注意力机制

每个patch可以与所有其他patch交互,实现全局建模。

特点

  • ✅ 全局感受野
  • ✅ 灵活建模token间依赖
  • ✅ 架构统一性(NLP→CV)
  • ✅ 更好的长距离建模
  • ❌ 需要大量数据
  • ❌ 计算复杂度高

核心特性对比

理论对比表

特性CNNViT
感受野局部→全局(逐层扩展)全局(从第一层)
权重共享空间维度共享Query/Key/Value投影
平移不变性显式(卷积)隐式(需学习)
参数效率高(局部连接)低(全局连接)
数据效率高(归纳偏置)低(需大规模数据)
计算复杂度
长距离建模需要大核或多层自带全局建模

表达能力对比

CNN的表达能力

CNN的表达能力受限于局部感受野的组合:

其中 为层数, 为卷积核大小。

理论上,深层CNN可以覆盖整个图像,但:

  • 需要大量层
  • 信息可能逐层稀释
  • 路径长度随距离指数增长

ViT的表达能力

ViT的自注意力提供直接的全局交互:

不受token间距离影响,但:

  • 需要足够深度来建模复杂关系
  • 可能缺乏局部结构的先验

数据效率对比

数据量需求

性能
  ↑
  │    ╭──────────────────────────
  │   ╱                            ╲ ViT
  │  ╱                              ╲
  │ ╱                                ╲
  │╱                                  ╲
  │━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━→ 数据量
    小        中         大
数据规模推荐架构理由
< 1MCNN归纳偏置弥补数据不足
1M - 14M两者接近,CNN略优ViT需要更多数据
> 14MViT优大规模数据发挥ViT优势

数据增强的影响

研究发现,数据增强对两种架构的效果不同:

增强策略CNN效果ViT效果
随机裁剪提升明显效果有限
Mixup/CutMix有效需要调整
自监督预训练-显著提升

任务适应性对比

图像分类

场景推荐说明
小数据集CNNResNet、EfficientNet
大规模标准任务ViTImageNet-21K+
细粒度分类CNN+Attention两者结合

目标检测

方法Backbone特点
YOLOCNN实时性好
DETRViT端到端,无需NMS
Swin Transformer层次ViT结合两者优点

语义分割

方法Backbone优势
U-NetCNN医学图像
SegFormerViT全局上下文
SETRViT长距离依赖

视频处理

任务推荐架构理由
动作识别3D CNN / SlowFast时序局部性
视频分类Video Transformer全局时序建模
时空建模混合架构两者结合

部署效率对比

计算需求

指标CNNViT
FLOPs (ImageNet Top-1)较低较高
参数量较少较多
推理延迟较低较高
内存占用较低较高

硬件适配性

硬件平台推荐架构优化策略
CPUCNN剪枝、量化
GPU (A100/H100)两者均可FlashAttention
移动端CNNMobileNet、EfficientNet
专用加速器CNN稀疏化

优化技术

CNN优化

# 常见CNN优化技术
- 深度可分离卷积 (MobileNet)
- 残差连接 (ResNet)
- 通道剪枝
- INT8量化

ViT优化

# 常见ViT优化技术
- Flash Attention
- 稀疏注意力
- KV Cache
- FP16/BF16混合精度

选择决策树

开始
  │
  ├─ 数据量 < 1M?
  │     │
  │     ├─ 是 → 使用 CNN (ResNet50/EfficientNet)
  │     │
  │     └─ 否 → 继续判断
  │
  ├─ 实时性要求高?
  │     │
  │     ├─ 是 → 使用 CNN 或 轻量ViT (DeiT-Tiny)
  │     │
  │     └─ 否 → 继续判断
  │
  ├─ 需要全局建模?
  │     │
  │     ├─ 是 → 使用 ViT 或 Swin Transformer
  │     │
  │     └─ 否 → 使用 CNN
  │
  └─ 部署平台?
        │
        ├─ 移动端/边缘 → CNN (MobileNet)
        ├─ 服务器 → 两者均可
        └─ 专用硬件 → 根据优化成熟度选择

混合架构趋势

最新的融合方向

架构融合策略代表模型
ConViTCNN + ViTConViT, CVT
Swin Transformer层次化 + 局部注意力Swin, MViT
ConvMixer混合表示ConvMixer
MaxViT多尺度混合MaxViT

设计原则

  1. 局部+全局:用卷积捕获局部特征,用注意力捕获全局依赖
  2. 层次化设计:借鉴CNN的层次结构改进ViT
  3. 计算效率:平衡局部和全局计算开销

总结

选择指南

因素CNNViT
数据量少✅ 优势
计算资源有限✅ 优势
长距离依赖重要✅ 优势
实时性要求高✅ 优势
需要可解释性局部特征注意力可视化
大规模训练✅ 优势

未来趋势

  1. 统一架构:NLP和CV的Transformer统一
  2. 高效变体:越来越多高效的ViT设计
  3. 混合架构:CNN和ViT的深度融合
  4. 自适应计算:根据输入动态选择计算路径

参考