一、为什么图像领域需要预训练?

1.1 数据困境:标注成本高昂

  • 一张高清图像的像素数通常为 10610^6106 级别(如 224×224×3=150,528224 \times 224 \times 3 = 150,528224×224×3=150,528 像素)
  • 高质量标注需要专业领域知识:
    • 医学影像:需执业医师标注病灶区域
    • 遥感图像:需地理信息专家识别地物类型
    • 工业检测:需工程师定义缺陷标准
  • 预训练的核心思想:先在大规模无标注/弱标注数据上学习通用视觉表征,再迁移到下游任务

1.2 预训练的价值对比

维度 从头训练 预训练+微调
数据需求 百万级标注样本 千级标注即可
训练时间 数周(多GPU) 数小时(单卡)
收敛稳定性 高度依赖初始化 更稳健,易收敛
泛化性能 易过拟合,域迁移差 显著提升,跨域鲁棒
计算成本 高(重复造轮子) 低(一次预训练,多次复用)

1.3 预训练的生物学启发

人类视觉系统的发育过程:

  • 婴儿期:大量观察环境,学习边缘、颜色、纹理等低级特征
  • 成长期:通过少量指导,快速识别物体类别和关系
  • 专家期:特定领域深度优化

预训练模拟了这一过程:无监督/弱监督阶段对应婴儿期观察,微调阶段对应成长期指导


二、预训练的技术演进路线

2.1 第一代:监督预训练(2012-2018)

ImageNet 的诞生与影响

  • 2009年,李飞飞团队发布 ImageNet,包含 1280 万张图像,2.2 万个类别
  • 2012年,AlexNet 在 ImageNet 竞赛中以显著优势夺冠,开启深度学习革命

代表性网络架构演进

AlexNet (2012) → VGGNet (2014) → ResNet (2015) → DenseNet (2017) → EfficientNet (2019)
     ↑              ↑                ↑                ↑                  ↑
   8层           16-19层          152+层           特征复用            复合缩放

核心范式——监督分类
LCE=−∑i=1N∑c=1Cyi,clog⁡(y^i,c) \mathcal{L}_{\text{CE}} = -\sum_{i=1}^{N} \sum_{c=1}^{C} y_{i,c} \log(\hat{y}_{i,c}) LCE=i=1Nc=1Cyi,clog(y^i,c)

迁移学习的发现

  • 浅层卷积(第1-3层):学习边缘、颜色、纹理等通用低级特征
  • 中层卷积(第4-5层):学习部件、轮廓、纹理组合等中级特征
  • 深层卷积(第6层+):学习物体部件、类别特征等高级语义特征

2.2 第二代:自监督预训练(2019-2022)

动机与背景

  • ImageNet 标注成本:每张图像约 $0.5-2 美元,总成本超 2500 万美元
  • 互联网图像:数十亿张无标注图像等待利用
  • 核心问题:如何设计代理任务,让模型从图像自身结构中学习?
2.2.1 对比学习家族
方法 核心创新 技术细节 性能
SimCLR (2020) 简单对比学习 同图像的不同增强视图为正样本,其他为负样本;大batch(4096)+ 温度系数 ResNet-50 达到 76.5% Top-1
MoCo v1/v2/v3 (2019-2021) 动量编码器 维护动态字典,动量更新编码器,无需大batch 小batch也能工作,更实用
SwAV (2020) 聚类对比 在线聚类分配伪标签,避免显式负样本 更稳定的训练
BYOL/SimSiam (2020-2021) 无负样本 在线网络+动量网络/孪生网络,停止梯度传播 揭示对比学习不一定需要负样本

SimCLR 的损失函数(InfoNCE)
LSimCLR=−log⁡exp⁡(sim(zi,zj)/τ)∑kexp⁡(sim(zi,zk)/τ) \mathcal{L}_{\text{SimCLR}} = -\log \frac{\exp(\text{sim}(z_i, z_j)/\tau)}{\sum_{k} \exp(\text{sim}(z_i, z_k)/\tau)} LSimCLR=logkexp(sim(zi,zk)/τ)exp(sim(zi,zj)/τ)
其中 sim(u,v)=u⊤v∥u∥∥v∥\text{sim}(u, v) = \frac{u^\top v}{\|u\| \|v\|}sim(u,v)=u∥∥vuv 为余弦相似度,τ\tauτ 为温度系数。

2.2.2 掩码图像建模(MIM)

MAE(Masked Autoencoder,2021)

  • 随机掩码 75% 的图像块(patches)
  • 用非对称的编码器-解码器架构重建原图
  • 编码器仅处理可见 patches,计算高效

MAE 的数学形式
LMAE=1∣M∣∑i∈M∥xi−x^i∥2 \mathcal{L}_{\text{MAE}} = \frac{1}{|\mathcal{M}|} \sum_{i \in \mathcal{M}} \|x_i - \hat{x}_i\|^2 LMAE=M1iMxix^i2
其中 M\mathcal{M}M 为掩码位置集合,x^i=D(E(xvisible)+mask tokens)\hat{x}_i = D(E(x_{\text{visible}}) + \text{mask tokens})x^i=D(E(xvisible)+mask tokens)

MAE 的优势

  • 掩码比例高达 75% 仍能重建,说明模型学到了强语义表征
  • 下游微调时,仅用 1% 的 ImageNet 标签即可达到 80%+ 准确率

BEiT(2021)与后续改进

  • 使用离散 VAE 将图像 token 化,预测离散视觉 token
  • 结合 NLP 的 BERT 思想到视觉领域

2.3 第三代:多模态预训练(2021-至今)

CLIP:连接视觉与语言的桥梁(2021)

核心创新

  • 4亿互联网图文对(WebImageText)进行对比学习
  • 双塔架构:图像编码器 + 文本编码器
  • 对比损失对齐视觉-语义空间

CLIP 的对比损失
LCLIP=12[∑i−log⁡exp⁡(sim(Ii,Ti)/τ)∑jexp⁡(sim(Ii,Tj)/τ)+∑j−log⁡exp⁡(sim(Ij,Tj)/τ)∑iexp⁡(sim(Ii,Tj)/τ)] \mathcal{L}_{\text{CLIP}} = \frac{1}{2} \left[ \sum_{i} -\log \frac{\exp(\text{sim}(I_i, T_i)/\tau)}{\sum_{j} \exp(\text{sim}(I_i, T_j)/\tau)} + \sum_{j} -\log \frac{\exp(\text{sim}(I_j, T_j)/\tau)}{\sum_{i} \exp(\text{sim}(I_i, T_j)/\tau)} \right] LCLIP=21[ilogjexp(sim(Ii,Tj)/τ)exp(sim(Ii,Ti)/τ)+jlogiexp(sim(Ii,Tj)/τ)exp(sim(Ij,Tj)/τ)]

CLIP 的零样本能力

  • 给定类别描述(如 “a photo of a dog”),计算图像与描述的相似度
  • 在 ImageNet 上零样本达到 76.2% Top-1,媲美监督 ResNet-50

后续多模态工作

模型 年份 规模 特点
ALIGN 2021 18亿图文对 噪声鲁棒的对比学习
Florence 2021 9亿图文对 统一视觉-语言-任务
BLIP/BLIP-2 2022-2023 14亿图文对 引导式过滤 + Q-Former
LLaVA 2023 视觉指令微调 连接 CLIP 与 LLM
GPT-4V 2023 未公开 端到端多模态大模型

三、预训练模型的架构演进

3.1 从 CNN 到 Transformer 的范式转移

卷积神经网络(CNN)的局限

  • 局部感受野,难以建模长距离依赖
  • 平移等变性是优势,但对旋转、尺度变化需额外设计
  • 深层网络优化困难(梯度消失/爆炸)

Vision Transformer(ViT,2020)的突破

  • 将图像切分为 16×1616 \times 1616×16 的 patches,视为 “视觉 token”
  • 标准 Transformer 编码器处理全局关系
  • 在大规模数据(JFT-300M)上超越 ResNet

ViT 的架构公式
Patch Embedding:z0=[xclass;xp1E;xp2E;⋯ ;xpNE]+EposTransformer Block:zl′=MSA(LN(zl−1))+zl−1zl=MLP(LN(zl′))+zl′Classification:y=Head(LN(zL0)) \begin{aligned} &\text{Patch Embedding:} && z_0 = [x_{\text{class}}; x_p^1 E; x_p^2 E; \cdots; x_p^N E] + E_{\text{pos}} \\ &\text{Transformer Block:} && z_l' = \text{MSA}(\text{LN}(z_{l-1})) + z_{l-1} \\ & && z_l = \text{MLP}(\text{LN}(z_l')) + z_l' \\ &\text{Classification:} && y = \text{Head}(\text{LN}(z_L^0)) \end{aligned} Patch Embedding:Transformer Block:Classification:z0=[xclass;xp1E;xp2E;;xpNE]+Eposzl=MSA(LN(zl1))+zl1zl=MLP(LN(zl))+zly=Head(LN(zL0))

3.2 层次化设计:融合 CNN 与 Transformer 优势

模型 核心设计 优势 典型应用
Swin Transformer (2021) 移位窗口 + 层次化特征金字塔 线性复杂度,多尺度特征 检测、分割
PVT (2021) 金字塔结构 + 空间缩减注意力 渐进式下采样 密集预测
Twins-SVT (2021) 空间可分离注意力 全局-局部信息交互 分类、检测
ConvNeXt (2022) 现代化纯 CNN 设计 挑战 Transformer 性能 各类视觉任务

Swin Transformer 的关键创新

  • 窗口自注意力:在 M×MM \times MM×M 局部窗口内计算,复杂度从 O(N2)O(N^2)O(N2) 降至 O(N)O(N)O(N)
  • 移位窗口(Shifted Window):窗口划分偏移 M/2M/2M/2,实现跨窗口连接
  • 层次化特征:每阶段 patches 合并,生成多尺度特征金字塔

四、下游任务的迁移策略

4.1 图像分类

策略一:线性探测(Linear Probing)

  • 冻结预训练骨干,仅训练分类头
  • 测试预训练特征的判别性

策略二:部分微调(Partial Fine-tuning)

  • 微调最后几层,冻结浅层
  • 平衡效率与性能

策略三:全量微调(Full Fine-tuning)

  • 以较小学习率(如 10−510^{-5}105)更新全部参数
  • 数据充足时的最佳选择
# PyTorch 伪代码:分层学习率微调
model = torchvision.models.resnet50(pretrained=True)

# 分层设置优化器参数
param_groups = [
    {'params': model.layer1.parameters(), 'lr': 1e-5},
    {'params': model.layer2.parameters(), 'lr': 1e-4},
    {'params': model.layer3.parameters(), 'lr': 1e-4},
    {'params': model.layer4.parameters(), 'lr': 1e-3},
    {'params': model.fc.parameters(), 'lr': 1e-2},  # 新头,较大学习率
]

optimizer = torch.optim.Adam(param_groups)

4.2 目标检测与实例分割

两阶段方法(Faster R-CNN 系列)

  • 预训练骨干 → RPN 提取候选框 → RoI 分类与回归
  • 常用预训练:ImageNet 监督、MoCo、Detectron2 提供的 COCO 预训练

单阶段方法(YOLO、RetinaNet)

  • 端到端训练,预训练加速收敛
  • YOLOv8 支持多种预训练权重切换

Transformer-based(DETR、Deformable DETR)

  • 编码器用预训练 ViT/Swin 初始化
  • 解码器随机初始化,端到端训练

4.3 语义分割与全景分割

方法 预训练策略 代表模型
FCN/DeepLab ImageNet 骨干 + ASPP DeepLabV3+
U-Net 系列 医学领域特定预训练 nnU-Net
Mask2Former 预训练 Transformer 骨干 Swin + Mask2Former
SAM 1100万图像 + 10亿掩码 提示分割基础模型

4.4 特殊领域适配

医学影像

  • 挑战:数据隐私、标注稀缺、域差异大
  • 策略:ImageNet 预训练 → 领域自监督预训练(SimCLR、MAE)→ 任务微调
  • 代表:TransUNet、Swin-UNETR、MedSAM

遥感图像

  • 挑战:多尺度、多光谱、大场景
  • 策略:地理空间预训练(RingMo、SkySense)、时序建模
  • 应用:土地利用分类、变化检测、目标检测

工业检测

  • 挑战:缺陷样本极少、正常样本海量
  • 策略:自监督预训练正常样本 + 异常检测/少样本学习
  • 代表:PatchCore、CutPaste、SimpleNet

五、最新趋势:基础模型与生成式预训练

5.1 视觉基础模型(Visual Foundation Models)

SAM(Segment Anything Model,2023)

  • 数据规模:1100万图像,10亿高质量掩码
  • 架构:ViT 图像编码器 + 提示编码器 + 轻量掩码解码器
  • 能力:零样本分割、交互式提示(点、框、文本、掩码)

DINOv2(2023)

  • 自监督预训练强视觉特征
  • 无需微调即可在分类、分割、深度估计等任务上表现优异
  • 支持多种尺寸(ViT-S/B/L/g),开源可商用

EVA/EVA-02(2022-2023)

  • 以 CLIP 视觉特征为重建目标,统一表示学习
  • 在多个基准上刷新记录

5.2 生成式预训练

潜在扩散模型(Latent Diffusion Models)

模型 能力 应用场景
Stable Diffusion 文本到图像生成 艺术创作、设计辅助
ControlNet 条件控制生成 姿态、边缘、深度引导
InstructPix2Pix 指令式图像编辑 自然语言修图
SDXL/Turbo 高分辨率、实时生成 生产环境部署

多模态大模型

  • GPT-4V/GPT-4o:端到端视觉-语言理解与生成功能
  • Gemini:原生多模态架构,跨模态推理
  • Qwen-VL/LLaVA:开源视觉指令微调模型

5.3 高效微调技术(Parameter-Efficient Fine-Tuning)

技术 核心思想 可训练参数量 适用场景
LoRA (2021) 低秩适配:W=W0+BAW = W_0 + BAW=W0+BA <1% 大模型快速适配
Adapter (2019) 插入小型瓶颈网络 ~5% 多任务持续学习
Prompt Tuning (2021) 学习软提示嵌入 ~0.1% 大语言模型
VPT (2022) 视觉提示微调 ~0.1% ViT 迁移学习
SSF (2022) 缩放与移位因子 ~0.3% 统一高效微调

LoRA 的数学形式
h=W0x+ΔWx=W0x+BAx h = W_0 x + \Delta W x = W_0 x + BAx h=W0x+ΔWx=W0x+BAx
其中 B∈Rd×rB \in \mathbb{R}^{d \times r}BRd×rA∈Rr×kA \in \mathbb{R}^{r \times k}ARr×k,秩 r≪min⁡(d,k)r \ll \min(d, k)rmin(d,k),可训练参数量大幅减少。


六、实践建议:如何选择预训练模型?

6.1 决策流程图

开始
  │
  ├── 数据规模 < 1K?
  │     └── 是 → 选择大模型 + 高效微调(LoRA/Adapter)
  │     └── 否 → 继续
  │
  ├── 数据规模 1K-10K?
  │     └── 是 → 中等模型 + 部分微调(最后几层)
  │     └── 否 → 继续
  │
  ├── 数据规模 > 10K?
  │     └── 是 → 大模型全量微调或从头训练
  │
  ├── 任务类型?
  │     ├── 分类 → ImageNet 预训练权重
  │     ├── 检测/分割 → COCO 预训练或检测专用预训练
  │     ├── 生成 → Stable Diffusion 或自研扩散模型
  │     └── 多模态 → CLIP/BLIP/GPT-4V API
  │
  └── 领域差异?
        ├── 通用视觉 → 标准 ImageNet/CLIP 预训练
        ├── 医学 → Medical MAE/SAM/MedSAM
        ├── 遥感 → RingMo/SkySense/领域 MAE
        └── 工业 → 自监督预训练 + 异常检测

6.2 推荐资源与工具

模型库与框架

  • timm (PyTorch Image Models):600+ 预训练模型,统一接口
  • Hugging Face Transformers:多模态模型中心
  • OpenMMLab (MMPreTrain, MMDetection, MMSegmentation):完整视觉工具链
  • Detectron2:Facebook 检测/分割研究平台

数据集资源

  • ImageNet-1K/21K:经典分类基准
  • LAION-5B/400M:大规模图文对,CLIP 训练数据
  • SA-1B:SAM 的 10 亿掩码数据集
  • 领域数据集:CheXpert(医学)、DOTA(遥感)、MVTec AD(工业)

开发工具

  • PyTorch Lightning:简化训练流程
  • Weights & Biases:实验追踪与可视化
  • Hugging Face Accelerate:分布式训练简化

6.3 性能对比参考

预训练方法 ImageNet-1K 微调 COCO 检测 AP 下游样本效率
随机初始化 1.0× 基线 基线 100% 数据
ImageNet 监督 1.5-2.0× +10-15 AP 50% 数据
SimCLR/MoCo 1.8-2.2× +12-18 AP 30% 数据
MAE/BEiT 2.0-2.5× +15-20 AP 10% 数据
CLIP 零样本 0.8-1.2× - 0% 数据(零样本)

七、未来展望

7.1 技术趋势

  1. 统一架构:视觉-语言-动作多模态统一建模(如 GPT-4o、Gemini)
  2. 世界模型:从预测下一个 token 到预测下一帧视频
  3. 神经渲染:3D 场景理解与生成(NeRF、Gaussian Splatting)
  4. 持续学习:预训练模型的终身学习与知识更新

7.2 开放问题

  • 如何评估预训练模型的通用视觉能力
  • 如何实现真正的小样本学习(1-shot 甚至 0-shot)?
  • 如何平衡模型规模推理效率
  • 如何建立可信的、可解释的视觉预训练模型?

一句话总结

图像预训练经历了 “监督学习(ImageNet 时代)→ 自监督学习(对比学习与掩码建模时代)→ 多模态统一(CLIP 与大模型时代)” 的三代演进,核心目标始终是:用更少标注、更低成本,获得更强的视觉理解、泛化与生成能力。未来,视觉预训练将与语言、音频、动作等多模态深度融合,迈向真正的通用人工智能。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐