满足不同下游任务特征需求!Sea AI Lab 提出多粒度自监督学习框架Mugs,刷新多项SOTA(1)

简介: 满足不同下游任务特征需求!Sea AI Lab 提出多粒度自监督学习框架Mugs,刷新多项SOTA

由颜水成老师带领的 Sea AI Lab 提出了一种多粒度自监督学习框架 Mugs[1],用以学习不同粒度的非监督特征,从而满足不同下游任务对不同粒度甚至多粒度特征的需求。在相同的实验设置下(相同数据集和模型等),该方法大幅超越了目前最好的自监督学习方法。在没有使用额外数据的情况下,该方法在 ImageNet 数据集上取得了目前最高的线性评估准确率(linear probing accuracy)82.1% 以及最高的 KNN 分类准确率 80.3%。

详细结果请参看 paperswithcode 的Leaderboard:https://paperswithcode.com/sota/self-supervised-image-classification-on?p=mugs-a-multi-granular-self-supervised
一:背景和动机
通过精心设计上游任务(pretext task),自监督学习从这些上游任务上直接拿到无监督数据的伪标签,并且利用这些伪标签训练深度学习模型。实验结果表明通过自监督学习到的特征在很多下游任务上展现出比常规监督学习更强的迁移性能和泛化性能。目前大量的无标签数据可以在互联网上获得,自监督学习已经展示出比常规监督学习更大的潜能。

在自监督学习中,许多下游任务其实需要不同粒度的特征,例如粗粒的特征或者细粒度的特征。举例来说,常规的分类问题一般会用更多的粗粒度特征,而细粒度的分类问题则需要更多的细粒度特征。更重要的是,在实际应用中,许多下游任务需要多粒度的特征来处理数据中的复杂结构。一个典型的例子是 ImageNet 上的分类问题。首先,注意到 ImageNet 数据非常贴近实际数据,拥有类别上的层级结构,也就是很多小类拥有相似的属性从属于一个大类(例如犬科类里面包含很多不同品种的狗和狼)。这样一来,为了区分不同的大类别,例如犬科类和鸟类,我们就需要粗粒度的特征。为了进一步区分更细的类别,譬如狗和狼,我们则需要稍微细粒度一点的特征。最后为了细分不同品种的狗,我们需要更加细粒度的特征。许多其他应用,例如物体检测与识别,也面临着类似的多粒度特征需求。

然而,现在的自监督学习方法一般都只侧重于单粒度特征的学习。譬如,最经典的对比学习 MoCo[2] 构建实例识别任务来区分单个实例。这样一来,MoCo 侧重学习更多实例级的细粒度特征,但是它不考虑数据中粗粒度的类别结构(cluster structure)。另外一类具有代表性的自监督学习是基于聚类的自监督学习,包含 DINO[3],DeepCluster[4]等。这类方法将类似的实例聚到同一个虚拟类别中,从而学习聚类级别的粗粒度特性。然而,它不能很好地处理对细粒度特性有所需求的下游任务。因此,在下游任务的特征偏好未知的情况下,我们应该构建一个学习多粒度特征的自监督学习框架,以便尽可能多地处理不同下游任务。

为了解决上述问题,该研究提出了一种多粒度自监督学习 (Mugs) 框架来显示地学习视觉数据的多粒度特征。具体来说,Mugs 主要学习三种不同粒度特征:

  • 第一是 instance-level(实例级别的)细粒度特征,用于将不同的实例区分开;
  • 第二是稍微粗粒度的 local-group 数据特征。这类特征主要是为了保证非常相似的样本能够聚集成小簇,从而形成一个 local-group 上的整体语义(例如对应到非常相似的狗)。这样一来,local-group 特征则会将第一类过于分散的实例特征进行高阶语义的重新聚集,也就让相似的样本享有相似的特征;
  • 第三类是数据中更加粗粒度的 group 特征(例如犬科特征)。这类特征是保证相似的 local-groups 能够靠的更近,从而保证数据整体语义的一致性。通过这样的层级数据语义学习,该方法能够学到更贴合实际应用的特征,从而更加满足于不同下游任务对不同粒度特征的需求。



二:方法
如前面所述,该方法主要通过三种不同粒度的监督来学习三种不同粒度的特征, 包含 1) instance-level 细粒度特征,2)稍微粗粒度的 local-group 特征, 3)粗粒度的 group 特征。下面将介绍这三种特征的具体学习方法。

图一:Mugs 自监督学习整体框架。(a)展示了总体框架。对于每幅图像,Mugs 将两次随机增强的样本输入学生和教师骨干网络。然后, Mugs 采用三种不同粒度的监督 / 损失: 1)instance discrimination loss, 2)local-group discrimination loss,3) group discrimination loss。(b)展示了学生和老师中都有的 local-group discrimination 模块。这个模块首先平均所有 patch tokens 得到 average token,并从一个 buffer 里面找到当前 average token 的 top-k 邻居。然后,它使用一个小的 transformer 来聚合 average token 和它的 k 个邻居,从而获得一个 local group feature(即新的 class token)。

A). instance-level 细粒度特征学习
和对比学习 MoCo 一样,Mugs 通过 instance discrimination supervision(实例判别监督)来分散不同的实例特征,从而监督实例级别的细粒度特征学习。

具体来说,给定样本, Mugs 进行两次数据增强得到, 然后分别送进老师和学生 backbone 得到接着 Mugs 把里面的 class token 分别送入对应的投影网络最后,Mugs 将学生网络对应的输出进一步输入到一个预测网络用来预测老师的输出。为了达到让老师和学生输出一致的目的,Mugs 使用 infoNCE 损失函数来实现:


其中,分别对应老师和学生分支最后的输出。代表的是一个缓存 buffer,用于存贮过往的这样一来,正如图一中的效果图所示,Mugs 把同一个图片对应的特征拉进,把不同图片的特征推远,从而分散开 instance-level 的特征。

B). 稍微粗粒度的 local-group 特征学习
如前所述,细粒度特征通常不足以满足不同的下游任务(例如分类),因为缺乏足够的高级数据语义。为了学习更高级别的细粒度(即稍微粗粒度)特征,这里也称为 local-group feature,Mugs 提出了一种新颖而有效的 local-group supervision。直观地讲,如图一中第三个球面所示,这种监督鼓励数据特征具有小但分散的 local-group 结构。目的是保证高度相似的样本能够在特征空间上聚集,避免前面所介绍的 instance discrimination supervision 将相似的样本推得过远,从而避免破坏一定的语义。这样一来,local-group supervision 有助于捕获数据中的更高级别语义。接下来将首先介绍其细节,然后更加详细地讨论它的好处。

给定两个数据增广后的样本, 假设老师和学生骨干网络得到如图一中的子图(b)所示,Mugs 把里面的 patch tokens 分别进行平均池化得到在另一方面,Mugs 使用一个 buffer  以先进先出的方式来保存过往的接着,Mugs 分别为当前的里面找到它们对应的 top-k 邻居然后,Mugs 借助一个小的 transformer 将融合成一个 local-group feature:


其中,代表的是一个两层的 transformer:它的 input class token 是,input patch tokens 是,输出 class token有着同样的功能。因为和它的 top-k 邻居很相似,它们一起组成一个 local-group。因此,它们的融合也被称为的 local-group feature。最后 Mugs 拉进同一张图片的两个数据增强的 local-group feature  ,并且推远不同图片的 local-group feature:


其中,分别对应老师和学生的投影网络。代表学生网络的预测网络,代表一个缓存 buffer,用于存贮过往的这样一来,正如图一中的第三个球面特征效果图所示,Mugs 将分散的特征聚集为小的聚类中心,从而学习到稍微粗粒度的 local-group 特征。

这种 local-group discrimination supervision 给 Mugs 带来两方面的好处。

  1. 它是上述 instance discrimination supervision 的有效补充。针对同一张图片的两个数据增强后的样本,这种监督要求这两个样本的 local-group 相同。这意味着除了样本本身对齐之外,它们对应的邻居也应该很好地对齐。这种邻居对齐一个更具挑战性的对齐问题,也增强了更高级别的 local-group 语义对齐。
  2. 这种监督鼓励高度相似的样本形成 local-group,并将不同的 local-groups 分散开来,从而提高了特征的语义判别能力。这是因为 a)这种监督所寻求的邻居数目 k 非常小(大约 10),这样在同一 local-group 的样本高度相似,有助于形成非常紧凑的 local-group; b)这种监督进一步将不同的 local-groups 分开。通过这两个方面,这种 local-group 通过考虑数据中的 local-group 结构,促进了更高级别的细粒度特征学习,有效地补充了 instance discrimination supervision。



相关文章
|
19天前
|
机器学习/深度学习 人工智能 自然语言处理
从提示工程到代理工程:构建高效AI代理的策略框架概述
该文探讨了AI代理的发展,特别是ChatGPT等模型如何展示了AI系统的潜力。文章提出从提示工程转向代理工程,定义了代理能力需求,并提出一个框架来设计和实施AI代理。代理工程涉及明确代理的任务、所需行动、能力及熟练度,通过现有技术满足这些需求。文章强调了广泛和特定知识的熟练度、精确信息获取以及代理的结构设计和协调。随着技术进步,该框架为AI代理的未来发展提供了基础。
44 0
|
4天前
|
人工智能 开发框架 搜索推荐
探索移动应用开发的未来:跨平台框架与AI的融合
在本文中,我们将深入探讨移动应用开发领域的最新趋势,着重于跨平台开发框架的兴起和人工智能技术的融合。我们将分析这些技术如何改变开发者构建应用程序的方式,以及它们对最终用户体验的影响。通过实际案例研究,我们将展示这些趋势如何在现实中得以应用,并讨论它们对未来移动应用生态系统的潜在影响。
14 0
|
28天前
|
机器学习/深度学习 人工智能 算法
自动化测试中AI驱动的决策框架
【5月更文挑战第28天】 本文探讨了在自动化软件测试过程中,如何利用人工智能(AI)技术来优化测试用例的选择和执行。通过引入一个基于机器学习算法的智能决策框架,我们可以提高测试的效率和有效性,同时减少冗余和不必要的测试活动。与传统的摘要不同,本摘要将直接深入到文章的核心议题,介绍AI在自动化测试中的作用,并指出其在未来的发展趋势。
|
1月前
|
机器学习/深度学习 人工智能 算法
探索自动化测试中AI驱动的决策框架
【5月更文挑战第25天】 在软件测试领域,自动化是提升效率与准确性的关键。随着人工智能(AI)技术的不断进步,其在自动化测试中的应用越来越广泛,特别是在测试决策过程中。本文将探讨一种基于AI的决策框架,它能够实时分析软件质量数据,预测潜在缺陷,并提出优化测试策略的建议。通过引入机器学习算法和数据分析技术,该框架旨在提高测试覆盖率,降低错误检出成本,并最终实现智能、自适应的测试流程。
|
21天前
|
人工智能 自然语言处理 算法
分享几个.NET开源的AI和LLM相关项目框架
分享几个.NET开源的AI和LLM相关项目框架
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试中AI驱动的决策框架设计与实现
【5月更文挑战第5天】 在软件测试领域,自动化测试已成为提升测试效率和质量的关键手段。然而,随着软件系统的复杂性增加,传统的自动化测试方法面临挑战,尤其在测试用例的生成、执行及结果分析等方面。本文提出一种基于人工智能(AI)的自动化测试决策框架,旨在通过智能化的算法优化测试过程,并提高异常检测的准确率。该框架结合机器学习和深度学习技术,能够自学习历史测试数据,预测高风险变更区域,自动生成针对性强的测试用例,并在测试执行过程中实时调整测试策略。此外,通过自然语言处理(NLP)技术,该框架还能对测试结果进行语义分析,进一步提供更深入的洞察。本研究不仅增强了自动化测试工具的智能性,也为软件质量保证提
|
1月前
|
机器学习/深度学习 人工智能 数据挖掘
【AI 生成式】半监督学习和自监督学习的概念
【5月更文挑战第4天】【AI 生成式】半监督学习和自监督学习的概念
|
1月前
|
人工智能 计算机视觉
CVPR 2024:跳舞时飞扬的裙摆,AI也能高度还原了,南洋理工提出动态人体渲染新范式
【5月更文挑战第6天】南洋理工大学研究团队在CVPR 2024会议上提出SurMo,一种动态人体渲染新方法,能高度还原视频中的人物动作和细节,如飞扬的裙摆。SurMo通过4D运动建模,结合表面运动编码、物理运动解码和4D外观解码,实现动态图像的精确合成。尽管面临复杂动作捕捉和计算资源需求的挑战,SurMo在动态人体渲染任务上表现出色,展现了表面基运动三角平面的强大表达能力。[论文链接](https://arxiv.org/pdf/2404.01225.pdf)
125 1
|
1月前
|
人工智能 自然语言处理 算法
分享几个.NET开源的AI和LLM相关项目框架
分享几个.NET开源的AI和LLM相关项目框架
|
1月前
|
机器学习/深度学习 人工智能 运维
【AI 初识】监督学习、无监督学习和强化学习定义
【5月更文挑战第2天】【AI 初识】监督学习、无监督学习和强化学习定义