第十四章 CLIP
Contrastive Language-Image Pre-training。一边用 ViT 看图,一边用 Transformer 读字,把配对的图文拉近,把不配对的推远。学成之后,可以用一句话当分类器,也可以用一句话去搜图。
- 一两个编码器,一个嵌入空间。
- 二一批里 N 张图 × N 句,对角是正例。
- 三温度系数控制 softmax 的尖锐程度。
- 四零样本:类别写成句子,图找最像的那句。
书 §14 · 图 14.1、14.4 · p.233–250
14.2 图像编码器和文本编码器
图像侧就是上一章的 ViT。文本侧是 Transformer 编码器 + 分词。两边输出都投影到同一维度 D,得到 Ie、Te,形状 [B, D]。代码里还有一个可学习温度,初始化成 log(1/0.07)。p.241。
文本侧会用到因果或填充掩码(图 14.2、14.5、14.6),那是工程细节。直觉:图一句一对,进同一把尺子。
书 §14.2–14.3 · p.234–241
接下节。尺子就是余弦相似度。对角亮,非对角暗。
14.3 对比学习的矩阵
是什么。图 14.1、图 14.4:一批里第 i 张图应该和第 i 句像,和其他句不像。相似度矩阵的对角线是正例。损失是对称的交叉熵:图对字、字对图各算一遍。
书 §14.3 · 图 14.1、14.4 · p.233、p.242
3×3 图文矩阵
点一格。对角是配对,应当最亮。
真实训练里对角不是人工涂绿,是靠梯度把配对的余弦相似度抬上去。
接下节。训练完,类别名字写成句子,就可以不看任何该类训练图去做分类。
14.3.6 零样本分类
把「一只猫」「一只狗」「一辆车」送进文本编码器,得到三句嵌入。图片走图像编码器,和三句比余弦,最大的那个当标签。没有为「猫」单独训一个分类头。
文搜图同理:文本嵌入去向量库里找近邻。第二十章会再写一遍落地步骤。
书 §14.3.6 · p.248
点一张「图」,看三句谁更像
分数是教学用的假余弦。真正 CLIP 用归一化向量点积再除以温度。
下一章。CLIP 的图像向量能不能当成 GPT 的「前几个字」,让模型看图说话?ClipCap。
合上这一章
- 双塔。ViT + 文本 Transformer,同一空间。
- 对角正例。对比学习。
- 零样本。类别写成句子。
章末自测
讲完了。下面几题核对本讲刚说过的概念。点选立刻看对错;做错也不会锁下一章。