uc伯克利提出多任务框架slip

人工智能博士 人工智能博士     2022-12-01     342

关键词:

点上方人工智能算法与Python大数据获取更多干货

在右上方 ··· 设为星标 ★,第一时间获取资源

仅做学术分享,如有侵权,联系删除

转载于 :机器之心

为了探究 CV 领域的自监督学习是否会影响 NLP 领域,来自加州大学伯克利分校和 Facebook AI 研究院的研究者提出了一种结合语言监督和图像自监督的新框架 SLIP。

近来一些研究表明,在具有挑战性的视觉识别任务上,自监督预训练可以改善监督学习。CLIP 作为一种监督学习新方法,在各种基准测试中都表现出优异的性能。

近日,为了探究对图像进行自监督学习的势头是否会进入语言监督领域,来自加州大学伯克利分校和 Facebook AI 研究院的研究者调查了 CLIP 形式的语言监督是否也受益于图像自监督。该研究注意到,将两种训练目标结合是否会让性能更强目前尚不清楚,但这两个目标都要求模型对有关图像的质量不同且相互矛盾的信息进行编码,因而会导致干扰。

论文地址:https://arxiv.org/abs/2112.12750v1

项目地址:https://github.com/facebookresearch/SLIP

为了探索这些问题,该研究提出了一种结合语言监督和自监督的多任务框架 SLIP(Self-supervision meet Language-Image Pre-training),并在 YFCC100M 的一个子集上预训练各种 SLIP 模型,又在三种不同的设置下评估了表征质量:零样本迁移、线性分类和端到端微调。除了一组 25 个分类基准之外,该研究还在 ImageNet 数据集上评估了下游任务的性能。

该研究通过对不同模型大小、训练计划和预训练数据集进行实验进一步了验证了其发现。研究结果最终表明,SLIP 在大多数评估测试中都显著提高了性能,这表明在语言监督背景下自监督具有普遍效用。此外,研究者更详细地分析了该方法的各个组成部分,例如预训练数据集和数据处理方法的选择,并讨论了此类方法的评估局限性。

SLIP 框架

该研究提出了一种结合语言监督和图像自监督的框架 SLIP,以学习没有类别标签的视觉表征。在预训练期间,为语言监督和图像自监督分支构建每个输入图像的单独视图,然后通过共享图像编码器反馈。训练过程中图像编码器学会以语义上有意义的方式表征视觉输入。然后该研究通过评估它们在下游任务中的效用来衡量这些学得表征的质量。

方法

下图算法 1 概述了用于自监督的 SLIP-SimCLR。在 SLIP 中的每次前向传递期间,所有图像都通过相同的编码器进行反馈。CLIP 和 SSL 目标是在相关嵌入上计算的,然后再汇总为单个标量损失,可以通过重新调整 SSL 目标来平衡这两个目标。该研究将 SLIP-SimCLR 简称为 SLIP。

SLIP 增加了图像的处理数量,这导致产生约 3 倍多的激活,因此会扩大模型的内存占用并减慢训练过程中的前向传递速度。

改进的训练过程

CLIP 的作者主要使用包含 400M 图像 - 文本对的大型私有数据集进行训练,这减少了正则化和数据增强的需求。在复现 CLIP 时,研究者发现了一些主要针对数据增强的简单调整。当在 YFCC15M 上进行预训练时,这些调整显著提高了性能。

该研究对训练过程进行了改进,使用改进后的 ResNet-50 实现了 34.6% 的零样本迁移到 ImageNet,超过了原始结果的 31.3%,相比之下,另一项研究的 CLIP 复现在 ImageNet [29] 上实现了 32.7% 的准确率。该研究的实验主要关注视觉 Transformer 模型(ViT)系列,因为它们具有强大的扩展行为 [17]。并且该研究使用改进后的过程训练所有 ViT 模型,以便为该研究所提方法的评估比较设置强大的基线。

评估实验

ImageNet 分类任务

该研究在三种不同的设置下评估了模型在 ImageNet 上的性能:零样本迁移、线性分类和端到端微调。

  • 零样本迁移任务在预训练后直接在分类基准上评估模型性能,而无需更新任何模型权重。通过简单地选择字幕嵌入与输入图像最接近的类,可以将使用对比语言监督训练的模型用作图像分类器;

  • 线性分类,也称为线性探测,是一种用于评估无监督或自监督表征的标准评估方法。训练随机初始化的终极分类层,同时冻结所有其他模型权重;

  • 最后,另一种评估表征质量的方法是,在对模型进行端到端微调时,评估预训练模型是否可以提高监督学习的性能。

自监督学习中一种常见的评估设置是在 ImageNet(即 ImageNet-1K)上训练模型和线性分类器,即使没有标签,它也是一个高度策划和类平衡的数据集。表 1 在 YFCC15M 和 ImageNet 上使用 SimCLR 和 MoCo v3 训练 ViT-B/16。在 ImageNet 上对线性分类和端到端微调进行了模型评估。当在 YFCC15M 而不是 ImageNet 上进行预训练时,SimCLR 和 MoCo v3 的线性分类准确率下降了 10% 以上,性能急剧下降。

下表 2 提供了三种尺寸的 Vision Transformer 和所有三种 ImageNet 设置的 CLIP、SimCLR 和 SLIP 的评估结果。所有模型都在 YFCC15M 上训练了 25 个 epoch。该研究发现语言监督和图像自监督在 SLIP 中建设性地相互作用,单独提高了这两种方法的性能。

模型规模和计算量扩展

在这一部分,研究者探索了使用更大的计算量(训练更久)和更大的视觉模型之后,SLIP 的表现有何变化。他们注意到,YFCC15M 上的 100 个训练 epoch 对应着 ImageNet1K 上的 1200 个训练 epoch。

下表 3 的结果表明,无论是增加训练时间,还是增大模型尺寸,SLIP 都能实现良好的扩展。

其他基准

在下表 4 中,研究者评估了一组下游图像分类任务上的 zero-shot 迁移学习性能。这些数据集跨越许多不同的领域,包括日常场景(如交通标志)、专业领域(如医疗和卫星图像)、视频帧、带有或不带有视觉上下文的渲染文本等。

在这些数据集上,我们看到,更大的模型和使用 SLIP 进行更长时间的训练通常可以提高 zero-shot  迁移学习的准确性。

其他预训练数据集

除了 YFCC15M 之外,研究者还用另外两个图像 - 文本数据集——CC12M 和 CC3M——进行了实验。如下表 5 所示,他们在 CC12M 和 CC3M 上同时使用 SLIP 和 CLIP 训练 ViT-B/16,并与他们之前在 YFCC15M 上得到的数据进行比较。在所有的 ImageNet 评估设置中,SLIP 都比 CLIP 有改进的余地。值得注意的是,在 CC12M 而不是 YCC15M 上预训练 SLIP 会产生较低的 zero-shot 准确率,但实际上会带来较高的线性和微调性能。CLIP 让人看到了更惊艳的 1.6% 的微调性能提升。

其他自监督框架

作者在论文中提到,SLIP 允许使用许多不同的自监督方法。他们用 SimCLR 的不同替代方法——MoCo v3、BYOL 和 BeiT 在 ViT-B/16 上进行了几次实验。

下表 6 显示,三种替代方法的表现都比不上 SLIP-SimCLR。最令人惊讶的结果是,尽管 BEiT 是这里测试的最强的自监督方法,但 SLIP-BEiT 的表现最差。这可能是由于预训练和部署阶段之间的输入差异较大。尽管如此,所有这些次优的 SLIP 变体仍然比 CLIP 性能要高。

---------♥---------

声明:本内容来源网络,版权属于原作者

图片来源网络,不代表本公众号立场。如有侵权,联系删除

AI博士私人微信,还有少量空位

如何画出漂亮的深度学习模型图?

如何画出漂亮的神经网络图?

一文读懂深度学习中的各种卷积

点个在看支持一下吧

睡不醒别赖基因,uc伯克利最新研究:锻炼和早餐是关键

...自己天生「睡不醒」星人?事情没那么简单。来自UC伯克利的研究团队提出,老睡不醒跟基因没多大关系。相比下,我们更应关注:(1)前一天睡 查看详情

uc伯克利博士尤洋回国创业,求学期间破imagenet纪录!已获超千万种子轮融资

明敏发自凹非寺量子位报道|公众号QbitAI曾刷新ImageNet纪录的尤洋,回国创业了!尤洋,何许人也?他是LAMB优化器的提出者,曾成功将预训练一遍BERT的时间,从原本的三天三夜一举缩短到一个多小时。作为... 查看详情

uc伯克利给四足机器人加buff:瞬间适应各种真实地形,抹了油的地面也能hold住...

...,分分钟给你表演个人仰马翻。不过现在,来自UC伯克利、卡内基梅隆大学以及FacebookAI的研究人员发明了一种新算法&#x 查看详情

行业现状令人失望,工作之后我又回到uc伯克利读博了

 Datawhale干货 作者:SHREYASHANKAR,编译:机器之心很多同学在面临读博和工作的选择时会犹豫不决,这篇文章也许能给你一点启发。机器学习领域近来受到大模型的冲击,很多小公司表示难以承担大模型的训练... 查看详情

熬夜还会变小气,uc伯克利研究者:睡眠不足严重打击社交热情

Alex发自凹非寺量子位|公众号QbitAI睡眠不足,已被证明容易引发焦虑症、神经衰弱多种疾病。而最新研究又在这串副作用里添了一项:那就是变冷漠。具体而言,没休息好的人社交互动欲望会减弱,平时帮助他人... 查看详情

kdd2021|美团联合多高校提出多任务学习模型,已应用于联名卡获客场景

很多应用通常都需要用定向展示广告来进行获客,对信用卡广告来说,由于用户转化存在较长的链路,持续有效的获客比传统广告更具挑战性。本文结合美团联名信用卡业务中的具体实践,以及今年发表在KDD2021上... 查看详情

想玩gpt-3申请不到?uc伯克利让你免费在线玩,无需注册,最快10s出结果

...预训练语言模型OPT-175B做的,背后团队来自加州大学伯克利分校。最近该网站在twitter有点火。再 查看详情

任务管理框架总体设计

...和灵活性。 解决方案 1>    问题提出在实际业务中,经常遇到要定时或批量执行的任务(多系统之间的数据交互,以及一些耗时功能的处理),为了便于开发和管理这些业务痛点,避免重复开发任务接口... 查看详情

伯克利openai等提出基于模型的元策略优化强化学习

基于模型的强化学习方法数据效率高,前景可观。本文提出了一种基于模型的元策略强化学习方法,实践证明,该方法比以前基于模型的方法更能够应对模型缺陷,还能取得与无模型方法相近的性能。引言强化学习领域近期取得... 查看详情

阿里数学竞赛最年轻金奖得主:15岁读少年班,21岁uc伯克利读博,想毕业就回国...

杨净明敏发自凹非寺量子位报道|公众号QbitAI虽然说阿里全球数学竞赛,北大是最大赢家。但在获奖人榜单上,也有不同的身影:他非北大出身,也并非奥赛圈熟客,但首次参赛就拿了金奖。今年22岁,还是... 查看详情

提出量子计算机的俄罗斯数学家去世了,享年85岁,门下2位菲尔兹奖得主

...ntorovich表示悲痛:“他是20~21世纪数学界的巨人”。UC伯克利数学教授EdwardFrenkel 查看详情

在uc/os-ii上进行多任务的调度,设置三个任务,任务一代码中使用了while(1)成为死循环,如何跳出它?急

如何跳出死循环,运行下一任务?使用return(0)?在哪用?为什么要跳出呢,ucos本来就是用while(1)来实现任务的死循环的。你想切换到其他的任务只需要OSTimeDly一下,就能挂起当前任务切换到其他任务。参考技术A七八百的可... 查看详情

javajdk多任务执行框架

  查看详情

python多进程共享内存(代码片段)

frommultiprocessingimportProcess,Manager,Lockimportosimporttimedefrun_proc(dict,slip,lock):tmp=dict[slip].copy()forkindict[slip]:tmp[k]=k+tmp[k]print(‘Runchildprocessch...‘.format(ch=os.getpid()))wi 查看详情

pythia:facebook最新开源的视觉语言多任务学习框架

Facebook发布了一个全新的多任务学习框架Pythia,它基于PyTorch且可用于视觉和语言的联合任务。Pythia是一种模块化的即插即用框架,数据科学家和机器学习开发者能快速构建、复现和构建基准模型。项目地址:https://github.com/facebook... 查看详情

jdk多任务执行框架(executor框架)

Executor的常用方法为了更好的控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效地进行线程控制。它们都在java.util.concurrent包中,是JDK开发包的核心。其中有一个重要的类:Executors,他扮演这线程工厂的角色,我们通... 查看详情

用于自动驾驶的实时yuv多任务cnn

作者|AI修炼之路来源|AI修炼之路摘要本文提出了一种针对低功耗车用SoC优化的多任务卷积神经网络(CNN)结构。我们介绍了一个基于统一架构的网络,其中编码器由检测和分割两个任务共享。该网络以25FPS运行,分辨率为1280... 查看详情

多线程fork/join并行计算

...Join框架  Fork/Join框架是Java7提供了的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。  我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是... 查看详情