原文:A Cookbook of Self-Supervised Learning

1 自我监督学习是什么,为何必须关注?

自监督学习被誉为“智能的暗物质(the dark matter of intelligence)”,是推动机器学习发展的一条有前途的途径。与有监督学习不同的是,自监督方法可以从大量未标注的数据中进行学习,而有监督学习则受到标注数据可用性的限制。自监督学习(SSL)是深度学习在自然语言处理领域取得成功的基础,推进了从机器翻译到基于大规模网络文本语料库预训练的大型语言模型的发展。在计算机视觉领域,SSL推动了数据规模的新突破,例如SEER模型在10亿张图像上进行训练。计算机视觉领域的SSL方法已经能够匹敌或在某些情况下超越经过标注数据训练的模型,甚至在像ImageNet这样竞争激烈的基准测试中也可以达到很好的效果。SSL也已成功地应用于其他模态,例如视频、音频和时间序列。

自监督学习基于未标注的数据定义一个代理任务(pretext task),以产生具有描述性和可理解的表征。在自然语言中,一个常见的自监督学习任务是掩盖文本中的一个单词并预测周围的单词。这个预测单词周围语境的目标鼓励模型在文本中捕获单词之间的关系,而不需要任何人工标签。预训练的自监督学习模型的表征可以用于一系列下游任务,例如机器翻译、摘要、甚至生成文本等。在计算机视觉中,类似的方式可以让模型(如MAE或BYOL)学习预测图像中的某一块掩盖区域。其他自监督学习任务则鼓励将同一图像的两个视图(例如通过添加颜色或裁剪等数据增强)映射到相似的表征。

使用大规模未标注数据进行预训练具有多重优势。传统的有监督学习方法通常根据可用的标注数据训练一个特定任务,而自监督学习则学习适用于不同任务的通用表征。自监督学习在医学等人工标注成本高或者特定任务不确定的领域尤为有用。此外,证据表明对应的有监督对应模型相比,自监督模型可以学习出更加鲁棒的表征,能够抵抗对抗性样本、标注破坏和输入扰动,并且更加公平。因此,自监督学习是一个受到越来越多关注的领域。然而,就像烹饪一样,训练自监督学习方法是一门需要高门槛的艺术。

阅读全文 »

作者:Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, Sergey Zagoruyko

DETR

DETR(DEtection TRansformer)是一种基于Transformer的端到端目标检测方法,它将目标检测视为集合预测问题(set prediction problem)。DETR简化了检测流程,去除了人为先验的部分(如:NMS或手工设计的anchor),并且易于扩展到其他视觉任务(如:图像分割)。

DETR的主要组成部分是基于集合的全局损失,通过二分图匹配进行一对一的预测,以及使用Transformer的编码器解码器架构。简单来说,DETR包含下面的流程:

  1. CNN抽取特征;
  2. 利用Transformer全局特征建模;
  3. 生成预测框;
  4. 与GT匹配计算损失。

总结,DETR的优势包含以下几个方面:

  1. 真正的端到端,需要更少的人工先验(没有anchor、NMS等);
  2. 在COCO数据集上的准确率和推理效率与Faster R-CNN基本持平,且对大目标效果较好;
  3. 不需要任何自定义层。

然而,DETR也存在下面几个缺点:

  1. 训练时间较长:DETR收敛速度慢(500个epoch);
  2. 对小目标的检测性能不佳;
  3. 计算量大:尽管DETR简化了目标检测流程,但其计算成本仍然较高,因此不适合实时应用场景。
DETR_architecture
阅读全文 »

作者:Zhe Chen, Yuchen Duan, Wenhai Wang, Junjun He, Tong Lu, Jifeng Dai, Yu Qiao

ViT-Adapter

与其他的ViT变体(Swin、PVT等)相比,普通ViT由于缺乏图像的先验信息,在密集预测任务上的性能较差。为了解决这一问题,文中提出了 ViT-Adapter,使普通的 ViT 能够在视觉特定的 Transformer 上取得可比较的性能。具体来说,该框架的主干网络是一个普通的 ViT,可以从大规模多模态数据中学习强大的表示。在迁移到下游任务时,使用一个无需预训练的适配器将与图像相关的归纳偏置引入模型

previous paradigm vs. vit-adapter paradigm

阅读全文 »

作者:Wenwei Zhang, Jiangmiao Pang, Kai Chen, Chen Change Loy

K-Net

现有的图像分割任务,如语义分割、实例分割和全景分割,尽管这些任务存在内在联系,但它们都用了不同的框架来处理。K-Net通过使用一组可学习的kernel(卷积核)来实现各项图像分割任务的统一,每个kernel负责为潜在的实例(instance kernel)或背景类别(semantic kernel)生成一个对应的掩膜。

为了解决区分不同实例的困难,文中提出了kernel更新的策略,该策略使得每个kernel都能根据输入图像中的信息动态地、有条件地更新。

K-Net通过二分图匹配的方式进行端到端训练,避免了使用NMS或其他后处理。

K-Net Segmentation Framework
阅读全文 »

作者:Jitesh Jain, Jiachen Li, MangTik Chiu, Ali Hassani, Nikita Orlov, Humphrey Shi

OneFormer

传统的图像分割方法需要使用不同的架构、模型或者数据集来处理不同的分割任务(语义分割、实例分割和全景分割),这篇文章介绍了一个通用的图像分割框架——OneFormer。OneFormer通过引入了任务输出(task token),使得同一个模型在训练时具有任务导向性,同时在推理时可以根据任务动态调整。

OneFormer中提出了以下两个问题:

  • 为什么现有的全景分割架构(如:Mask2Former)无法用单一训练过程或模型处理所有的图像分割任务?

作者认为现有方法需要每个任务独立训练的原因在于这些架构没有加入任务指导(task guidance)。因此在联合训练或使用单一模型时,难以学习不同任务之间的差异。为此,OneFormer架构中引入了task token,以指导模型区分不同的任务。这个task token就是一段文本:“the task is {task}”,其中的task可以从panopticinstancesemantic中选取。

  • 在单次联合训练过程中,如何使模型更好地建模不同任务之间以及不同类别之间的差异?

作者认为计算对象查询表征和对应的文本表征之间的对比损失可以帮助模型更好地学习任务之间和类别之间的差异。

Universial Image Segmentation
阅读全文 »

作者:Sara Hooker, Aaron Courville, Gregory Clark, Yann Dauphin, Andrea Frome

Compressed DNNs Forget

深度神经网络的剪枝量化展示了其在高度压缩的情况了也能达到相当高的测试精度。在本文中,作者认为:当前衡量模型性能的方法掩盖了不同类别和不同图像受模型压缩影响的显著差异。

具有不同参数量的模型,尽管具有相当的整体表现(top-line performance),但在数据集的一个小的子集上的表现会有很大的不同。这一个小子集称为Pruning Identified Exemplars(PIEs)

人类大脑中的突触(synapses)数量在从婴儿期到成年期经历了先增加后减少的变化。突触剪枝(synaptic pruning)通过减少多余的神经元、增强对环境最有用的突触连接来提高效率。尽管失去了50%的突触结构,人体的大脑仍然能够正常工作。

儿童突触连接的增长和减少

文章表明:

  • 衡量整体精度(如:top-1 Accuracy)来比较模型压缩后的影响不够准确,应该聚焦到每个特定的类别,来衡量模型量化对特定类别的影响。模型压缩造成的影响不是均匀(uniformly)变化的,而是对于某些类别精度保持不变,某些类别对网络中权重的变化更为敏感。
  • 模型压缩减弱了模型对不太频繁出现的长尾样本的预测能力
  • 裁剪后的网络对自然对抗图像(natural adversarial images)和退化(corruptions)(模糊、噪声、云雾)的图像更敏感

自然对抗样本

  • 模型剪枝的影响要大于模型量化的影响
阅读全文 »

作者:Ze Liu, Yutong Lin, Yue Cao, Han Hu, Yixuan Wei, Zheng Zhang, Stephen Lin, Baining Guo

Swin Transformer

ViT证明了一个经过简单调整的普通Transformer,可以在ImageNet数据集上与最有效的CNN达到差不多甚至更好的效果,但它尚未用于其他视觉任务(例如:目标检测、语义分割等)。Swin Transformer的提出正是为了解决这一问题,由于其在各项视觉任务中具有优异的性能,因此是目前常用的一种骨干网络。

ViT直接用于目标检测、语义分割等任务,会存在一些问题,最明显的两个是:(1)ViT的计算复杂度与图像大小成平方关系;(2)ViT中单一尺度、固定大小的图像块(\(16 \times 16\))不适用于处理具有多尺度目标的视觉问题。

Swin Transformer作为ViT的改进,引入了两个关键的方法:层级式的特征图移动窗口的注意力机制。Swin的名字也正是来自移动窗口(Shifted windows)。Swin Transformer由于引入了这两个改进,所以在方法上相对要复杂不少。

Swin Transformer architecture

阅读全文 »

作者:Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, Neil Houlsby

Vision Transformer

基于自注意力机制的模型,尤其是Transformer,已经成为NLP中的首选模型。它们通过在大型语料库上进行预训练,然后在较少的任务数据集上进行微调,可以取得最优的性能。由于Transformer的计算效率和可扩展性,现在已经可以训练超过\(100B\)参数的大模型(实际上,目前的GPT-4由\(8\)\(220B\)模型组成),并且随着模型参数和数据集的不断增长,还没有出现性能饱和的现象

受Transformer的启发,Vision Transformer(ViT)在19年首次提出后,就以惊人之势席卷了计算机视觉领域,在几个月内获得了数百次引用。ViT的工作证实了一个经过简单调整用来处理图像数据的普通Transformer,可以与最有效的卷积神经网络达到差不多的效果

ViT的结构相对比较简单,相对于普通Transformer的改动仅限于生成patch embedding和可学习得class token部分:

  • 将图像划分为多个patch(类似NLP中的token),将其展平并投影到\(D\)维嵌入空间,得到patch embedding
  • 将patch embedding与position embedding相加,然后拼接上一个可学习的class token,就可以输入Transformer编码器进行处理。position embedding是一组可学习的向量,让模型保留位置信息。
  • 最后,在class token上使用分类头,让模型进行图像分类任务。

vision_transformer

ViT在公开ImageNet-21k数据集和Google内部JFT-300M数据集上预训练后,在CIFAR-10、CIFAR-100和ImageNet等数据集上进行分类,都取得了最优的精度。

这一巨大提升是由于ViT没有引入归纳偏置(inductive bias)所导致的,即卷积的平移不变性(translation equivariance)局部性(locality)。通过减少对数据的假设,ViT能够更好地适应给定的任务。然而,没有归纳偏置的代价是需要大规模数据集预训练,在小数据集(或没有预训练权重)的情况下,CNNs仍是更好的选择。这说明了大规模预训练的结果是要好于归纳偏置的。

阅读全文 »

作者:Alexander Kirillov, Yuxin Wu, Kaiming He, Ross Girshick

PointRend

本文将图像分割问题视作渲染问题,并借鉴计算机图形学的经典思想来高效地“渲染”高质量的标签图,提出了PointRend(Point -based Rendering)模块。PointRend在根据迭代细分算法自适应选择的位置上(精心选择的位置)执行基于点的分割预测,并且可以灵活地应用于实例和语义分割任务。PointRend模块的重点在于解决图像分割任务中边界分割不够精细的问题。

传统的卷积神经网络在处理图像分割任务时,通常会在固定的网格上进行预测。规则的网格在图像的平滑区域会过采样(oversampling),而在边界区域则会出现欠采样(undersampling)的情况。因此导致了在平滑区域上进行了多余的计算,而在处理边界细节时可能会产生模糊的结果(边界过于平滑)。

在计算机图形学中,渲染是将模型(例如,3D网格)映射到栅格化图像的过程。尽管输出是一个规则的网格,但计算并不会均匀地分配在网格上。相反,一种常见的策略是在图像平面的一个不规则子集中计算像素值,例如通过四叉树的方式。这样可以高效地渲染抗锯齿、高分辨率的图像。

基于这个类比,作者提出了PointRend方法进行图像分割,PointRend会迭代地、自适应地选取一组非均匀的点来计算标签

基于PointRend的分割效果

阅读全文 »
0%