自监督学习如何兼顾语义对齐与空间分辨能力?清华、商汤提出「SIM」方法

简介: 自监督学习如何兼顾语义对齐与空间分辨能力?清华、商汤提出「SIM」方法


对于本文提出的全新自监督学习方法 Siamese Image Modeling 中,网络从同一图像的遮盖视图预测另一个增强视图的密集特征,使其兼顾 Instance Discrimination 方法的语义对齐能力和 Masked Image Modeling 方法的空间分辨能力。



论文链接:https://arxiv.org/abs/2206.01204


自监督学习长久以来都是视觉领域努力追求的目标,它能够帮助我们利用大量的无标注数据,并且推动了很多下游任务的进步。


为了有效地以自监督的方式训练网络,研究者们提出了各式各样的 “代理任务”(pretext task)来生成监督信号,其中最为典型的有两类框架:Instance Discrimination(ID)与 Masked Image Modeling(MIM)。


ID 方法希望拉近相同图像的不同增强视图,同时避免特征坍塌(包括 MoCo、BYOL、Barlow Twins 等方法)。这种方法学习到的特征往往具有很强的线性可分性,所以 ID 方法在线性分类任务上表现出色,但是近期的一些研究表明它在下游的检测任务上并不优于监督学习。另一方面,MIM 方法通过一张遮盖图像来重建原始图像(包括 BEiT、MAE 等方法),它通常在检测任务上表现优异,但是不能做好线性分类任务,而且在少样本场景下表现一般。


为了解决这些矛盾,来自清华和商汤的研究者们提出:这种差异是因为两种方法各自忽略了特征所需要的语义对齐和空间分辨能力。具体来说:


  • 语义对齐能力要求语义相似的图像能被映射到邻近的特征表示,这可以通过对比相同图像的不同增强视图来达到;
  • 空间分辨能力要求特征能够建模图像内部的空间结构,而通过遮盖图像去预测密集特征表示能够帮助达成这点,因为这种做法建模了图像内部的条件分布。



基于这些思考,研究者提出了 Siamese Image Modeling(SIM),该方法通过一张遮盖的增强视图来预测相同图像的另一张增强视图的密集特征表示。


为了达到这个目标,SIM 采用了孪生网络结构,该结构包含 online 和 target 两个分支。Online 分支首先将第一张遮盖视图映射到特征空间,然后基于第一张图的特征和第一、二张图的相对位置坐标来预测第二张图的特征;Target 分支则负责将第二张图映射到特征空间来获得目标特征。


通过这种方式,SIM 能够分别在线性分类任务上和 ID 方法持平,以及在检测任务上和 MIM 方法持平,研究者进一步发现即便没有全局的损失函数,SIM 也能给出很好的线性分类表现。



方法


数据增强


数据增强策略对于特征的学习有着非常重要的作用:ID 方法已经揭示了更强的空间和颜色增强对于提升线性分类效果显著;MIM 方法则采用了遮挡增强来帮助模型学习图像的局部结构。因此,SIM 保留了 ID 方法中的强数据增强策略,同时对输入给 online 分支的视图采用遮挡增强策略。


预测目标


SIM 被设计成去预测相同图像的不同增强视图的密集特征,这里将介绍预测和目标分别是如何计算的。


Online 分支负责做出预测。它首先将第一张遮挡视图 x_a 映射成特征 y_a∈R^(N_v×D),之后利用解码器 g (⋅) 基于特征 y_a,掩码词符 m 和他们的位置编码来做出预测



其中,p_a 是第一张视图 x_a 的位置编码,p_b^((u,v) ) 对应第二张视图 x_b 在 (u,v) 处的图块的位置编码,它们会在下文介绍。


Target 分支负责给出目标。它的编码器是 Online 分支编码器的滑动平均,并且接收第二张视图的所有图块并编码为目标特征 z_b∈R^(N×D)。



最后介绍解码器所需的位置编码是如何计算的。所有的图块都是以第一张视图 x_a 的左上角作为原点来计算的。具体来说,假设两张视图在原图中的位置信息分别为 (i_1,j_1,h_1,w_1) 和 (i_2,j_2,h_2,w_2 )(分别代表左上角横纵坐标与高度宽度),第一张视图的相对位置为:



第二张视图的相对位置为:



对于第二张图,尺度变化也被进一步加入位置信息中:


最后,这些信息输入到 sincos 位置编码函数中得到如下位置编码:



损失函数


SIM 采用 UniGrad 作为损失函数:



UniGrad 被采用主要出于两个原因:(1)这种对比函数是 ID 方法的统一形式;(2)它对内存更加友好:注意到通常使用的 InfoNCE 损失函数需要 O (|N|) 的内存来计算相似度,这对于有大量负样本的密集层次损失函数是不现实的;而通过先计算负样本之间的相关矩阵,UniGrad 只需要 O (D^2) 的内存消耗。


SIM 尝试将 UniGrad 施加在全局层次和密集层次,全局损失函数用全局平均的特征作为整张图的特征:


而密集损失函数将每个图块作为单独的样本,并且为了减少与全局损失函数的冲突,每个图块的特征减去了全局平均特征:



最后的总体的损失函数为:



研究者发现在短轮数下,(α_1=1,α_2=4) 给出最好的性能取舍。有趣的是,当训练轮数足够长时,只使用密集损失函数 (α_1=0,α_2=1) 也能给出很好的线性分类性能。


实验


主要结果



研究者在多种评估指标下对比了 SIM 和其它方法的性能,包括线性分类、ImageNet 全数据微调、ImageNet 1% 数据微调、COCO 上的物体检测与实例分割。


线性分类方面,SIM 可以做到和 MoCo-v3 相当的水平,同时大幅超过 MAE(400ep 大约 11 个点,1600ep 大约 8 个点);同时,即便不使用全局损失函数,SIM 也能给出不错的线性分类结果;


检测与分割任务上,SIM 超过了 MoCo-v3 大约 2 个点,也能在使用更短轮数的条件下达到与 MAE 相当的水平(400ep v.s. 1600ep);


微调任务上,SIM 在全数据微调时可以达到和之前方法相当的水平,而当只有 1% 数据可用时,SIM 能够超过 MoCo-v3 2 个点,MAE 14 个点。


消融实验



预测像素还是特征。表中(ab)和(de)说明,在使用相同视图作为输入和目标时,预测像素性能更好;而使用不同视图时,预测特征性能更好;


不同视图。表中(ae)和(cf)说明,使用不同视图能够提升线性分类大概 7-13 个点;


颜色增强。表中(ac)和(ef)说明,对于不同视图,颜色增强可以提升线性分类 3.5 个点,不过对于相同视图则没有这种提升效果。研究者猜测相同视图会将预测目标所采用的颜色增强泄露给模型,从而破坏了对颜色不变性的建模;


对 projector 与 decoder 使用 BN 还是 LN。研究者尝试将 projector 和 decoder 中的归一化层从 LN 换成 BN,表中(fg)说明这种替换对线性分类与检测任务都有一些提升;


全局损失函数。表中(gh)说明,全局损失函数有利于线性分类性能的提升,但是并不是必要的;


密集损失函数。表中(hi)说明密集损失函数能够在物体检测任务上提升 2.3 个点,在实例分割任务上提升 1.6 个点,这说明密集损失函数对下游密集预测任务是有帮助的。

相关文章
|
监控 NoSQL Java
云服务器Redis集群部署及客户端通过公网IP连接问题
目录 1、配置文件 2、启动服务并创建集群 (1)启动6个Redis服务 (2)通过客户端命令创建集群 3、客户端连接 (1)客户端配置 (2)测试用例 (3)错误日志分析 4、问题解决 (1)查redis.conf配置文件 (2)修改配置文件 (3)重新启动Redis服务并创建集群 5、故障转移期间Lettuce客户端连接问题 (1)测试用例 (2)停掉其中一个master节点,模拟宕机 (3)解决办法 1)更换Redis客户端 2)Lettuce客户端配置Redis集群拓扑刷新
|
前端开发 算法 API
鸿蒙特效教程08-幸运大转盘抽奖
本教程将带领大家从零开始,一步步实现一个完整的转盘抽奖效果,包括界面布局、Canvas绘制、动画效果和抽奖逻辑等。
412 0
鸿蒙特效教程08-幸运大转盘抽奖
|
算法 Unix Linux
linux线程调度策略
linux线程调度策略
506 0
|
Java 数据库连接 数据库
【MyBatis】spring整合mybatis教程(详细易懂)
Spring提供了一种轻量级的容器和依赖注入的机制,可以简化应用程序的配置和管理。会初始化N个数据库链接对象,一般在10个,当需要用户请求操作数据库时候,那么就会直接在数据库连接池中获取链接,用完放回连接池中。我们的实体类创建属性的时候我写get、set等方法,过于麻烦,但是我们有一个lombok,可以节约掉这些。这里是自己本地路径的MySQL的jar包,是需要更改的,路径赋值后也需要再加上。把我们的生成的BookMapper里面的方法复制到我们新建的BookBiz里面。选中对应的项目,依次选中生成。
【MyBatis】spring整合mybatis教程(详细易懂)
|
人工智能 自然语言处理 搜索推荐
科技云报到:澳门旅游局x百度智能云:打造懂游客的智能客服
科技云报到:澳门旅游局x百度智能云:打造懂游客的智能客服
599 8
|
安全 Android开发 iOS开发
安卓vs iOS:探索两种操作系统的独特魅力与技术深度###
【10月更文挑战第16天】 本文旨在深入浅出地探讨安卓(Android)与iOS这两种主流移动操作系统的特色、优势及背后的技术理念。通过对比分析,揭示它们各自如何塑造了移动互联网的生态,并为用户提供丰富多彩的智能体验。无论您是科技爱好者还是普通用户,都能从这篇文章中感受到技术创新带来的无限可能。 ###
695 2
|
存储 算法 C语言
数据结构基础详解(C语言): 二叉树的遍历_线索二叉树_树的存储结构_树与森林详解
本文从二叉树遍历入手,详细介绍了先序、中序和后序遍历方法,并探讨了如何构建二叉树及线索二叉树的概念。接着,文章讲解了树和森林的存储结构,特别是如何将树与森林转换为二叉树形式,以便利用二叉树的遍历方法。最后,讨论了树和森林的遍历算法,包括先根、后根和层次遍历。通过这些内容,读者可以全面了解二叉树及其相关概念。
469 6
|
运维 开发者 Docker
Docker容器化技术在运维中的应用实践
【8月更文挑战第27天】本文旨在探讨Docker容器化技术如何在现代运维工作中发挥核心作用,通过深入浅出的方式介绍Docker的基本概念、优势以及实际应用场景。文章将结合具体案例,展示如何利用Docker简化部署流程、提高资源利用率和加强应用的可移植性。读者将获得对Docker容器技术在实际运维中应用的全面认识,并能够理解其在提升运维效率与质量方面的重要性。
|
存储 NoSQL 安全
面向未来:理解ARM处理器的新一代技术(上)
面向未来:理解ARM处理器的新一代技术
面向未来:理解ARM处理器的新一代技术(上)
|
存储 负载均衡 网络协议
高性能网络编程 - 关于单台服务器并发TCP连接数理论值的讨论
高性能网络编程 - 关于单台服务器并发TCP连接数理论值的讨论
586 0

热门文章

最新文章