网站建设规划大纲,常州制作网站公司,网站要流量有什么用,免费行情软件app网站mnw下载由于clip论文过长#xff0c;一直无法完整的阅读该论文#xff0c;故而抽取论文中的关键信息进行记录。主要记录clip是如何实现的的#xff08;提出背景、训练数据、设计模式、训练超参数、prompt的作用#xff09;#xff0c;clip的能力#xff08;clip的模型版本、clip…由于clip论文过长一直无法完整的阅读该论文故而抽取论文中的关键信息进行记录。主要记录clip是如何实现的的提出背景、训练数据、设计模式、训练超参数、prompt的作用clip的能力clip的模型版本、clip的泛化能力。
提出背景
1、text-to-text的训练方式彻底改变了NLP其倡导使用任务不相干的数据训练模型是的模型在计算量、数据规模、模型精度上不断提升。大数据下训练的模型具备极强的zero-shot能力
2、ImageNet是图像领域的基础大数据其表明在大规模数据集训练后模型具备极强可扩展能力。NLP也可以采用这种模式进行研究
3、目前使用自然语言监督进行图像表示学习仍然很少该类方法的精度远低于若干年前的计算机视觉方法
训练数据
构建了一个新的数据集其中包括4亿对图像文本这些数据集从互联网上的各种公开来源中收集起来。为了尽可能广泛地覆盖一组视觉概念我们搜索图像、文本对作为构建过程的一部分其文本包含50万个查询中的一个。我们大概通过每个查询包含多达20,000对图像、文本来平衡结果。所得到的数据集与用于训练GPT-2的WebText数据集具有相似的总字数。我们将这个数据集称为“智慧的网络图像文本”。
在论文附录的表9中提供了多个公开数据集的数量量与类别数可以做一个额外知识了解一下。
clip模式设计的由来
现有的图像分类模型只能预测1000个ImageNet类时从自然语言中学习一组开放的视觉概念的任务似乎很艰巨。在我们的努力过程中我们发现训练效率是成功扩展自然语言监督的关键因此我们基于这个指标选择了最终的训练方法。
论文最初的方法类似于VirTex从头开始联合训练了一个图像CNN和文本Transformer来预测一个图像的标题。这里可以表明基于Transformer 语义模型根据图片预测词汇效率不高然而我们在有效地扩展这种方法时遇到了困难。在图2中我们展示了一个6300万参数Transformer语言模型它已经使用了其ResNet-50图像编码器的两倍计算学习识别ImageNet类比一个更简单的基线预测相同文本的模型通用的图像分类模型慢三倍。
最终表明基于对比度的学习效率是最高的。 CLIP方法与图像分类方法都有一个关键的相似之处。他们试图预测每张图片附带的文本的确切文字。这是一项困难的任务因为有各种各样的描述、评论和相关的文本与图像共存。最近在图像的对比表示学习方面的工作发现对比目标比其等效的预测目标可以学习更好的表示。们探索了训练一个系统来解决潜在的更容易的代理任务即只预测哪个文本整体与哪个图像配对而不是该文本的确切单词。从相同的单词袋编码基线开始我们将预测目标替换为图2中的一个对比目标并观察到转移到ImageNet的零镜头转移率的效率进一步提高了4倍。
clip的训练与使用流程
具体训练流程如下
给定一批N图像文本对CLIP被训练来预测一批中可能发生的N×N图像文本配对。CLIP将学习一个多模态编码空间通过联合训练图像编码器和文本编码器以最大化批中N个实对的图像和文本嵌入的余弦相似度同时最小化N2−N个错误对嵌入的余弦相似度。我们优化了这些相似性分数上的对称交叉熵损失。具体伪代码如下所示 具体使用流程 1、对图像组与词汇组进行编码分别由图像编码器与图像编码器实现 2、计算图片特征与词汇特征的相似度 3、
模型版本
clip一共有resnet、vit两个系列其中5个resnet和3个视觉Transformer。对于ResNets我们训练一个ResNet-50一个ResNet-101然后再训练3个ResNet它们遵循高效的net式模型缩放使用大约ResNet-50计算的4倍、16倍和64倍。它们分别记为RN50x4、RN50x16和RN50x64。对于视觉Transformer我们训练了ViT-B/32、ViT-B/16和ViT-L/14。 基于论文中的图标可以发现VIT系列的模型在同等gflop下acc比ResNet模型高2~3个点这里博主觉得ViT-B/16模型是性价比最好的。 论文中的图12也表明与在ImageNet上预先训练的模型相比CLIP的特性对任务转移更健壮。对于这两个数据集分割在CLIP模型表示上训练的线性探针的迁移分数都高于其他具有类似ImageNet性能的模型。这表明在ImageNet上训练的模型的表示在某种程度上过于适合它们的任务 在论文附录中各模型版本在27个数据集上的zero-shot性能可以发现分辨率从224提升到336后模型精度提升比较明显。
训练超参数
这里可以发现clip训练时的batchsize是3w多词汇表接近5w这表明clip支持对5w多个词汇的编码训练epoch为32。
我们训练了所有的模型32个epoch。我们使用Adam优化器Kingma Ba2014和解耦的权重衰减正则化Loshchilov Hutter2017应用于所有非增益或偏差的权重并使用余弦调度来衰减学习率Loshchilov Hutter2016。初始超参数是在训练1个epoch使用网格搜索随机搜索和对基线ResNet-50模型进行手动调整的组合来设置的。然后由于计算约束超参数被启发式地适用于更大的模型。可学习温度参数τ初始化为Wu et al.2018的0.07并进行裁剪以防止缩放到100以上我们发现这是防止训练不稳定性所必要的。我们使用一个非常大的小批量32768。混合精度Micikevicius et al.2017用于加速训练和保存记忆。为了节省额外的内存梯度检查点格里ewankWalther2000陈等人2016、半精度AdamDhariwal等人2020和半精度的文本编码器权重。嵌入相似性的计算也被分割了因为单个gpu只计算其局部批嵌入所需的成对相似性的子集。最大的ResNet型号RN50x64在592个V100gpu上训练花了18天而最大的视觉Transformer在256个V100gpu上训练花了12天。对于ViT-L/14我们还以更高的336像素分辨率进行了一个额外的epoch的预训练以提高类似于FixRes的性能Touvron等人2019年。我们将这个模型表示为ViT-L/14336px。除非另有说明本文中报告的“CLIP”结果都使用我们认为表现最好的模型。
prompt工程对训练的影响
大多数图像分类数据集都是以事后编码的方式对信息进行描述只用标签的一个类别id来标注图像并将类别id映射到特定的字符名称上事后编码。一些数据集如Flowers102和GTSRB在他们发布的版本中似乎根本没有包含这个类别映射不利于零样本迁移。对于许多的数据集我们观察到他们的标签选择有些随意只依赖任务的标签编码进行迁移而在训练中不考虑zero-shot转移相关的问题。图像数据集以map的决定了与自然语言的关联没有考虑到类别信息的迁移性
一个常见的问题是ploysemy。当一个类的名称是提供给CLIP的文本编码器的唯一信息时由于缺乏上下文它无法区分这意味着哪个词的意义。在某些情况下同一个单词的多个含义可能会作为不同的类包含在同一个数据集中。这发生在ImageNet中它包括建筑起重机和飞行的起重机。另一个例子是在Oxford-IIIT宠物数据集的类别中从上下文来看boxer显然指的是一种狗但缺乏上下文的文本编码器同样可能指一种运动员。图像数据集的信息标签与语境相关存在多义词。如cranes、boxer
我们遇到的另一个问题是在我们的训练前的数据集中与图像配对的文本只是一个单词是相对罕见的。通常文本是一个完整的句子以某种方式描述图像。为了帮助弥合这种分布差距我们发现使用prompt模板“A photo of a {label}.”。作为一个帮助指定文本的默认值是关于图像的内容。这通常可以提高在仅使用标签文本的基准之上的性能。例如仅使用这个提示符就可以使ImageNet的准确率提高1.3%。通过prompt模板将label构造为完整的自然语言将精度在ImageNet上的精度提升了1.3%
类似于关于GPT-3的“prompt engineering”讨论Brown等人2020年Gao等人2020年我们还观察到通过为每个任务定制提示文本可以显著提高zero-shot性能。下面是几个非详尽的例子。我们在几个细粒度的图像分类数据集上发现它有助于指定类别。例如在Oxford-IIIT宠物上使用“A photo of a {label}, a type of pet.” 为了帮助提供上下文工作效果很好。同样在食物101上指定一种食物在FGVC飞机上一种飞机也有帮助。对于OCR数据集我们发现在需要识别的文本或数字周围添加引号可以提高性能。最后我们发现在卫星图像分类数据集上它有助于指定图像是这种形式的我们使用了f “a satellite photo of a {label}.”. 通过更多的语义背景信息融入label的prompt模板更有利于提升zero-shot性能。具体如类别背景、数据领域
我们还尝试了集成多个zero-shot分类器作为另一种提高性能的方法。这些分类器是通过使用不同的上下文提示来计算的比如“A photo of a big {label}”和“A photo of a small {label}”。我们在嵌入空间而不是概率空间上构造集合。这允许我们缓存一组平均文本嵌入以便当在许多预测上摊销时集成的计算成本与使用单个分类器相同。我们已经观察到对许多生成的zero-shot分类器的集成以可靠地提高性能并将其用于大多数数据集。在ImageNet上我们集成了80个不同的上下文提示这比上面讨论的单个默认提示额外提高了3.5%的性能。综合考虑快速工程和集成将ImageNet精度提高近5%。在图4中我们可视化了与Li等人2017中所述的无上下文基线方法相比快速工程和集成如何改变一组CLIP模型的性能。针对图像数据中的目标成像特性对一个数据集生成差异化的prompt更有利于提升精度如尺度信息、目标背景信息等通过该手段集成了80个不同的上下文提示将ImageNet精度提高近5%。 clip的泛化性 CLIP在27个数据集中有16个获胜。查看单个数据集可以发现一些有趣的行为。在细粒度的分类任务上我们观察到它在性能上的广泛分布。在其中两个数据集上Stanford Cars和Food101zero-shot CLIP在ResNet-50特性上的表现超过逻辑回归超过20%而在flowers102和FGVC飞机上zero-shot CLIP的表现落后超过10%。在Oxfordpets和Birdsnap上表现更接近。我们怀疑这些差异主要是由于WIT和ImageNet之间每个任务监督数量不同。在“一般”对象分类数据集上如ImageNet、CIFAR10/100、STL10和PascalVOC2007的性能相对相似在所有情况下zero-shot CLIP都有轻微的优势。在STL10上CLIP总体上达到了99.3%这似乎是一种新的技术状态尽管没有使用任何训练示例。Zero-shot CLIP在两个测量视频动作识别的数据集上显著优于ResNet-50。在Kinetics700上CLIP的性能比ResNet-50高出14.5%。Zero-shot CLIP在UCF101上的性能也比ResNet-50的功能高出7.7%。我们推测这是由于自然语言与ImageNet中以名词为中心的宾语监督相比为涉及动词的视觉概念提供了更广泛的监督。对于泛意义上的图像数据进行迁移zero-shot CLIP都能表现出较优的性能
zero-shot CLIP的表现局部明显不佳我们看到零镜头CLIP 在一些专门的、复杂的或抽象的任务如卫星图像分类EuroSAT和RESISC45淋巴结肿瘤检测PatchCamelyon计数对象CLEVRCounts自动驾驶相关的任务如德国交通标志识别GTSRB识别到最近的汽车的距离KITTIDistance。这些结果突出了零镜头CLIP 在更复杂的任务上的能力较差。相比之下非专家的人类可以稳健地执行其中的一些任务如计数、卫星图像分类和交通标志识别这表明有很大的改进空间。然而我们需要注意的是目前还不清楚测量zero-shot转移而不是少射击转移是否能对学习者之前没有经验的困难任务进行有意义的评估比如几乎所有人类的淋巴结肿瘤的淋巴结肿瘤分类。在专业领域的图像数据上进行迁移zero-shot CLIP都能表现出较优的性能
当将zero-shot性能与完全监督模型进行比较时CLIP的任务学习能力与少射击方法相比是一个更直接的比较因为zero-shot是它的极限。在图6中我们可视化了zero-shot CLIP与许多图像模型特征的对比包括最佳公开的ImageNet模型、自监督学习方法和CLIP本身。虽然可以直观地期望零镜头低于one-shot但我们发现zero-shot CLIP在相同特征空间上与4次逻辑回归后模型的性能。这可能是由于zero-shot和少射方法之间的重要区别。首先CLIP的零镜头分类器是通过自然语言生成的它允许视觉概念被直接指定“沟通”。 相比之下“正常的”监督学习必须从训练的例子中间接地推断出概念。无上下文的基于示例的学习的缺点是许多不同的假设可以与数据保持一致特别是在一次性的情况下。单个图像通常包含许多不同的视觉概念。虽然一个有能力的学习者能够利用视觉线索和启发式设定被演示的概念是图像中的主要对象但这并不能是所有的图像都如此。当图像目标不是类别标签的主体是监督学习的信息错误率更高而prompt一定程度上降低信息错误率
zero-shot和少镜头性能之间的差异的一个潜在解决方案是使用CLIP的零镜头分类器作为少射击分类器的权重的先验。虽然对生成的权值添加L2惩罚是这个想法的一个简单实现但我们发现超参数优化通常会选择这个正则化器的如此之大的值以至于产生的少镜头分类器“只是”零镜头分类器。研究将zero-shot转移的强度与few-shot学习的灵活性相结合的更好的方法是未来工作的一个很有前途的方向。基于zero-shot生产的few-shot模型利用了zero-shot先验这使得研究者需要设置正则化来平衡先验与新数据适配
当在其他模型的特征上比较zero-shot CLIP和少镜头逻辑回归时zero-shot CLIP大致与我们的评估套件中表现最好的16-shot分类器的性能相匹配该套件使用了在ImageNet-21K上训练的BiT-M ResNet-152x2的特征。我们确信在JFT-300M上训练的BiT-L模型会表现得更好但这些模型还没有公开发布。BiT-M ResNet-152x2在16-shot设置中表现最好有些令人惊讶因为正如第3.2节所分析的在27个数据集上Noisy Student EfficientNet-l2在完全监督设置中平均表现出近5%。
除了研究零镜头CLIP和少镜头逻辑回归的平均性能外我们还检查了在单个数据集上的性能。在图7中我们展示了在同一特征空间上的逻辑回归分类器需要匹配零镜头CLIP性能的每个类的标记示例数量的估计值。由于零镜头CLIP也是一个线性分类器这估计了在这种设置下零镜头传输的有效数据效率。为了避免训练成千上万的线性分类器我们基于1、2、4、8、16样本训练如果可能的话的性能和在每个数据集上训练一个完全监督的线性分类器来估计有效的数据效率。我们发现zero-shot转移对每个数据集的效率有很大的变化从每个类少于1个标记的示例到184个。两个数据集Flowers102 and EuroSAT表现不足的一次性模型。一半的数据集每个类需要的例子少于5个例子中位数为5.4。然而平均估计的数据效率是每个类的20.8个例子。这是由于在20%的数据集中监督分类器需要每个类有许多标记的示例来匹配性能。在ImageNet上零镜头CLIP与在相同特征空间上训练的16样本-shot线性分类器的性能相匹配。 如果我们假设评估数据集足够大在它们上训练的线性分类器的参数可以很好地估计那么因为CLIP的零镜头分类器也是一个线性分类器完全监督分类器的性能大致为零镜头传输设定了一个上界。在图8中我们比较了CLIP的zero-shot性能与跨数据集的完全监督线性分类器。虚线y x线表示一个“最优”零镜头分类器匹配其完全监督等价的性能。对于大多数数据集zero-shot分类器的性能仍然比完全监督分类器低10%到25%这表明在提高CLIP的任务学习和zero-shot转移能力方面仍有很大的净空间。 zero-shot性能与完全监督性能之间的正相关关系为0.82p值10−6这表明CLIP在连接潜在的表征和任务学习与zero-shot转移方面是相对一致的。然而零镜头CLIP只能在5个数据集上接近完全监督的性能 STL10, CIFAR10, Food101, OxfordPets, and Caltech101。在所有5个数据集上zero-shot精度和完全监督精度均超过90%。这表明对于那些高质量的任务CLIP在zero-shot转移中可能更有效。预测zero-shot性能作为完全监督性能函数的预测的线性回归模型的斜率估计完全监督性能每提高1%zero-shot性能就会提高1.28%。然而95百分位的置信区间仍然包括小于10.93-1.79的值。
在过去的几年中深度学习系统的实证研究已经证明性能可以作为一个重要的量来预测的函数如训练计算和数据集大小Hestness等2017Kaplan等2020年。到目前为止GPT系列的模型已经在1000倍的训练计算增长中证明了zero-shot性能的持续改进。在图9中我们检查了CLIP的zero-shot性能是否遵循类似的缩放模式。我们绘制了对36个不同数据集的39个ResNet CLIP模型的平均错误率发现在模型计算增加44倍时CLIP存在类似的对数-对数线性缩放趋势。虽然总体趋势是平稳的但我们发现个人评估的表现可能要嘈杂得多。这是由于在子任务上的个体训练运行之间的高度差异如D‘Amour等人2020掩盖了稳步改善的趋势或者作为某些任务的计算函数性能实际上是非单调的。
一个理想的鲁棒模型虚线在ImageNet分布和其他自然图像分布上表现得同样良好。零镜头CLIP模型将这种“鲁棒性差距”缩小了高达75%。对logit转换值的线性拟合显示与自举估计的95%置信区间。右可视化香蕉的分布转移一个类在7个自然分布转移数据集中的5个中共享。将最佳零镜头CLIP模型ViT-L/14336px的性能与在ImageNet验证集ResNet-101上具有相同性能的模型进行了比较 基于论文中表5的数据可以发现在human分类任务中zero-shot的clip模型比线性分类程序精度更高同时也可以发现few-shot的clip相比于zero-shot精度提升并不明显。