AIGC-Learning Transferable Visual Models From Natural Language Supervision- CLIP论文概述

论文:https://arxiv.org/abs/2103.00020
代码:https://github.com/openai/CLIP
CLIP讲解

CLIP是OpenAI推出的采用对比学习的文本-图像预训练模型,自然语言监督下的视觉模型学习。
在这里插入图片描述

CLIP的原理基于一个联合学习的框架,它将文本和图像嵌入空间连接在一起。CLIP使用了一个大型的神经网络模型,该模型在训练过程中学习了对文本和图像进行编码的表示。这种表示使得文本描述和图像内容可以在同一个嵌入空间中进行比较和匹配。通过在训练中暴露模型于大量的文本-图像对,CLIP能够学习到文本和图像之间的语义关系,从而实现对图像的理解和分类。

在这里插入图片描述

CLIP模型介绍

Motivation (动机)

  • Generality of Vision Systems: 现有的计算机视觉系统通常被训练来预测一组预定义的对象类别,这种限制形式的监督限制了它们的通用性和可用性。
  • Alternative Supervision: 直接从图像的原始文本描述中学习是一个有前景的替代方案,因为它利用了更广泛的监督源。

Contributions (贡献)

  • CLIP Model: 提出了一个新模型CLIP,它通过预测图像与文本标题的匹配关系来进行预训练,能够从互联网收集的大规模数据集中学习。

  • Zero-Shot Transfer: 展示了CLIP在多种下游任务上的零样本迁移能力,包括OCR、视频动作识别、地理定位和细粒度物体分类。模型在不需要有仍何数据集训练的情况下(zero-shot),仍然有很好的结果

  • Benchmarking: 在30多个不同的计算机视觉数据集上对CLIP的性能进行了基准测试,显示了其在多种任务上的通用性。

  • Large-scale Dataset: 构建了一个包含4亿对(图像,文本)的数据集,用于模型的预训练。训练规模大大上升

  • 文本作为监督信号,将输出变为多模态特征而不是单纯的视觉特征

Methods

对比学习,训练目标的转变

  • 从预测确切单词到整体配对:传统的图像生成模型试图预测与图像直接相关的确切文本单词,这在面对多样的描述、评论和相关文本时变得非常困难。CLIP改变了这一目标,转而预测整体文本与图像的配对关系。
  • 对比学习:CLIP采用了对比学习目标(contrastive objective),这种方法通过比较正例(正确的图像-文本配对)与负例(错误的配对)来学习更好的特征表示。并采用对比学习目标,经过实验发现,不再去预测单词,而是去判断图片-文本对,也就是绿色的线 对比学习的方法,这样效率又可以一下提升至4倍。
    在这里插入图片描述
    在这里插入图片描述

CLIP流程:

  • step1:特征提取:
    • image_encoder 和 text_encoder 分别是用于图像和文本的编码器,可以是ResNet、Vision Transformer、CBOW或Text Transformer等架构。
    • 输入:图片输入和文本输入
      • 图片:I[n, h, w, c],n是batchsize
      • 文本:T[n, l],l是序列长度
  • step2:多模态嵌入
    I_e 和 T_e 是经过投影和L2归一化后的特征表示,用于计算图像和文本之间的相似度。(直接线性)
    相似度计算:
  • step3:相似度计算
    计算经处理得到的I_e 和 T_e的相似度
  • step4:计算损失函数,对比学习
    通过比较计算得到的 logits 和 labels 来计算交叉熵损失
    在这里插入图片描述

原文对应的伪代码如下:
# image_encoder - ResNet or Vision Transformer  
# text_encoder - CBOW or Text Transformer  
# I[n, h, w, c] - minibatch of aligned images  
# T[n, l] - minibatch of aligned texts  ,l对应于序列长度
# W_i[d_i, d_e] - learned proj of image to embed  
# W_t[d_t, d_e] - learned proj of text to embed  
# t - learned temperature parameter  
# extract feature representations of each modality  
#通过编码器得到对应的特征
I_f = image_encoder(I) #[n, d_i]  #图片
T_f = text_encoder(T) #[n, d_t]  # 文本
# joint multimodal embedding [n, d_e] 
#通过映射(得到多模态的特征)和归一化后得到最终用于去比对的特征 
I_e = 12_normalize(np.dot(I_f, W_i), axis=1)  
T_e = 12_normalize(np.dot(T_f, W_t), axis=1)  
# scaled pairwise cosine similarities [n, n]  
logits = np.dot(I_e, T_e.T) * np.exp(t)  #算相似度
# symmetric loss function  
labels = np.arange(n)  #对角线上的是正样本
loss_i = cross_entropy_loss(logits, labels, axis=0)  
loss_t = cross_entropy_loss(logits, labels, axis=1)  
loss = (loss_i + loss_t)/2

PROMPT ENGINEERING AND ENSEMBLING

Prompt Engineering 和 Ensembling 通过定制化提示文本(prompt text)来指导模型学习特定任务,可以提高模型在零样本学习任务上的准确性。可以帮助解决多义性(polysemy)和上下文缺失(lack of context,推理的时候输入单个单词)的问题。
在这里插入图片描述

  • 在处理多义词时,通过在文本提示中加入额外的描述性词汇或短语,可以为模型提供更多的上下文信息,帮助模型理解特定情境下的词义。例如,如果类别名称是“boxer”,并且它指的是一种狗的品种:{boxer}->{“A photo of a boxer, a type of dog”}

  • 使用模版:采用特定的模板来构造文本提示,{label}->{“a photo of a {label}”},这样的模板可以帮助模型理解输入文本是关于图像内容的描述。这种方法可以减少模型对于类别名称的歧义,并提供更清晰的指导。

  • 定制化提示:对于不同的任务和数据集,可以定制化文本提示以适应特定需求。例如,在细粒度图像分类数据集(如花卉或飞机型号分类)中,指定类别的上下文(如“A photo of a {label}, a type of flower”)可以提高模型的识别能力。

  • 用常识和先验知识:在构造提示时,可以融入常识和先验知识,帮助模型更好地理解词汇的含义。例如,如果类别是“crane”,并且数据集中同时包含起重机和飞鹤,那么可以分别使用“construction crane”和“flying crane”作为提示。

Zero-shot Transfer

计算机视觉中,零样本学习通常指的是对图像分类中未见过的对象类别进行泛化的研究
在这里插入图片描述
CLIP训练好后得到两个编码器(图像和文本encoder),图片输出的特征和由单词通过prompt engineering变成一个句子后文本特征计算相似度后经过softmax得到概率分布,相似度对应最大的大概率就是照片对应的句子。

不足

  • Performance on Specific Tasks: 在某些细粒度分类任务和更抽象的任务上,CLIP的性能仍然较弱。
  • Generalization to Out-of-Distribution Data: CLIP对于真正分布外的数据泛化能力仍然有限。
  • Computational Efficiency: 尽管CLIP在效率上有所提高,但与图像标题生成等其他方法相比,仍有改进空间。
  • Social Biases: 由于训练数据的未筛选性,CLIP模型可能会学习到并再现社会偏见。

实验结果

零样本学习性能评估

具体来说,Figure 5 展示了 CLIP 模型在 27 个不同数据集上的零样本学习性能,并与在 ResNet-50 特征上训练的完全监督线性分类器(base进行了比较。结果表明,CLIP 模型在 16 个数据集上超越了 ResNet-50 的完全监督线性分类器,包括 ImageNet。

zero-shot CLIP与ResNet50(有监督,linear probe),对于物体分类数据集,表现较好。对于更难的数据集CLIP表现的不好(不好用标签信息,因为需要很多特定知识)
在这里插入图片描述

零样本学习与少样本学习的比较

零样本 CLIP 与在相同特征空间上训练的 4 样本线性分类器的平均性能相匹配,并且几乎与公共可用模型中 16 样本线性分类器的最佳结果相匹配。 对于 BiT-M 和 SimCLRv2,突出显示了性能最佳的模型。 浅灰色线是评估套件中的其他模型。 此分析中使用了 20 个数据集,每类至少有 16 个示例。
(其中 Linear Probe 的意思是指训练的时候把预训练好的模型权重冻住,直接用其提取特征,然后只是去训练最后的 分类头,linear probe用于评估迁移能力)
在这里插入图片描述

零样本与linear probe

样本性能与线性探针性能之间存在强烈的相关性。这意味着当一个模型在零样本设置下表现良好时,它在使用线性探针进行评估时也很可能会有良好的表现,反之亦然。尽管存在相关性,零样本性能通常比线性探针性能低10到25个百分点。这表明零样本方法还有改进的空间,它并没有达到通过线性探针评估时所能达到的最佳性能。在少数情况下(只有5个数据集),零样本性能与线性探针性能非常接近,差异小于或等于3个百分点。这表明在这些特定的数据集上,零样本方法已经相当优化,几乎能够达到与有监督学习(通过线性探针)相似的结果。
在这里插入图片描述

CLIP在不同数据集上的性能

CLIP 的功能在各种数据集上都优于最佳 ImageNet 模型的功能。 在 27 个数据集中的 21 个数据集上,在 CLIP 的特征上拟合线性分类器优于使用 Noisy Student EfficientNet-L2。
在这里插入图片描述

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值