Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Zhenda Xie等作者

Swin Transformer为主干,清华等提出MoBY自监督学习方法,代码已开源

来自清华大学、西安交大、微软亚研的研究者提出了一种称为 MoBY 的监督学习方法,其中以 Vision Transformer 作为其主干架构,将 MoCo v2 和 BYOL 结合,并在 ImageNet-1K 线性评估中获得相当高的准确率,性能优于 MoCo v3、DINO 等网络。

近两年来,计算机视觉领域经历了两次重大转变,第一次是由 MoCo(Momentum Contrast)开创的自监督视觉表征学习,其预训练模型经过微调可以迁移到不同的任务上;第二次是基于 Transformer 的主干架构,近年来在自然语言处理中取得巨大成功的 Transformer 又在计算机视觉领域得到了探索,进而产生了从 CNN 到 Transformer 的建模转变。

不久前,微软亚研的研究者提出了一种通过移动窗口(shifted windows)计算的分层视觉 Swin Transformer,它可以用作计算机视觉的通用主干网络。在各类回归任务、图像分类目标检测语义分割等方面具有极强性能。

而在近日,来自清华大学、西安交通大学以及微软亚洲研究院的研究者也在计算机视觉领域发力,提出了名为 MoBY 监督学习方法,以 Vision Transformers 作为其主干架构,将 MoCo v2 和 BYOL 结合在一起,在 ImageNet-1K 线性评估中获得相当高的准确率:通过 300-epoch 训练,分别在 DeiT-S 和 Swin-T 获得 72.8% 和 75.0% 的 top-1 准确率。与使用 DeiT 作为主干的 MoCo v3 和 DINO 相比,性能略好,但trick要轻得多。

更重要的是,使用 Swin Transformer 作为主干架构,还能够评估下游任务中(目标检测语义分割等)的学习表征,其与最近的 ViT/DeiT 方法相比,由于 ViT / DeiT 不适合这些密集的预测任务,因此仅在 ImageNet-1K 上报告线性评估结果。研究者希望该结果可以促进对 Transformer 架构设计的监督学习方法进行更全面的评估。

  • 论文地址:https://arxiv.org/pdf/2105.04553.pdf

  • GitHub 地址:https://github.com/SwinTransformer/Transformer-SSL

 
方法介绍

监督学习方法 MoBY 由 MoCo v2 和 BYOL 这两个比较流行的监督学习方法组成,MoBY 名字的由来是各取了 MoCo v2 和 BYOL 前两个字母。MoBY 继承了 MoCo v2 中的动量设计、键队列、对比损失,此外 MoBY 还继承了 BYOL 中非对称编码器、非对称数据扩充、动量调度(momentum scheduler)。MoBY 架构图如下图 1 所示:

MoBY 包含两个编码器:在线编码器和目标编码器。这两个编码器都包含一个主干和 projector head(2 层 MLP),在线编码器引入了额外的预测头(2 层 MLP),使得这两个编码器具有非对称性。在线编码器采用梯度更新,目标编码器则是在线编码器在每次训练迭代中通过动量更新得到的移动平均值。对目标编码器采用逐渐增加动量更新策略:训练过程中,动量项值默认起始值为 0.99,并逐渐增加到 1。

学习表征采用对比损失,具体而言,对于一个在线视图(online view)q,其对比损失计算公式如下所示:

式中,κ_+ 为同一幅图像的另一个视图(view)的目标特征;κ_i 是键队列( key queue )中的目标特性;τ是 temperature 项;Κ是键队列的大小(默认为 4096)。

在训练中,与大多数基于 Transformer 的方法一样,研究者还采用了 AdamW 优化器

MoBY 伪代码如下所示:

实验

在 ImageNet-1K 上的线性评估

在 ImageNet-1K 数据集上进行线性评估是一种常用的评估学得的表征质量的方式。在该方式中,线性分类器被用于主干,主干权重被冻结,仅训练线性分类器。训练完线性分类器之后,使用中心裁剪(center crop)在验证集上取得了 top-1 准确率

表 1 给出了使用各种监督学习方法和主干网络架构的预训练模型的主要性能结果。

1.与使用 Transformer 架构的其他 SSL 方法进行比较

MoCo v3、DINO 等方法采用 ViT/DeiT 作为主干网络架构,该研究首先给出了使用 DeiT-S 的 MoBY 的性能结果,以便与该研究的方法进行合理比较。经过了 300 个 epoch 的训练,MoBY 达到了 72.8% top-1 的准确率,这比 MoCo v3 和 DINO(不含多次裁剪(multi-crop))略胜一筹,结果如表 1 所示。 

2.Swin-T VS DeiT-S

研究者还比较了在监督学习中各种 Transformer 架构的使用情况。如表 1 所示,Swin-T 达到了 75.0% top-1 的准确率,比 DeiT-S 高出 2.2%。值得一提的是,这一性能差距比使用监督学习还大(+1.5%)。

该研究进行的初步探索表明,固定 patch 嵌入对 MoBY 没有用,并且在 MLP 块之前用批归一化代替层归一化层可以让 top-1 准确率提升 1.1%(训练 epoch 为 100),如表 2 所示。

在下游任务上的迁移性能

研究者评估了学得的表征在 COCO 目标检测 / 实例分割和 ADE20K 语义分割的下游任务上的迁移性能。

1.COCO 目标检测实例分割

评估中采用了两个检测器:Mask R-CNN 和 Cascade Mask R-CNN。表 3 给出了在 1x 和 3x 设置下由 MoBY 学得的表征和预训练监督方法的比较结果。

2.ADE20K 语义分割

研究者采用 UPerNet 方法和 ADE20K 数据集进行评估。表 4 给出了监督和自监督预训练模型的比较结果。这表明 MoBY 的性能比监督方法稍差一点,这意味着使用 Transformer 架构进行监督学习具有改进空间。

消融实验

研究者又进一步使用 ImageNet-1K 线性评估进行了消融实验,其中 Swin-T 为主干网络架构。

1.不对称的 drop path rate 是有益的

对于使用图像分类任务和 Transformer 架构的监督表征学习来说,drop path 是一种有效的正则化方法。研究者通过消融实验探究了该正则化方法的影响,实验结果如下表 5 所示。

2.其他超参数

第一组消融实验探究了键队列大小 K 从 1024 到 16384 的影响,实验结果如表 6(a) 所示。该方法在不同 K(从 1024 到 16384)下都能够稳定执行,其中采用 4096 作为默认值。

第二组消融实验探究了温度(temperature)τ的影响,实验结果如表 6(b) 所示。其中τ为 0.2 时性能最佳,0.2 也是默认值。

第三组消融实验探究了目标编码器的初始动量值的影响,实验结果如表 6(c) 所示。其中值为 0.99 时性能最佳,并被设为默认值。


理论自监督学习清华大学Swin Transformer
1
相关数据
微软亚洲研究院机构

微软亚洲研究院于1998年在北京成立,是微软公司在亚太地区设立的基础及应用研究机构,也是微软在美国本土以外规模最大的一个研究院。微软亚洲研究院从事自然用户界面、智能多媒体、大数据与知识挖掘、人工智能、云和边缘计算、计算机科学基础等领域的研究,致力于推动计算机科学前沿发展,着眼下一代革命性技术的创新,助力微软实现长远发展战略。

www.msra.cn
清华大学机构

清华大学(Tsinghua University),简称“清华”,由中华人民共和国教育部直属,中央直管副部级建制,位列“211工程”、“985工程”、“世界一流大学和一流学科”,入选“基础学科拔尖学生培养试验计划”、“高等学校创新能力提升计划”、“高等学校学科创新引智计划”,为九校联盟、中国大学校长联谊会、东亚研究型大学协会、亚洲大学联盟、环太平洋大学联盟、清华—剑桥—MIT低碳大学联盟成员,被誉为“红色工程师的摇篮”。 清华大学的前身清华学堂始建于1911年,因水木清华而得名,是清政府设立的留美预备学校,其建校的资金源于1908年美国退还的部分庚子赔款。1912年更名为清华学校。1928年更名为国立清华大学。1937年抗日战争全面爆发后南迁长沙,与北京大学、南开大学组建国立长沙临时大学,1938年迁至昆明改名为国立西南联合大学。1946年迁回清华园。1949年中华人民共和国成立,清华大学进入了新的发展阶段。1952年全国高等学校院系调整后成为多科性工业大学。1978年以来逐步恢复和发展为综合性的研究型大学。

http://www.tsinghua.edu.cn/
相关技术
线性分类器技术

机器学习通过使用对象的特征来识别它所属的类(或组)来进行统计分类。线性分类器通过基于特征的线性组合的值进行分类决策。 对象的特征也称为特征值,通常在称为特征向量的向量中呈现给机器。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

伪代码技术

伪代码,又称为虚拟代码,是高层次描述算法的一种方法。它不是一种现实存在的编程语言;它可能综合使用多种编程语言的语法、保留字,甚至会用到自然语言。 它以编程语言的书写形式指明算法的职能。相比于程序语言它更类似自然语言。它是半形式化、不标准的语言。

表征学习技术

在机器学习领域,表征学习(或特征学习)是一种将原始数据转换成为能够被机器学习有效开发的一种技术的集合。在特征学习算法出现之前,机器学习研究人员需要利用手动特征工程(manual feature learning)等技术从原始数据的领域知识(domain knowledge)建立特征,然后再部署相关的机器学习算法。虽然手动特征工程对于应用机器学习很有效,但它同时也是很困难、很昂贵、很耗时、并依赖于强大专业知识。特征学习弥补了这一点,它使得机器不仅能学习到数据的特征,并能利用这些特征来完成一个具体的任务。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

语义分割技术

语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类。图像语义分割是AI领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。

动量技术

优化器的一种,是模拟物理里动量的概念,其在相关方向可以加速SGD,抑制振荡,从而加快收敛

批归一化技术

批归一化(Batch Normalization,BN)由谷歌于2015年提出,是一个深度神经网络训练的技巧,它不仅可以加快模型的收敛速度,还能在一定程度上缓解深层网络中的“梯度弥散”问题,从而使得训练深层网络模型更加容易和稳定。目前BN已经成为几乎所有卷积神经网络的标配技巧了。从字面意思看来Batch Normalization(简称BN)就是对每一批数据进行归一化。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

层归一化技术

深度神经网络的训练是具有高度的计算复杂性的。减少训练的时间成本的一种方法是对神经元的输入进行规范化处理进而加快网络的收敛速度。层规范化是在训练时和测试时对数据同时进行处理,通过对输入同一层的数据进行汇总,计算平均值和方差,来对每一层的输入数据做规范化处理。层规范化是基于批规范化进行优化得到的。相比较而言,批规范化是对一个神经元输入的数据以mini-batch为单位来进行汇总,计算平均值和方法,再用这个数据对每个训练样例的输入进行规整。层规范化在面对RNN等问题的时候效果更加优越,也不会受到mini-batch选值的影响。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

实例分割技术

实例分割是检测和描绘出现在图像中的每个不同目标物体的任务。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

自监督学习技术

一个例子中的内容特别多,而用一个例子做一个任务,就等于把其他的内容浪费了,因此我们需要从一个样本中找出多个任务。比如说遮挡图片的一个特定部分,用没遮挡部分来猜遮挡的部分是一个任务。那么通过遮挡不同的部分,就可以用一个样本完成不同任务。Yann Lecun描述的这个方法被业界称作「自监督学习」

推荐文章
暂无评论
暂无评论~