CLIP 视觉-语言基础模型

CLIP(Contrastive Language-Image Pre-training)是 OpenAI 提出的视觉-语言基础模型,核心目标是在共享的嵌入空间中学习图像与文本的语义关联,从而实现强大的零样本(zero-shot)迁移能力。

以下从原理、训练、推理三个维度详解:


一、核心架构与任务

CLIP 本质是双塔对比学习模型,包含两个独立编码器:

组件 结构 作用
图像编码器 ViT(Vision Transformer)或 ResNet 将图像 $x$ 映射为视觉特征向量 $I(x) \in \mathbb{R}^d$
文本编码器 Transformer(GPT-2 风格) 将文本 $y$ 映射为文本特征向量 $T(y) \in \mathbb{R}^d$

完成任务:通过对比学习,让匹配的图文对在向量空间中距离尽可能近,不匹配的距离尽可能远。这使得模型学会跨模态语义对齐——例如将”一只柯基犬”的文本描述与柯基犬的图片映射到邻近的向量区域。


二、训练过程(对比学习)

1. 数据构建

从互联网爬取4亿对 (图像, 文本) 的弱监督数据(如网页中的图片及其 alt 文本)。无需人工标注类别,文本描述天然带有丰富的语义信息。

2. 对比学习机制

对于批次中的 $N$ 对图文数据:

  • 图像编码器生成批次视觉特征:$\{I_1, I_2, …, I_N\}$
  • 文本编码器生成批次文本特征:$\{T_1, T_2, …, T_N\}$

计算余弦相似度矩阵 $S \in \mathbb{R}^{N \times N}$,其中 $S_{ij} = \frac{I_i \cdot T_j}{\|I_i\| \|T_j\|}$。

对称交叉熵损失(Symmetric Cross-Entropy):

  • 图像→文本:将每行视为概率分布,对角线为正样本$$
    \mathcal{L}_{I \to T} = -\frac{1}{N}\sum_{i=1}^N \log \frac{\exp(S_{ii}/\tau)}{\sum_{j=1}^N \exp(S_{ij}/\tau)}
    $$
  • 文本→图像:将每列视为概率分布$$
    \mathcal{L}_{T \to I} = -\frac{1}{N}\sum_{i=1}^N \log \frac{\exp(S_{ii}/\tau)}{\sum_{j=1}^N \exp(S_{ji}/\tau)}
    $$

总损失 $\mathcal{L} = \frac{1}{2}(\mathcal{L}_{I \to T} + \mathcal{L}_{T \to I})$,其中 $\tau$ 为可学习的温度系数。

关键洞察:这种设计使得 $N$ 对数据能生成 $N^2$ 个对比样本,训练效率极高。


三、推理过程(零样本迁移)

训练完成后,CLIP 无需微调即可执行多种下游任务:

1. 零样本图像分类(Zero-Shot Classification)

传统分类需针对固定类别训练,而 CLIP 可动态适应任意类别:

  1. Prompt Engineering:将类别标签扩展为描述性句子。例如类别”cat”转换为 “a photo of a cat”“a photo of a cat, a type of pet”(使用模板库如 80 个 handcrafted prompts)。
  2. 编码计算
    • 输入图像 $x$ 通过图像编码器得到 $I(x)$
    • 所有类别描述通过文本编码器得到 $\{T_1, …, T_K\}$
  3. 相似度预测:计算$$
    P(y_k|x) = \frac{\exp(I(x) \cdot T_k / \tau)}{\sum_{j=1}^K \exp(I(x) \cdot T_j / \tau)}
    $$
  4. 输出:选择概率最高的类别

2. 图像-文本检索(Image-Text Retrieval)

  • 文本检索图像:给定查询文本,计算与候选图像集的相似度,返回 Top-K 最相关图像
  • 图像检索文本:反之亦然

3. 作为特征提取器

冻结 CLIP 编码器,提取 $I(x)$ 或 $T(y)$ 作为下游任务(检测、分割、生成)的特征输入。


四、能力边界与特性

优势 局限
强大的零样本泛化:在 ImageNet 上零样本准确率可达 76.2%(ResNet-50 监督学习为 76.1%) 细粒度识别弱:难以区分具体型号(如不同品种的狗)或抽象概念
开放词汇:支持训练时未见过的类别 组合推理弱:对”红色的杯子在蓝色的桌子上”这类空间组合关系理解有限
多模态理解:具备初步的图文匹配常识 对分布偏移敏感:如艺术风格、对抗样本

五、演进与影响

CLIP 开创了视觉语言基础模型的先河,催生了后续众多变体:

  • FLIP:快速训练版本(使用随机 Masking)
  • OpenCLIP:开源复现版本
  • SAM/LLaVA:CLIP 视觉编码器被广泛用于分割和多模态大模型视觉端

其训练范式(大数据+对比学习+双塔架构)已成为多模态领域的标准基线。

感谢你的阅读


欢迎评论交流


忽如一夜春风来,千树万树梨花开。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇