谷歌推出创新SynCLR技术:借助AI生成的数据实现高效图像建模,开启自我训练新纪元!

谷歌推出了一种创新性的合成图像框架,这一框架独特之处在于它完全不依赖真实数据。这个框架首先从合成的图像标题开始,然后基于这些标题生成相应的图像。接下来,通过对比学习的技术进行深度学习,从而训练出能够精准识别和理解这些图像的模型,令人惊讶的是,这种方法在各种下游任务中都表现出色。让我们一起来看看使用了什么神奇的魔法!

论文标题: Learning Vision from Models Rivals Learning Vision from Data
论文链接:
https://arxiv.org/pdf/2312.17742.pdf

引言

集大规模的真实数据往往伴随着许多挑战:未经筛选的庞大数据集虽然成本较低,但其效益却是有限的;而精细筛选的小规模数据集虽然更为精确,但却限制了模型的广泛应用。为了克服这些障碍,一项新的研究提出了一种独特的解决方案——利用合成数据来学习视觉表示。这种方法通过生成大量的图像标题和相应的图像,实现了有效的对比学习,能够将共享同一标题的图像视为相互匹配的正例。研究团队特别强调,这种基于合成数据的学习方法不仅展现了卓越的可扩展性,而且在多种下游任务中展现了与传统方法相媲美的卓越性能。

传统学习方法("Learning from data")侧重于纯粹从真实数据中汲取知识。一个典型的例子是CLIP模型,它直接从文本和图像数据集中提取信息,在ImageNet上实现了令人瞩目的80.2%的线性转移精度。

混合学习方法("Hybrid")则采用了一种双管齐下的策略,结合真实文本和生成图像进行学习。例如,StableRep模型就是在这样的框架下运作,它利用文本数据集和图像生成器进行学习,在ImageNet上也取得了相当不错的76.7%的线性转移精度。

而本文提出的基于模型生成的方法("Learning from models")——SynCLR,标志着一次创新的飞跃。它通过从合成文本和合成图像中学习,即便没有直接接触任何真实数据,也能在ImageNet上展现出与CLIP相匹敌的竞争力,达到了非常优秀的80.7%的线性转移精度。

方法

SynCLR的核心创新在于它通过生成模型重新界定了视觉类别的细粒度。与传统的自监督和监督学习方法相比,SynCLR独特地以标题作为类别定义,其中每个标题都细致地描述了一个视觉类别。这一方法的巧妙之处在于它允许按照标题所共享的语义将图像分组,而非仅限于更为宽泛的类别标签,如“金毛寻回犬”等。在实验中,这种以标题为基础的精细分类方式证明了其优于传统自监督和监督训练方法的效果。该系统包括以下三个步骤:

生成图像标题

首先,作者们成功地生成了一个庞大的图像标题语料库。为了实现这一目标,他们巧妙地利用了大型语言模型(LLMs)的上下文学习能力,精心设计了一系列的提示模板,以指导LLM根据特定上下文产生相关联的文本内容。

通过从现有数据集(如ImageNet-21k和Places-365)中精选概念列表,作者们为每个概念构建了特别的提示,引导LLM生成描述性且富有创意的图像标题。这一过程的核心在于确保生成的标题既准确描述图像内容,又展现足够的多样性,以覆盖广泛的视觉概念。这种多样性至关重要,因为它保证了生成的图像集可以代表尽可能多样的场景、对象和活动,进而提高学习到的视觉表示的泛化能力。

通过这种方式,作者们合成了大量多样化的图像标题,这些标题随后用于指导图像生成模型生成相应的合成图像。将这些合成图像与合成标题结合起来,形成了一个用于训练视觉表示学习模型的丰富数据集。这种方法使得在完全没有真实图像数据的情况下进行视觉模型训练成为可能,为传统依赖真实数据集的视觉学习方法提供了一种创新且有效的补充。

在下图中,研究团队提供了一个上下文(左侧),用于指导模型根据给定的类别对(例如“tiger, forest”或“groom, wedding ceremony”)生成具体的描述性标题。例如,在实际生成的结果中(右侧),对于“red fox, yard”这一类别对,模型生成了以下标题:“wild red fox sitting on a partially snow covered front yard of a house in the suburbs of a small city”。在这个过程中,每次推理都会随机选择三个这样的上下文实例。

图像生成

研究团队采用了一种创新的方法来生成图像,即通过不同的随机噪声启动反向扩散过程。在这个过程中,Classifier-Free Guidance(CFG)比例扮演着至关重要的角色,它有效地平衡了样本质量、文本与图像之间的一致性,以及样本多样性之间的关系。为了为每个文本描述生成一系列不同的图像,团队调整了随机噪声输入,从而丰富了生成图像的多样性。

表示学习方法

这一表示学习方法是在StableRep方法的基础上构建的,引入了一种多正面对比学习损失。其核心思想是在嵌入空间中将由相同标题生成的图像对齐,同时融合了其他自监督学习方法中的多种技术,包括补丁级掩蔽图像建模目标。

StableRep

StableRep方法通过比较不同样本之间的相似性和差异性,最小化交叉熵损失。这一策略训练模型识别和区分由相同或不同标题生成的图像。

iBOT

iBOT方法采用掩蔽图像建模目标,其中局部补丁被掩盖,而模型的任务是预测这些被掩盖的补丁的标记表示。这一策略将DINO模型从图像级别调整到补丁级别。

指数移动平均(EMA)

EMA最初由MoCo在自监督学习中引入,用于编码作物并生成iBOT损失的目标。在训练期间,EMA模型按照余弦计划更新,以平滑模型参数的更新过程,从而使模型在训练过程中保持稳定性。

多作物策略

多作物策略作为一种提高计算效率的方法,允许模型从多个视角和上下文中学习,增加了训练样本的多样性并提升了表示的泛化能力。具体而言,StableRep通过最小化真实分配和对比分配之间的交叉熵损失来提高效率。在这个框架中,存在一个编码的锚点样本和一组编码的候选样本集合。对比分配分布描述了模型预测锚点样本和每个候选样本是否由相同标题生成的概率。他们使用指示函数来标识两个样本是否来自同一个标题。

实验

研究团队对其模型进行了长达500k步骤的预训练,采用8192个标题的大批量尺寸,所有预训练任务均在224x224分辨率下进行。他们将SynCLR与OpenAI的CLIP、OpenCLIP以及DINO v2进行了对比,这些模型分别代表了不同的从数据中学习的方法。特别指出的是,DINO v2中的ViT-B/14和ViT-L/14是由ViT-g模型蒸馏得来,这一点在比较时为DINO v2带来了优势。

ImageNet线性评估

为了进行公平的比较,所有模型均使用最后一个块的cls令牌作为表示(与DINO v2使用多层串联的结果相比)。据表6所示,SynCLR在ViT-B结构上达到了80.7%的成绩,在ViT-L结构上则达到了83.0%。这些成绩与那些直接从真实数据中学习的模型(如CLIP和DINO v2)相当,尽管SynCLR仅使用了合成数据。

UperNet语义分割

研究团队在UperNet语义分割中采用了单一尺度512x512分辨率,部分模型为适应518x518分辨率而使用了14x14的补丁尺寸。他们使用了600M的合成数据,与包括MoCo v3、SimMIM、MAE、PeCo、data2vec、iBOT、BEiT v2、CLIP和OpenCLIP在内的其他模型进行了对比,这些模型主要是基于真实的ImageNet数据预训练的。SynCLR在mIoU指标上分别在标准分辨率和高分辨率下达到了54.3%和57.7%,与使用真实数据训练的模型相比,表现十分出色。

ImageNet图像分类

SynCLR在ImageNet图像分类方面的表现也值得关注。使用600M合成数据,SynCLR与采用不同数据集,如IN21K、WIT-400M和LAION-2B预训练的各种模型进行了比较。在ViT-B结构上,SynCLR的Top-1准确率为85.8%,而在ViT-L结构上则为87.9%,均优于多数使用真实数据训练的模型。

这些结果明确表明,尽管完全依赖合成数据,SynCLR方法在视觉表示学习领域仍能与依赖真实数据的模型媲美,展示了这一方法的显著有效性和巨大潜力。

小结

作者们提出了以下关键观点和结论:

从生成模型中学习的理由:生成模型的一个显著优势在于其能够同时扮演成百上千个数据集的角色。在传统的研究方法中,研究者往往需要为不同的图像类别(比如汽车、花朵、猫、狗等)单独收集数据集。而像DINO v2这样的系统通过综合和整合大量这类数据集,能够构建出强大且鲁棒的表征。

生成模型的显著优势:与传统的数据收集和标注方法相比,生成模型提供了一个更加高效、范围更广的视觉概念覆盖方式。这一方法免去了在真实图像数据收集和标注上耗费的大量时间和资源。

论文强调了合成数据在视觉表示学习中的关键作用。尽管在分类精度方面,合成数据可能不及真实数据,但在训练视觉表示模型方面,合成数据展现出了极高的效果。这些训练好的表示随后可以轻松适应于真实数据量较小的下游任务,显示出合成数据的实用性和适应性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/288534.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32 学习(三)OLED 调试工具

目录 一、简介 二、使用方法 2.1 接线图 2.2 配置引脚 2.3 编写代码 三、Keil 工具调试 一、简介 在进行单片机开发时,有很多调试方法,如下图: 其中 OLED 就是一种比较好用的调试工具: OLED 硬件电路如下&#xff0c…

使用Redis进行搜索

文章目录 构建反向索引 构建反向索引 在Begin-End区域编写 tokenize(content) 函数,实现文本标记化的功能,具体参数与要求如下: 方法参数 content 为待标记化的文本; 文本标记的实现:使用正则表达式提取全小写化后的…

【竞技宝】DOTA2:Mad Kings官宣新阵容 南美新星Jimpark加盟!

北京时间2024年1月3日,随着本月DOTA2ESL吉隆坡站的比赛结束,下一个值得关注的大赛梦幻联赛S22举办的时间要等到今年的二月份了。虽然休赛期的转会狂潮已经过去,但目前还是有很多队伍依然在调整新赛季的阵容。 近日,南美战队Mad Kings在社交平台上官宣了发文,原阵容的所有选手(一…

LeetCode 每日一题 Day 28293031 ||三则模拟||找循环节(hard)

1185. 一周中的第几天 给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。 输入为三个整数:day、month 和 year,分别表示日、月、年。 您返回的结果必须是这几个值中的一个 {“Sunday”, “Monday”, “Tuesday”, “Wednesday…

创建Qt项目

项目工程名称一般不要有特殊符号,不要有中文 项目工程保存路径可修改的,但路径不要带中文 构建系统,有3种,这里使用qmake qmake和cmake区别 构建过程不同,项目管理不同。 1、构建过程,qmake是Qt框架自带的…

完善 Golang Gin 框架的静态中间件:Gin-Static

Gin 是 Golang 生态中目前最受用户欢迎和关注的 Web 框架,但是生态中的 Static 中间件使用起来却一直很不顺手。 所以,我顺手改了它,然后把这个改良版开源了。 写在前面 Gin-static 的改良版,我开源在了 soulteary/gin-static&a…

Twincat中PLC编程的ST语言

在Twincat中,PLC编程使用的是Structured Text(ST)语言。ST语言是一种类似于Pascal的高级编程语言,专为工业自动化领域的程序开发而设计。它提供了结构化的控制流和数据操作,使得PLC编程更加高效和可靠。 https://kunal…

数字信号处理期末复习——计算大题(一)

个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:V…

一文讲清数据资产入表实操

《中共中央 国务院关于构建数据基础制度更好发挥数据要素作用的意见》已发布一年,数据资产化和入表已成为2023年的热门话题,随着2023年底国家数据局吹风《"数据要素x"三年行动计划(2024-2026年)》即将发布,这…

JRT控制打印机

本次测试打印机控制和纸张方向控制。 打印机状态 选择打印机 控制纸张 定义纸张 旋转纸张 不旋转纸张 A4

提高工作效率的Postman环境变量使用方法

在 Postman 中,用 Environments 来管理环境变量。我们在开发的过程中,往往会用到多个环境:开发环境,测试环境,UAT 环境,生产环境等。我们要调用不同环境的 API 时,只需切换 Postman 的 Environm…

Vuex(vue2中的状态机)

目录 Vuex state属性 getters属性 mutations属性 actions属性 modules属性 辅助函数 Vuex 状态管理模式 维护公共状态 公共数据 使用状态机模块维护状态 A组件中分发工作(发起异步请求)--->获取数据--->提交突变(将数据提交给突变 ) 通过突变修改状态…

Win32 基本程序设计原理总结

目录 1. Windows系统 基本原理 2. 需要什么函数库(.LIB) 2.1 C Runtimes: 2.2 Windows API 3. 需要什么头文件(.H) 4. Windows 程序运行的本质 5. 窗口类的注册与窗口的诞生 6.消息 6.1 消息分类:…

【每天五道题,轻松公务员】Day1:图形推理

目录 专栏了解 ☞欢迎订阅☜ ★专栏亮点★ ◇专栏作者◇ 图形推理 题目一 题目二 题目三 题目四 题目五 答案 详细讲解 讲解一 讲解二 讲解三 讲解四 讲解五 专栏了解 ☞欢迎订阅☜ 欢迎订阅此专栏:考公务员,必订!https://…

科研学习|论文解读——信息行为和社会控制:了解家庭慢性病管理中的冲突信息行为

摘要 信息与控制的关系引起了社会科学家的兴趣。然而,许多先前的工作都集中在组织而不是家庭上。交互式信息行为的研究也侧重于组织和协作,而不是冲突。因此,在有慢性疾病的家庭中,我们调查了健康相关社会控制背景下的信息行为以及…

什么是安全信息和事件管理(SIEM),有什么用处

安全信息和事件管理(SIEM)对于企业主动识别、管理和消除安全威胁至关重要。SIEM 解决方案采用事件关联、AI 驱动的异常检测以及机器学习驱动的用户和实体行为分析 (UEBA) 等机制来检测、审查和应对网络安全威胁。这些功能使 SIEM …

WPD小波包理解

WPD是分析信号特性和提供具有时频局部化函数的正交小波基的有效工具,同时也是一种小波分解,它可以将原始信号分解成若干子层。小波分解实现了单侧分解,但它只分离频率的低通分量。相比之下,WPD提供了更精确的信号分析,…

计算机网络实验(六):三层交换机实现VLAN间路由

一、实验名称:三层交换机实现VLAN间路由 二、实验原理 2.1. VLAN基本配置 在交换网络中,为了实现对物理网络的逻辑划分,引入了VLAN(虚拟局域网)的概念。VLAN通过将不同的设备划分到不同的虚拟网络中,实现了逻辑隔离。基本配置包括在交换机上创建VLAN、将端口划分到相应…

Spring Bean的生命周期(钩子函数)

借鉴:https://www.cnblogs.com/liweimingbk/p/17843970.html https://blog.csdn.net/lxz352907839/article/details/128634404 一、Spring Bean生命周期 如果Spring配置文件中所定义的Bean类实现了ApplicationContextAware 接口,那么在加载Spring配置文…

Java多线程详解

进程 进程是程序的执行实例,而在进程的执行过程中,它需要操作和管理一系列的数据。这个数据集合通常包括程序的代码、程序计数器、寄存器、堆栈、数据段和其他与程序执行相关的信息。这些数据共同构成了一个进程的上下文(context&#xff09…