大模型 Dalle2 学习三部曲(二)clip学习

这篇具有很好参考价值的文章主要介绍了大模型 Dalle2 学习三部曲(二)clip学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

clip论文比较长48页,但是clip模型本身又比较简单,效果又奇好,正所谓大道至简,我们来学习一下clip论文中的一些技巧,可以让我们快速加深对clip模型的理解,以及大模型对推荐带来革命性的变化。

大模型 Dalle2 学习三部曲(二)clip学习,DALL·E 2,学习,深度学习


clip结构

首选我们来看看clip的结构,如图clip结构比较直观,训练的时候把文本描述和图像分别过一个encoder。生成对应的向量,然后向量两两组对,对角线上的都为正样本,不在对角线上的为负样本。然后用个对比学习loss进行训练。

大模型 Dalle2 学习三部曲(二)clip学习,DALL·E 2,学习,深度学习

预测:

预测和训练的不同之处,把每个分类结合promote组成句子,然后和训练一样分别过encode,再求出图像和分类相似度最高的一个。后面我们再介绍一下promote 是如何制作的。

大模型 Dalle2 学习三部曲(二)clip学习,DALL·E 2,学习,深度学习

论文摘要,引言 要点

1,利用自然语言作为监督来源,提升了模型的通用性和可用性。

clip认为目前需要额外标记数据的监督形式限制了它们的通用性和可用性,因此直接从关于图像的原始文本中学习是一种有前途的替代方法。clip证明,预测标题与哪个图像相配的简单预训练任务是一种高效且可扩展的方式。

2,该模型在大多数任务上都能进行高效的迁移,clip在预训练之后,用于对下游任务的零样本迁移。clip通过在30多个不同的计算机视觉数据集上进行基准测试来研究对比这种方法的性能,涵盖了OCR、视频中的动作识别、地理定位和许多类型的细粒度对象分类等任务。发现通常无需进行任何特定数据集的训练,就能与完全监督的基准模型竞争

3,强调数据的规模的重要性。

clip指出弱监督模型与最近直接从自然语言中学习图像表示的探索之间的关键区别在于规模。在这项工作中,clip弥合了过去模型数据量不足的差距,通过利用互联网上大量可用的这种形式的数据,创建了一个包含4亿(图像,文本)对的新数据集。从而达到了一个从所未有的效果高度。

4, 发现数据规模和迁移能力成平滑正比

clip还通过训练一系列8个模型来验证CLIP的可扩展性,跨越近2个数量级的计算和观察,发现迁移能力和规模成平滑正比

这点非常重要,从而我们可以根据自己模型的大小大致判断迁移后的效果,而不是在等待模型能力的涌现

clip方法和技巧

2.1. 自然语言监督,zero-shot 带来的能力提升

clip方法的核心理念是从自然语言中获得的监督中学习感知。与其他训练方法相比,从自然语言中学习具有几个潜在优势。与标准的基于众包的图像分类标签相比,扩展自然语言监督要容易得多,因为它不需要将精力放在“机器学习兼容格式”中,如规范的1-of-N多数投票“标签”。相反,可以在互联网上大量存在的文本中被动地学习使用自然语言的方法。从自然语言中学习还具有一个重要的优势,即它不仅可以学习表示,而且还可以将该表示与语言联系起来,从而实现灵活的零样本迁移。

2.2. 创建足够大的数据集

clip认为之前类似模型结构之所以没取得效果,主要是因为数据集的规模,所以clip构建了一个新的大数据集,包括从互联网上各种公开来源收集的4亿个(图像,文本)对。为了尝试尽可能涵盖广泛的视觉概念,在构建过程中搜索包含500,000个查询之一的文本的(图像,文本)对通过每个查询包含多达20,000个(图像,文本)对来平衡结果。生成的数据集与用于训练GPT-2的WebText数据集具有相似的总词数。clip将此数据集称为WIT,代表WebImageText。

2.3. 选择高效的预训练方法

  • clip发现训练效率是成功扩展自然语言监督的关键。 为了解决训练效率,clip做了以下优化
  • clip探索了仅预测哪个文本作为一个整体与哪个图像配对,而不是预测该文本的确切单词。效率提升了三倍
  • chip将预测目标替换为对比目标,并观察到在零样本迁移到ImageNet的速率上进一步提高了4倍的效率
  • clip还删除了文本转换函数tu,该函数从文本中均匀抽取一个句子,因为CLIP的预训练数据集中的许多(图像,文本)对只有一个句子。
  • clip还简化了图像变换函数tv。在训练期间使用的唯一数据增强是从调整大小的图像中随机裁剪一个正方形。
  • 最后,控制softmax中logits范围的温度参数τ,作为对数参数化的乘法标量直接在训练过程中进行优化,以避免将其作为超参数调整。

下图是效率提升对比图(橙色为使用了整体文本,绿色为使用了对比学习loss)

大模型 Dalle2 学习三部曲(二)clip学习,DALL·E 2,学习,深度学习

prompt 工程

大模型 Dalle2 学习三部曲(二)clip学习,DALL·E 2,学习,深度学习

使用prompt的动机

1,解决问题多义性。

当类别的名称是提供给CLIP文本编码器的唯一信息时,由于缺乏上下文,它无法区分是指哪个词义。在某些情况下,同一个词的多个意义可能被包含在同一个数据集的不同类别中!比如在ImageNet数据集中,其中既包含建筑起重机,也包含飞行的鹤。另一个例子是在Oxford-IIIT Pet数据集的类别中,其中单词"boxer"从上下文来看,明显是指一种狗的品种,但对于缺乏上下文的文本编码器来说,它同样可能指的是一种运动员类型。

2,训练和预测一致性,

训练和预测都是一个完整句子。clip遇到的另一个问题是,在clip的预训练数据集中,图像配对的文本通常不只是一个单词,而是一个描述图像的完整句子。为了弥补这种分布差异,clip发现使用提示模板"A photo of a {label}."作为默认值是一个很好的选择,它有助于指定文本与图像内容相关。这通常比仅使用标签文本的基准性能更好。例如,仅使用这个提示,在ImageNet上的准确率提高了1.3%。

使用prompt的一些技巧

1,指定分类。

clip发现,在几个细粒度图像分类数据集上,指定类别有助于提供上下文。例如,在Oxford-IIIT Pets数据集上,使用"A photo of a {label}, a type of pet."来提供上下文效果很好。同样,在Food101上指定一种食物,在FGVC Aircraft上指定一种飞机也有帮助。

2,添加引号。

对于OCR数据集,clip发现在要识别的文本或数字周围加上引号可以提高性能。最后,clip发现在卫星图像分类数据集上,指定图像的形式有所帮助,clip使用了类似于"a satellite photo of a {label}."的变体。

3,使用多个零样本分类器进行集成的方法来提高性能。

这些分类器使用不同的上下文提示,例如"A photo of a big {label}"和"A photo of a small {label}"。clip在嵌入空间而不是概率空间上构建集成。这样,clip可以缓存一组平均的文本嵌入,使得集成的计算成本与使用单个分类器时相同,当在许多预测上进行摊销时。clip观察到,通过对许多生成的零样本分类器进行集成,可以可靠地提高性能,并且在大多数数据集上使用这种方法。在ImageNet上,clip集成了80个不同的上下文提示,这使性能比上面讨论的单个默认提示额外提高了3.5%。综合考虑提示工程和集成,ImageNet的准确率提高了近5%。

添加prompt如下图示意

大模型 Dalle2 学习三部曲(二)clip学习,DALL·E 2,学习,深度学习

效果

接下来论文大幅的篇幅就是效果对比,clip通过在30多个不同的计算机视觉数据集上进行基准测试来研究对比这种方法的性能,涵盖了OCR、视频中的动作识别、地理定位和许多类型的细粒度对象分类等任务。发现通常无需进行任何特定数据集的训练,就能与完全监督的基准模型竞争,这里就不复述了,反正就是很强很牛逼非常牛逼。下步看看能不能复现一下代码和实现。文章来源地址https://www.toymoban.com/news/detail-700945.html

到了这里,关于大模型 Dalle2 学习三部曲(二)clip学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人脸识别三部曲

    引用文121本 开始运行时,输入待录入的人脸姓名。 按下s键后,开始录入人脸图像,录入两百张后,结束程序。

    2024年02月07日
    浏览(34)
  • JavaCV人脸识别三部曲之二:训练

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《JavaCV人脸识别三部曲》的第二篇,前文《视频中的人脸保存为图片》咱们借助摄像头为两位群众演员生成大量人脸照片,如下图,群众演员A的照片保存在 E:temp20211218\\001 man ,B的照片保存

    2024年02月11日
    浏览(27)
  • Java版人脸跟踪三部曲之三:编码实战

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 作为《Java版人脸跟踪三部曲》系列的终篇,本文会与大家一起写出完整的人脸跟踪应用代码 前文《开发设计》中,已经对人脸跟踪的核心技术、应用主流程、异常处理等方方面面做了详细设计,建

    2024年02月12日
    浏览(27)
  • JavaCV人脸识别三部曲之三:识别和预览

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《视频中的人脸保存为图片》 《训练》 《识别和预览》 作为《JavaCV人脸识别三部曲》的终篇,今天咱们要开发一个实用的功能:有人出现在摄像头中时,应用程序在预览窗口标注出此人的身份,效

    2024年02月11日
    浏览(31)
  • Go语言基准测试(benchmark)三部曲之一:基础篇

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos Go的标准库内置的testing框架提供了基准测试(benchmark)功能,可以用来验证本地方法在串行或者并行执行时的基准表现,帮助开发者了解代码的真实性能情况,例如一个方法执行一次的平均耗时,还能

    2024年02月06日
    浏览(38)
  • vscode上的git三部曲+git pull操作

    git三部曲:git add .、git commit -m \\\'\\\'、git push,命令在连接远程仓库的本地仓库路径下的终端执行。 vscode上的可视化操作如下:  1、对仓库里的文件做更改,让仓库操作的地方有变化。 2、 点击+号,让文件进入缓存,此步骤相当于终端执行命令git add .  3、在这里输入信息并点击

    2024年02月11日
    浏览(29)
  • Java版人脸跟踪三部曲之二:开发设计

    如何开发Java版人脸跟踪应用?本篇给出了设计大纲,并解释了相关的重要知识点 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇是《Java版人脸跟踪三部曲》系列的第二篇,前文体验了人脸跟踪的效果,想要编码实现这样的效果,咱们需要做

    2024年02月12日
    浏览(28)
  • 数据结构:堆的三部曲(二)top K问题

    top k问题解决的是获取前几个最值的问题。 我们知道 堆的功能主要是选数,选出最大值或者最小值 。那么我们每次获取堆顶元素后,再将剩余元素调整成堆,就可以选出次大的数,如果我们只想要前k个最大值或者最小值,就只需要获取堆顶元素k次,调整k次。比如王者荣耀

    2024年02月02日
    浏览(31)
  • 【C++系列P4】‘类与对象‘-三部曲——[类](2/3)

     前言 大家好吖,欢迎来到 YY 滴 C++系列 ,热烈欢迎! 【 \\\'类与对象\\\'-三部曲】的大纲主要内容如下 : 如标题所示,本章是【 \\\'类与对象\\\'-三部曲】三章中的第二章节—— 类章节 ,主要内容如下: 目录 一.类 1.类的组成与计算类的大小(含结构体内存对齐规则) 二. 空类的大小

    2024年02月08日
    浏览(31)
  • Go语言基准测试(benchmark)三部曲之三:提高篇

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos -《Go语言基准测试(benchmark)三部曲》已近尾声,经历了《基础篇》和《内存篇》的实战演练,相信您已熟练掌握了基准测试的常规操作以及各种参数的用法,现在可以学习一些进阶版的技能了,在面

    2024年02月06日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包