1. 核心思想与研究动机

传统的计算机视觉模型(如基于 ImageNet 预训练的模型)依赖于预先定义好的固定类别(Closed-set)和密集的人工标注。一旦遇到训练集以外的类别,模型便无法识别。 CLIP 的核心贡献在于打破了固定标签的限制,通过引入自然语言作为监督信号,在海量(4亿)的“图像-文本对”上进行跨模态对比学习(Contrastive Learning)。这使得 CLIP 将图像和文本映射到了同一个共享的特征空间中,从而具备了极其强大的 Zero-Shot(零样本) 泛化能力。

2. 模型架构设计

CLIP 的结构非常简洁对称,由双流(Two-Stream)编码器组成:

  • Image Encoder (图像编码器): 负责提取图像的全局特征表示。CLIP 论文中探索了两种架构:

    • 修改版的 ResNet(如 ResNet-50, ResNet-101 以及引入 Attention Pooling 的 ResNet-50x4 等)。

    • Vision Transformer (ViT),将图像切分为 Patch 序列进行处理。

  • Text Encoder (文本编码器): 负责提取文本的特征表示。

    • 采用基于 Transformer 的架构(类似于 GPT-2),使用 Byte Pair Encoding (BPE) 对文本进行 Tokenize。

    • 文本序列的最大长度限制为 76,序列末尾 [EOS] Token 对应的特征向量被用来表示整个句子的全局特征。

(注:两个编码器输出的特征会通过一个线性投影层 Projector 映射到相同的维度,并进行 L2 归一化。)

3. 核心机制:对比学习与损失函数

CLIP 不使用传统的交叉熵分类损失(即不预测具体是哪个词),而是预测图像和文本是否配对

在训练阶段,给定一个大小为 N的 Batch,包含 N 对图文数据。模型通过以下步骤计算损失:

  1. 特征提取: 分别得到 N 个图像特征向量和 N 个文本特征向量。

  2. 相似度矩阵: 计算这 N个图像特征和 N 个文本特征两两之间的余弦相似度(Cosine Similarity),构成一个N \times N的矩阵。

  3. 正负样本定义: 矩阵对角线上的 N个元素是匹配的图文对(正样本),需要最大化其相似度;其余N^2 - N个元素是不匹配的(负样本),需要最小化其相似度。

  4. 损失函数计算: 使用带有温度参数的对称交叉熵损失(Symmetric Cross-Entropy Loss)。设 I_i为第i个图像的归一化特征,T_j为第 j个文本的归一化特征:

    图像到文本 (Image-to-Text) 的对比损失:

    \mathcal{L}_{I \rightarrow T} = -\frac{1}{N} \sum_{i=1}^{N} \log \frac{\exp(I_i \cdot T_i / \tau)}{\sum_{j=1}^{N} \exp(I_i \cdot T_j / \tau)}

    文本到图像 (Text-to-Image) 的对比损失:

    \mathcal{L}_{T \rightarrow I} = -\frac{1}{N} \sum_{i=1}^{N} \log \frac{\exp(T_i \cdot I_i / \tau)}{\sum_{j=1}^{N} \exp(T_j \cdot I_i / \tau)}

    总损失为两个方向损失的平均值:

    \mathcal{L}_{\text{total}} = \frac{\mathcal{L}_{I \rightarrow T} + \mathcal{L}_{T \rightarrow I}}{2}

    (其中 \tau为可学习的温度参数 Temperature,用于缩放 logits,避免模型在训练初期过于自信)

4. Zero-Shot 推理范式

在预训练完成后,CLIP 可以直接用于任意图像的分类,而无需微调(Fine-tuning)。

  • Prompt Engineering (提示工程): 将需要分类的类别名称(如 "dog", "cat", "car")填入一个预设的文本模板中,例如 "A photo of a {label}."。这样可以弥合预训练数据(多为完整的句子描述)和推理数据(单个单词)之间的分布差异。

  • 特征匹配: 1. 使用 Text Encoder 计算所有模板句子的文本特征。

    2. 使用 Image Encoder 计算待测图像的图像特征。

    3. 计算该图像特征与所有文本特征的余弦相似度,并经过 Softmax 转化为概率分布。

    4. 相似度得分最高对应的 Label 即为分类结果。

5. 对下游任务的启发(以目标检测为例)

CLIP 的出现催生了 Open-Vocabulary Object Detection (OVD,开放词汇目标检测) 领域的爆发。

  • 传统检测器(如 DETR 系列)受限于固定类别的 Bounding Box 标注。

  • 利用 CLIP 的多模态对齐能力,研究者现在通过特征蒸馏(Feature Distillation)区域-文本对齐(Region-Text Alignment),将 CLIP 强大的全局语义知识转移到检测器的局部区域特征(Region Proposals/Queries)上。这使得检测器能够识别并定位出在训练集中从未见过的新类别。

6. 局限性与改进空间
  • 细粒度理解不足: 虽然全局语义匹配强大,但在涉及复杂的关系理解、计数问题(如“有几只鸟”)、绝对距离评估以及极小目标的细微差别区分上,表现仍然较弱。

  • 数据效率: CLIP 属于数据驱动的暴力美学,极度依赖海量的数据规模(400M 对)和超大的 Batch Size(32768),训练成本极其昂贵。

  • 领域泛化: 对于一些完全脱离自然图像分布的抽象任务(如专业的医疗影像、特定光谱的遥感图像),如果预训练集中未曾覆盖,Zero-Shot 性能会大幅衰减。

Logo

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

更多推荐