CLIP:Learning Transferable Visual Models From Natural Language Supervision

一般的计算机视觉方法总是在一个类别已知且固定的数据集上去训练和预测,这限制了模型的泛化能力,而直接从文本来学习图像是有有前景的,因为利用了更广泛的监督信号。因此将任务定义为预测哪条文本与哪副图像在语义上最接近,以此来学习SOTA的图像表征。训练数据是400 million的文本图像对,训练完成之后将可以用于多种下游视觉任务,例如在ImageNet数据集上,不需要额外训练(zero shot),就能媲美ResNet50。


CLIP整体架构

同时训练一个Image Encoder和一个Text Encoder,其中,Image Encoder有两种:ResNet-50x64和ViT-L,Text Encoder是BERT,对于一个训练batch中的N对(image, text)对,CLIP通过优化两个Encoder来学习一个多模态的空间,使得N对正对的image embedding与text embedding(经过线性变换和L2归一化)之间的余弦相似度尽可能大,其余对负对的image embedding与text embedding(经过线性变换和L2归一化)之间的余弦相似度经尽可能小。实际上,由于都进行了L2归一化,可以直接相乘来计算余弦距离,同一pair对的结果趋近于1,不同pair对的结果趋近于0。伪代码如下:

训练过程伪代码

联合训练的batchsize为32768,当以ResNet-50x64作为Image Encoder时,训练资源:使用592块V100耗时18天,当以ViT-L/14@336px作为Image Encoder时,训练资源:使用256块V100耗时12天。

在用于下游任务时,比如用于图像识别任务时,用训练好的Text Encoder针对下游任务数据集构建一个分类器,比如将数据集的类别映射到CLIP空间中的Text Embedding,然后用Image Enoder将待预测图片映射到CLIP空间中的Image Embedding,计算两两之间的余弦相似度,相似度最高的即为分类结果。

你可能感兴趣的:(CLIP:Learning Transferable Visual Models From Natural Language Supervision)