CLIP论文阅读笔记

论文标题:Learning Transferable Visual Models From Natural Language Supervision 作者单位:OpenAI 会议:ICML 2021


一、研究动机

传统计算机视觉系统需要大量人工标注的图像-标签对,导致:

  • 拓展性差:新增任务需要重新标注训练数据;
  • 泛化能力有限:模型对未知类别或任务的零样本迁移能力差。

自然语言包含丰富的监督信息,能否像 NLP 一样使用“文本-图像对”进行大规模预训练,从而学习到通用视觉模型?

CLIP 的目标就是从自然语言监督中学习通用的视觉模型,并通过对比学习(contrastive learning)+ 多模态训练实现图像和文本之间的联合表示空间。


二、核心方法

1. 数据构建:WIT 数据集

  • 名称:WebImageText (WIT)
  • 数据规模:4 亿对图像-文本对
  • 构建方法:
    • 从网络中抓取数据,确保文本为自然语言;
    • 使用 50 万个英文查询词(来自 Wikipedia、WordNet 等)进行图像检索;
    • 每个查询最多保留 2 万条 (image, text) 对,覆盖尽可能多的视觉概念;
    • 数据规模接近 WebText(用于 GPT-2 的文本语料)。

2. 模型架构:双塔结构

CLIP 采用两个独立编码器:

  • 图像编码器(ResNet / ViT)
  • 文本编码器(Transformer)

将图像和文本分别编码为向量后,通过余弦相似度进行匹配:

1
logits = cosine_similarity(image_embed, text_embed) * exp(t)
  • t 是可学习的温度参数(log scale),控制 softmax 分布的平滑性。
  • 最后通过对比损失训练模型:
1
2
loss_i2t = CrossEntropy(sim(I, T), labels)  # 图像→文本
loss_t2i = CrossEntropy(sim(T, I), labels) # 文本→图像

每一批次训练样本都构成 N x N 的对比匹配任务,其中只有 N 个是真实配对,其余 N^2 - N 是负样本。


3. 模型选择与扩展

图像编码器:

  • 使用改进版 ResNet(ResNetD + anti-aliasing + attention pooling);
  • 使用 ViT(Vision Transformer)架构。

文本编码器:

  • Transformer(12 层,512 宽度,8 个头);
  • 输入是 BPE 编码,使用 [EOS] token 表征整个句子的 embedding。

训练策略:

  • 从头训练(不使用预训练权重);
  • 去除 projection head,仅使用线性映射;
  • 简化数据增强:仅使用 random resized crop;
  • 可学习的温度 t,避免手动调参。

三、实验与评估

1. 零样本(Zero-shot)迁移性能

CLIP 训练完成后无需再训练即可用于图像分类任务

  • 将类名转成 prompt,例如:"a photo of a {label}"
  • 文本编码器得到每个类别的向量;
  • 对于一张测试图像,比较其向量与所有文本向量的余弦相似度,选相似度最大者为预测类别。

CLIP 在 30+ 个数据集上进行零样本评估,涵盖任务包括:

  • 图像分类(ImageNet, CIFAR, Flowers, etc.)
  • 动作识别(UCF101, Kinetics700)
  • OCR、地理定位、医学图像、卫星图像等

在 ImageNet 上,CLIP 零样本准确率为 76.2%,与 ResNet50 的监督训练结果相当!


2. 对比Linear Probe

  • 在Linear Probe评估中,CLIP 的视觉特征可以训练一个简单线性分类器,获得高于 ResNet50 的表现;
  • CLIP-ViT 模型在 计算效率上比 ResNet 版本高 3 倍
  • 在 Kornblith 提出的 12 个数据集平均得分中,CLIP-ViT 优于所有已有模型,包括 NoisyStudent EfficientNet-L2。

3. 强鲁棒性(Robustness to Distribution Shift)

在 ImageNet 的 7 个自然分布偏移版本上(如 ImageNet-A、ImageNet-R),CLIP 显著缩小了分布偏移造成的性能下降:

  • 相比传统模型,CLIP 在多个数据集上的鲁棒性提高达 75%
  • 原因:CLIP 并没有使用 ImageNet 进行监督训练,不依赖其分布偏见。

四、分析与反思

优势:

  • ✅ 极强的零样本迁移能力;
  • ✅ 统一视觉与语言的嵌入空间;
  • ✅ 高计算效率(特别是 ViT);
  • ✅ 更强的鲁棒性,对分布偏移更稳健;
  • ✅ 解锁长尾/小众任务,无需标注数据即可测试。

局限性:

  • ⚠️ 在一些复杂或抽象任务上性能仍差(如 CLEVR、GTSRB);
  • ⚠️ 零样本 ≠ 最佳性能,仍不如 SOTA 有监督方法;
  • ⚠️ 对 Prompt 设计依赖较大;
  • ⚠️ 训练资源消耗巨大(上百 GPU 训练十几天);
  • ⚠️ 有一定的训练数据与评估数据重合风险。

五、启发与应用

  • CLIP 提供了一种构建通用视觉模型的新范式;
  • 适合作为基础模型用于下游任务的迁移学习;
  • Prompt 设计可以作为控制“任务类型”的一种手段;
  • 实践中 CLIP 可用于:图文检索、图像生成、跨模态检索、VQA 预训练等。

六、结语

CLIP 是第一个大规模探索自然语言监督学习视觉模型的工作,继承了 GPT 系列在 NLP 中的成功路径。虽然其在部分任务中仍存在限制,但其“图文对比训练 + 零样本泛化”的理念已经在多模态学习领域带来了深远影响。