CLIP

Radford (OpenAI) 2021 · 论文

一句话总结 — CLIP在4亿个来自网络的图文对上,通过对称的对比学习目标联合训练一个图像编码器和一个文本编码器,产生一个共享的嵌入空间,使得对用自然语言描述的、本质上任意的视觉概念进行零样本视觉识别成为可能。

问题

最先进的视觉系统被训练用于预测一组固定的预先确定的物体类别(典型例子是ImageNet的1000个类别)。这种受限的监督信号限制了通用性:要指定任何其他视觉概念,都需要收集新的标注数据并重新训练。而图像描述在互联网规模上早已免费地与图像配对存在——但预测描述的确切用词(VirTex式方法)扩展性很差:作者的图文描述预测基线学习ImageNet识别的速度比词袋基线慢3倍,而换用对比学习目标又带来了额外4倍的效率提升。CLIP探究的问题是,这种弱、带噪声的配对信号,在足够大的规模下,能否训练出可以零样本迁移到任意任务的视觉表示。

方法与架构

数据。 WIT(WebImageText):从互联网收集的4亿个(图像,文本)对,使用了50万个查询,每个查询最多平衡到2万个配对。

双编码器。 一个图像编码器(5种ResNet:从RN50到带注意力池化的RN50x64;以及3种ViT:B/32、B/16、L/14)和一个文本编码器(6300万参数、12层、512维宽度的Transformer,基于小写BPE分词,词表大小49,152,最大长度76;[EOS]处的激活即为文本特征)都是从零开始训练的。每种表示都通过线性投影映射到联合嵌入空间——没有非线性投影头。

对比学习目标。 给定一个包含 NN 个配对的批次,CLIP要预测 N×NN \times N 种可能配对中哪些是真实发生的:最大化 NN 个真实配对的余弦相似度,最小化 N2NN^2 - N 个错误配对的余弦相似度,通过在相似度分数上使用对称交叉熵(即多类别N对/InfoNCE损失)实现。依照论文图3中的伪代码,对于 L2L_2 归一化的嵌入 xix_i(图像)和 yjy_j(文本),以及可学习的温度参数 τ\taulogitsij=xi,yjτ,L=12(CEimagetext+CEtextimage)\text{logits}_{ij} = \frac{\langle x_i, y_j \rangle}{\tau}, \qquad \mathcal{L} = \tfrac{1}{2}\big( \text{CE}_{\text{image} \to \text{text}} + \text{CE}_{\text{text} \to \text{image}} \big) 其中每个CE分别沿行和列方向,以匹配索引为标签,计算softmax交叉熵。τ\tau 作为一个以对数形式参数化的标量进行学习(初始化为0.07,logits被裁剪在100以内)。批次大小为32,768;最大的ResNet模型在592块V100上训练了18天,ViT-L/14在256块V100上训练了12天,此外还在336像素分辨率下额外训练了一个epoch(即ViT-L/14@336px,也就是论文中报告的”CLIP”)。

零样本迁移。 在测试时,将数据集的类别名称嵌入(使用类似”A photo of a {label}.”的提示模板),并将图像分类为与其最近的文本嵌入所对应的类别——文本编码器相当于一个生成线性分类器权重的超网络。提示工程以及对80个提示进行集成,能将ImageNet准确率提升近5%。

实验结果

对SLAM的意义

CLIP是开放词汇SLAM的关键使能技术:通过将CLIP特征附加到三维地图元素上,像LERF和ConceptFusion这样的系统让你可以用自由形式的文本(“找到灭火器”)来查询重建的场景,而不再局限于固定的检测器类别列表。它同时也是VLM/VLA体系(BLIP-2、LLaVA、OpenVLA)的上游基础,而这类体系正越来越多地被置于现代机器人架构中SLAM之上。就视觉-语言预训练而言,CLIP的地位就如同BERT在NLP中的地位——而SigLIP则是它的直接技术继任者。

相关条目