跳到主要内容

图像分类

问题

CNN 和 ViT 分别如何做图像分类?经典架构是怎样演进的?

答案

一、架构演进

二、关键架构

模型核心创新深度
AlexNetGPU 训练、ReLU、Dropout8 层
VGG小卷积核(3×3)堆叠16/19 层
ResNet残差连接(跳跃连接)50/101/152 层
ViTTransformer 用于视觉12/24 层

ResNet 残差连接

x → [Conv → BN → ReLU → Conv → BN] → + → ReLU → 输出
└──────────────跳跃连接──────────────┘

解决了深层网络的梯度消失问题,使训练 100+ 层网络成为可能。

ViT(Vision Transformer)

三、CNN vs ViT

对比维度CNNViT
感受野局部(逐层扩大)全局(自注意力)
归纳偏置平移不变性、局部性几乎没有
数据需求中等大量数据
小数据集更好更差(需预训练)
大数据集瓶颈更好

常见面试问题

Q1: ResNet 残差连接为什么有效?

答案

  • 残差连接让梯度可以直接跳过多层传播,缓解梯度消失
  • 学习残差 F(x)=H(x)xF(x) = H(x) - x 比直接学习 H(x)H(x) 更容易
  • 最差情况下 F(x)=0F(x) = 0,网络退化为恒等映射,不会变差

Q2: ViT 为什么需要大量数据?

答案

  • CNN 有归纳偏置(局部性、平移不变性),即使小数据也能学到有效特征
  • ViT 没有这些先验假设,需要从数据中自行学习空间关系
  • 因此 ViT 通常需要在大规模数据集(如 ImageNet-21K)上预训练,再迁移到下游任务

相关链接