Google新作 | 详细解读 Transformer那些有趣的特性(建议全文背诵)(一)

简介: Google新作 | 详细解读 Transformer那些有趣的特性(建议全文背诵)(一)

1简介


近期Vision Transformer(ViT)在各个垂直任务上均表现出非常不错的性能。这些模型基于multi-head自注意力机制,该机制可以灵活地处理一系列图像patches以对上下文cues进行编码。

一个重要的问题是,在以给定patch为条件的图像范围内,如何灵活地处理图像中的干扰,例如严重的遮挡问题、域偏移问题、空间排列问题、对抗性和自然扰动等等问题。作者通过涵盖3个ViT系列的大量实验,以及与高性能卷积神经网络(CNN)的比较,系统地研究了这些问题。并通过分析得出了ViT的以下的特性:

  1. Transformer对严重的遮挡,扰动和域偏移具有很高的鲁棒性,例如,即使随机遮挡80%的图像内容,其在ImageNet上仍可保持高达60%的top-1精度;
  2. Transformer对于遮挡的良好表现并不是由于依赖局部纹理信息,与CNN相比,ViT对纹理的依赖要小得多。当经过适当训练以对基于shape的特征进行编码时,ViT可以展现出与人类视觉系统相当的shape识别能力;
  3. 使用ViT对shape进行编码会产生有趣的现象,在即使没有像素级监督的情况下也可以进行精确的语义分割;
  4. 可以将单个ViT模型提取的特征进行组合以创建特征集合,从而在传统学习模型和少量学习模型中的一系列分类数据集上实现较高的准确率。实验表明,ViT的有效特征是由于通过自注意力机制可以产生的灵活和动态的感受野所带来的。

2本文讨论主题


2.1 ViT对遮挡鲁棒否?

这里假设有一个网络模型,它通过处理一个输入图像来预测一个标签,其中可以表示为一个patch 的序列,是图像patch的总数。

虽然可以有很多种方法来建模遮挡,但本文还是选择了采用一个简单的掩蔽策略,选择整个图像patch的一个子集,,并将这些patch的像素值设为0,这样便创建一个遮挡图像。

作者将上述方法称为PatchDrop。目的是观察鲁棒性。

作者总共实验了3种遮挡方法:

  1. Random PatchDrop
  2. Salient(foreground) PatchDrop
  3. Non-salient (background) PatchDrop

1、Random PatchDrop

ViT通常将图像划分为196个patch,每个patch为14x14网格,这样一幅224x224x3大小的图像分割成196个patches,每个patch的大小为16x16x3。例如,随机从输入中删除100个这样的补丁就相当于丢失了51%的图像内容。而这个随机删除的过程即为Random PatchDrop

2、Salient(foreground) PatchDrop

对于分类器来说,并不是所有的像素都具有相同的值。为了估计显著区域,作者利用了一个自监督的ViT模型DINO,该模型使用注意力分割图像中的显著目标。按照这种方法可以从196个包含前n个百分比的前景信息的patches中选择一个子集并删除它们。而这种通过自监督模型删除显著区域的过程即为Salient (foreground) PatchDrop

3、Non-salient(background) PatchDrop

采用与SP(Salient(foreground) PatchDrop)相同的方法选择图像中最不显著的区域。包含前景信息中最低n%的patch被选中并删除。同样,而这种通过自监督模型删除非显著区域的过程即为Non-salient(background) PatchDrop

鲁棒性分析

以Random PatchDrop为例,作者给出5次测试的平均值和标准偏差。对于显著性和非显著性Patchdrop,由于获得的遮挡掩模是确定性的,作者只给出了1次运行的精度值。

Random PatchDrop 50%的图像信息几乎完全破坏了CNN的识别能力。例如,当去掉50%的图像内容时ResNet50的准确率为0.1%,而DeiT-S的准确率为70%。一个极端的例子可以观察到,当90%的图像信息丢失,但Deit-B仍然显示出37%的识别精度。这个结果在不同的ViT体系结构中是一致的。同样,ViT对前景(显著)和背景(非显著)内容的去除也有很不错的表现。

Class Token Preserves Information

为了更好地理解模型在这种遮挡下的性能鲁棒的原有,作者将不同层的注意力可视化(图4)。通过下图可以看出浅层更关注遮挡区域,而较深的层更关注图像中的遮挡以外的信息。

然后作者还研究这种从浅层到更深层次的变化是否是导致针对遮挡的Token不变性的原因,而这对分类是非常重要的。作者测量了原始图像和遮挡图像的特征/标记之间的相关系数。在ResNet50的情况下测试在logit层之前的特性,对于ViT模型,Class Token从最后一个Transformer block中提取。与ResNet50特性相比,来自Transformer的Class Token明显更鲁棒,也不会遭受太多信息损失(表1)。

image.png

此外,作者还可视化了ImageNet中12个选择的超类的相关系数,并注意到这种趋势在不同的类类型中都存在,即使是相对较小的对象类型,如昆虫,食物和鸟类。

相关文章
|
机器学习/深度学习 数据可视化 数据库
Kaggle第一人 | 详细解读2021Google地标识别第一名解决方案(建议全文背诵)(二)
Kaggle第一人 | 详细解读2021Google地标识别第一名解决方案(建议全文背诵)(二)
182 0
|
机器学习/深度学习 算法 PyTorch
Kaggle第一人 | 详细解读2021Google地标识别第一名解决方案(建议全文背诵)(一)
Kaggle第一人 | 详细解读2021Google地标识别第一名解决方案(建议全文背诵)(一)
327 0
|
机器学习/深度学习 编解码 计算机视觉
详细解读Google新作 | 教你How to train自己的Transfomer模型?
详细解读Google新作 | 教你How to train自己的Transfomer模型?
192 0
|
机器学习/深度学习 数据挖掘 计算机视觉
Google新作 | 详细解读 Transformer那些有趣的特性(建议全文背诵)(二)
Google新作 | 详细解读 Transformer那些有趣的特性(建议全文背诵)(二)
133 0
|
机器学习/深度学习 编解码 人工智能
Google Brain 新作 | diffusion合成数据集来提升ImageNet分类效果
Google Brain 新作 | diffusion合成数据集来提升ImageNet分类效果
409 0
DHL
|
存储 算法 安全
[译][Google工程师] 刚刚发布了 Fragment 的新特性 “Fragment 间传递数据的新方式” 以及源码分析
[译][Google工程师] 刚刚发布了 Fragment 的新特性 “Fragment 间传递数据的新方式” 以及源码分析
DHL
189 0
[译][Google工程师] 刚刚发布了 Fragment 的新特性 “Fragment 间传递数据的新方式” 以及源码分析
Google Earth Engine ——MOD08_M3 V6是一个大气全球产品,包含每月1×1度网格的大气参数平均值。这些参数与大气气溶胶颗粒特性、臭氧总负荷、大气水汽、云的光学和物理特性
Google Earth Engine ——MOD08_M3 V6是一个大气全球产品,包含每月1×1度网格的大气参数平均值。这些参数与大气气溶胶颗粒特性、臭氧总负荷、大气水汽、云的光学和物理特性
229 0
Google Earth Engine ——MOD08_M3 V6是一个大气全球产品,包含每月1×1度网格的大气参数平均值。这些参数与大气气溶胶颗粒特性、臭氧总负荷、大气水汽、云的光学和物理特性
Google Earth Engine ——MOD08_M3 V6是一个大气全球产品,包含每月1×1度网格的大气参数平均值。包含气溶胶颗粒特性、臭氧总负荷、大气水汽、云的光学和物理特性以及大气稳定性等
Google Earth Engine ——MOD08_M3 V6是一个大气全球产品,包含每月1×1度网格的大气参数平均值。包含气溶胶颗粒特性、臭氧总负荷、大气水汽、云的光学和物理特性以及大气稳定性等
291 0
Google Earth Engine ——MOD08_M3 V6是一个大气全球产品,包含每月1×1度网格的大气参数平均值。包含气溶胶颗粒特性、臭氧总负荷、大气水汽、云的光学和物理特性以及大气稳定性等
|
传感器 机器学习/深度学习 知识图谱
Google Earth Engine——海洋近表层大气特性数据集是NOAA海洋表层数据包(OSB)的一部分,提供了无冰海洋表面的空气温度、风速和特定湿度的高质量气候数据
Google Earth Engine——海洋近表层大气特性数据集是NOAA海洋表层数据包(OSB)的一部分,提供了无冰海洋表面的空气温度、风速和特定湿度的高质量气候数据
162 0
Google Earth Engine——海洋近表层大气特性数据集是NOAA海洋表层数据包(OSB)的一部分,提供了无冰海洋表面的空气温度、风速和特定湿度的高质量气候数据
|
7月前
|
数据可视化 定位技术 Sentinel
如何用Google Earth Engine快速、大量下载遥感影像数据?
【2月更文挑战第9天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间范围、空间范围的遥感影像数据(包括Landsat、Sentinel等)的方法~
2691 1
如何用Google Earth Engine快速、大量下载遥感影像数据?