## 每一行选文字,每一列选图像 ## 解释、算例与证据 ### 三对图文的双向损失:从单位向量到 0.09567 # P57 · 一张相似度矩阵,连接训练和使用 这页的数字能从单位向量完全复算:矩阵不是模型实测成绩。先看一行的三个竞争候选,再看一列,最后对两种方向取平均。温度改变 logits 和概率,不改变原始余弦本身。真实 CLIP 的结果需读取相应模型输出,不能沿用这里的教学数值。 图内标签与数值:单位向量点积 Sᵢⱼ;教学构造;I1;T1;红杯;I2;T2;蓝杯;I3;T3;人物;0.8;0.3;0.0;0.0;0.8;0.3;0.3;0.0;0.8;文字找图像 ↓;τ = 0.2;第一列 logits:4, 0, 1.5;p(正确配对) ≈ 0.909;−log p ≈ 0.0957;行目标 + 列目标;在批次中辨认配对;对角线来自配对顺序;数值是由明确单位向量构造的教学矩阵,不是 CLIP 实测分数。 ![I₁ 红杯](/assets/display/9a66faeae8dd2c354bc56482.webp)I₁ · 红杯 / T₁ ![I₂ 蓝杯](/assets/display/6b88c20342b6fc400ef87d57.webp)I₂ · 蓝杯 / T₂ ![I₃ 人物](/assets/display/512610a019c560ff0384e86a.webp)I₃ · 人物 / T₃ 图像 I₁、I₂、I₃ 为红杯、蓝杯、人物;文字 T₁、T₂、T₃ 按相同配对顺序排列。 单位向量点积 Sᵢⱼ(教学构造) | 图像/文字 | T₁ | T₂ | T₃ | | --- | --- | --- | --- | | I₁ | .8 | .3 | 0 | | I₂ | 0 | .8 | .3 | | I₃ | .3 | 0 | .8 | 逐行比较文字候选,逐列比较图像候选;对角线由已知配对确定。 三幅图与三段文字组成3乘3单位向量点积矩阵,先突出首行,再突出首列,并显示温度与正确项概率。 [查看对应图解状态](/#/l3-r2-p57/1)[查看完整图解](/course/figures/l3-r2-p57-1.html) ## 课堂讲述 假设这一批有三对图文。每幅图都和三段文字比较,每段文字也和三幅图比较,得到这张矩阵。排好顺序以后,对角线是数据中提供的配对。 训练不只是让对角线数值绝对变大,而是让正确对应相对于其他候选更容易被选出。原始 CLIP 用双向的对比目标,从图找文字,也从文字找图。 训练以后留下两个编码器。我们可以把新的图片和新的文字送进去得到相似度,这个相似度又能够服务于分类候选或者检索。到这里,训练目标、得到的表示和使用接口终于在同一张图上对齐,而不是三段互不相关的术语。 P57 的矩阵是可实现的教学算例,不是真实 CLIP 输出。图像向量取四维空间前三个单位基 $e_1,e_2,e_3$;文字向量为 $(.8,0,.3,\sqrt{.27})$、$(.3,.8,0,\sqrt{.27})$、$(0,.3,.8,\sqrt{.27})$。每个文字向量的模平方是 $.64+.09+.27=1$,所以点积确实是余弦。 $S=\begin{bmatrix}.8&.3&0\\0&.8&.3\\.3&0&.8\end{bmatrix}.$ #### 图示条件与公式约定 精确构造:图像单位向量为四维空间前三个标准基 e1,e2,e3;文字单位向量 t1=(.8,0,.3,sqrt(.27)), t2=(.3,.8,0,sqrt(.27)), t3=(0,.3,.8,sqrt(.27))。故 S=[[.8,.3,0],[0,.8,.3],[.3,0,.8]],均为真实可实现的单位向量点积。温度 .2 时第一行 logits=(4,1.5,0),第一列=(4,0,1.5);正确配对概率 .9087599243,负对数 .0956743294。所有行列同样的正确概率,双向平均目标也为 .0956743294。这是教学矩阵,不是 CLIP 输出。 #### 这条线索的展开与后续阅读 - [一个小矩阵里,同时做两个方向的匹配](/supplement.html?return=l3-r2-p57/0#/l3-clip-train/0) 本页说明 - [CLIP 从图文对走到候选接口|核心改动怎样工作](/supplement.html?return=l3-r2-p57/0#/l3-clip-full-chain-mechanism/0) 本页说明 - [CLIP 从图文对走到候选接口|一起算一个完整例子](/supplement.html?return=l3-r2-p57/0#/l3-clip-full-chain-example/0) 本页说明 ## 由一行和一列算出双向训练目标 上一页的矩阵给出候选关系;现在沿第一行和第一列计算正确配对的概率。 图像找文字:第一行 S₁· = (0.8, 0.3, 0);文字找图像:第一列 S·₁ = (0.8, 0, 0.3)。S 是归一化向量点积,τ 是温度;logits = S / τ,p 表示本批候选内的相对分配,L 是负对数损失。 行表示图找文字,列表示文字找图。当前排序让正确配对位于对角线。取温度 $\tau=.2$,第一行 logits 为 $(4,1.5,0)$,正确配对概率为 $p_{11}=\frac{e^4}{e^4+e^{1.5}+1}=0.9087599243,\qquad -\log p_{11}=0.0956743294.$ 第一列只是将两个负项换序,概率不变;其他行列同理。双向平均损失为 $L=(L_{I\to T}+L_{T\to I})/2=0.0956743294$。一般情况下每行每列并不同分,必须分别计算,不能从一个最好看的单元格推总损失。 优化关注正确配对相对于其他候选的概率,不是要求每个正样本点积都变成任意大的数。单位向量点积本身受限于 $[-1,1]$,温度缩放改变 softmax 的区分程度。更换批次会更换竞争候选;两段都适合狗图的文字也可能在配对表里互为负项,因此学习目标与语义真值并不完全重合。 ### 沿着图解追问 以下是备课用的模拟师生对话,不是课堂实录。 **学生:**温度调小就更自信,为什么不直接调到零? **教师:**它会把当前最大项放大,但当前最大项也可能错;训练梯度和优化也随之变化。把概率变尖不等于学到更正确的对应。 ## 沿这个问题继续 核对三个文字向量的长度,再算第一行与第一列的正确配对概率及负对数。检查为什么本例各行各列的平均损失相同,再到 P58 改变候选集合。 **出处:**[CLIP(2021)](https://arxiv.org/abs/2103.00020)[独立阅读](/course/blocks/clip-matrix-worked.html) **出处:**[CLIP(ICML 2021)](https://proceedings.mlr.press/v139/radford21a.html)