TRansfoRMeR 作为一种基于注意力的编码器 – 解码器架构,不仅彻底改变了自然语言处理(NLP)领域,还在计算机视觉(CV)领域做出了一些开创性的工作。与卷积神经网络(CNN)相比,视觉 TRansfoRMeR(VIT)依靠出色的建模能力,在多个基准上取得了非常优异的性能。
近日,一位名为 NiKOLas Adaloglou 的博主撰写了一篇博客长文,综述了 VIT 领域的进展以及 VIT 与其他学科的交叉应用。
本文作者 NiKOLas Adaloglou。
NiKOLas Adaloglou 是一名机器学习工程师,他对和 AI 相关的 3D 医学成像、图像和视频分析、基于图的深度学习模型以及生成式深度学习感兴趣,致力于借助机器学习推动医学工程的发展。
以下是博客原文:
VIT 的灵感来源于自然语言处理中的自注意力机制,其中将词嵌入替换成了 patch 嵌入。
以合理的规模训练 VIT知识蒸馏
在 Kaggle 等深度学习竞赛中,集成(enSEMble)是非常流行的一种方法。集成大体上是指平均多个已训练模型的输出以进行预测。这种简单的方法非常适合提高测试时的性能,然而它在推理过程中会慢 N 倍(其中 N 表示模型数量)。当在嵌入式设备中部署此类神经网络时,这就成了一个棘手的问题。解决这个问题常用的一种方法是知识蒸馏。
在知识蒸馏中,小模型(学生模型)通常是由一个大模型(教师模型)监督,算法的关键是如何将教师模型的知识迁移给学生模型。
尽管没有足够的基础理论支持,但知识蒸馏已被证明是一种非常有效的技巧。关于为什么集成的输出分布能提供与集成相当的测试性能,还有待发现。而使用集成的输出(略有偏差的平滑标签)相对于真实标签存在性能增益,这更加神秘。
DeIT 模型通过注意力训练数据高效的图像 TRansfoRMeR 和蒸馏,这表明在没有外部数据的情况下,仅在 imageNet 上训练 VIT 是可以的。该研究使用来自 Resnet 的已训练好的 CNN 模型作为单一教师模型。直观地讲,强大的数据假设(归纳偏置)让 CNN 比 VIT 更适合做教师网络。
自蒸馏
令人惊讶的是,有研究发现类似方法也可以通过对同一架构的单个模型(教师网络)进行知识蒸馏来实现。这个过程被称为自蒸馏,来自于 Zhang et al.2019 年的论文《Be YouR Own TeacheR: IMProve the performance of Convolutional NeuRal NetwoRks via Self Distillation》。自蒸馏就是一种 N=1 的知识蒸馏,自蒸馏(使用具有相同架构的单个训练模型)也可以提高测试准确率。
VIT 的 HaRd-label 蒸馏:DeIT 训练策略
在这种方法中,一个额外的可学习全局 Token(即蒸馏 Token),与 VIT 的 patch 嵌入相连。最关键的是,蒸馏 Token 来自训练有素的教师 CNN 主干网络。通过将 CNN 特征融合到 TRansfoRMeR 的自注意力层中,研究者们在 imagenet 的 1M 数据上训练 DeIT。
DeIT 模型概览。
DeIT 使用如下损失函数进行训练:
其中 CE 是交叉熵损失函数,&sigMa; 是 softMax 函数。Z_cls 和 Z_distill 分别是来自类 Token 和蒸馏 Token 的学生模型的输出,ytRue 和 yteacheR 分别是 gRound tRuth 和教师模型的输出。
这种蒸馏技术使模型用更少的数据获得超强的数据增强,这可能会导致 gRound tRuth 标签不精确。在这种情况下,教师网络似乎会产生更合适的标签。由此产生的模型系列,即数据高效图像 TRansfoRMeR(DeITs),在准确率 / 步长时间上与 EFFicientNet 相当,但在准确率 / 参数效率上仍然落后。
除了蒸馏,还有一些研究大量使用图像增强来弥补缺乏可用的额外数据。此外,DeIT 依赖于随机深度等数据正则化技术。最终,强大的增强和正则化限制了 VIT 在小数据机制中的过拟合趋势。
PyRaMid 视觉 TRansfoRMeR
为了克服注意力机制的二次复杂度,PyRaMid 视觉 TRansfoRMeR(PVT)采用一种称为空间减少注意力 (SRA) 的自注意力变体。其特征是键和值的空间减少,类似于 NLP 领域的 LinfoRMeR 注意力。
通过应用 SRA,整个模型的特征空间维度缓慢减少,并通过在所有 tRansfoRMeR block 中应用位置嵌入来增强顺序的概念。PVT 已被用作目标检测和语义分割的主干网络,以处理高分辨率图像。
后来,该研究团队推出改进版 PVT-v2,主要改进如下:
重叠 patch 嵌入;卷积前馈网络;线性复杂度自注意力层。
Swin TRansfoRMeR:使用移位窗口的分层视觉 TRansfoRMeR
Swin TRansfoRMeR 旨在从标准 NLP tRansfoRMeR 中建立局部性的思想,即局部或窗口注意力:
在 Swin TRansfoRMeR 中,局部自注意力被用于非重叠窗口。下一层的窗口到窗口通信通过逐步合并窗口来产生分层表征。
局部自注意力随图像大小线性缩放 O (M*N) 而不是 O (N^2),在用于序列长度 N 和 M 窗口大小。
通过合并添加许多局部层,有一个全局表示。此外,特征图的空间维度已显着降低。作者声称在 imageNet-1K 和 imageNet-21K 上都取得了有希望的结果。
视觉 TRansfoRMeR 的自监督训练:DINO
FACEbook AI 的研究提出了一个强大的框架用于训练大规模视觉数据。提议的自监督系统创建了如此强大的表征,你甚至不需要在上面微调线性层。这是通过在数据集的冻结训练特征上应用 K – 最近邻 (NN) 来观察到的。作者发现,训练有素的 VIT 可以在没有标签的情况下在 imageNet 上达到 78.3% 的 top-1 准确率。
对于 CNN 架构来说,该框架并不像对视觉 TRansfoRMeR 那样有益。那又该如何从图像中提取什么样的特征?
Scaling 视觉 TRansfoRMeR
深度学习和规模是相关的。事实上,规模是很多 SOTA 实现的关键因素。在这项研究中,来自 Google BRAIn ReSeaRch 的作者训练了一个稍微修改过的 VIT 模型,它有 20 亿个参数,并在 imageNet 上达到了 90.45 % 的 top-1 准确率。这种过度参数化的一般化模型在少样本学习上进行了测试,每类只有 10 个示例情况下。在 imageNet 上达到了 84.86% 的 top-1 准确率。
小样本学习是指在样本数量极其有限的情况下对模型进行微调。小样本学习的目标通过将获得的预训练知识稍微适应特定任务来激励泛化。如果成功地预训练了大型模型,那么在对下游任务非常有限的理解(仅由几个示例提供)的情况下表现良好是有意义的。
模型大小可能会限制表征质量,前提是有足够的数据来提供它;大型模型受益于额外的监督数据,甚至超过 1B 图像。
上图描绘了从 300M 图像数据集 (JFT-300M) 切换到 30 亿图像 (JFT-3B) 而不进行任何进一步缩放的效果。中型 (B/32) 和大型 (L/16) 模型都受益于添加数据,大致是一个常数因子。结果是在整个训练过程中通过小样本(线性)评估获得的。
大模型的样本效率更高,以更少的可见图像达到相同的错误率水平。为了节省内存,他们删除了类 Token (cls)。相反,他们评估了全局平均池化和多头注意力池化,以聚合所有 patch Token 的表征。他们对头部和称为「主干」的其余层使用了不同的权重衰减。作者在下图中很好地证明了这一点。框值是小样本精度,而横轴和纵轴分别表示主干和头部的权重衰减。令人惊讶的是,头部的更强衰减会产生最好的结果。作者推测,头部的强烈权重衰减会导致表示具有更大的类之间的余量。
这或许是可以更广泛地应用于预训练 VIT 的最有趣的发现。
他们在训练开始时使用了热身阶段,在训练结束时使用了冷却阶段,其中学习率线性退火为零。此外,他们使用了 AdaFAcTor 优化器,与传统的 AdaM 相比,内存开销为 50%。
在同一个波长,你可以找到另一个大规模的研究:《如何训练你的 VIT?视觉 TRansfoRMeR 中的数据、增强和正则化》
替代自注意力:独立 Token + 通道混合方式
众所周知,自注意力可以作为一种具有快速权重的信息路由机制。到目前为止,有 3 篇论文讲述了同样的故事:用 2 个信息混合层替换自注意力;一种用于混合 Token(投影 patch 向量),一种用于混合通道 / 特征信息。
MLP-MixeR 包含两个 MLP 层:第一个独立应用于图像 patch(即「混合」每个位置的特征),另一个跨 patch(即「混合」空间信息)。
XCIT:互协方差图像 TRansfoRMeR
另一个是最近的架构 XCIT,旨在修改 VIT 的核心构建 block:应用于 Token 维度的自注意力。
XCA:对于信息混合,作者提出了一种交叉协方差注意力 (XCA) 函数,该函数根据 Token 的特征维度而不是根据其本身进行操作。重要的是,此方法仅适用于 queRies、keYs、values 集的 L2 归一化。L2 范数用 K 和 Q 字母上方的 hat 表示。乘法的结果在 softMax 之前也归一化为 [-1,1]。
局部 Patch 交互:为了实现 patch 之间的显式通信,研究者添加了两个 depth-wise 3&tiMes;3 卷积层,中间有批归一化和 GELU 非线性。Depth-wise 卷积独立应用于每个通道(这里的 patch)。
ConvMixeR(加链接:patch 成为了 ALL You Need?挑战 VIT、MLP-MixeR 的简单模型来了)
自注意力和 MLP 理论上是更通用的建模机制,因为它们允许更大的感受野和内容感知行为。尽管如此,卷积的归纳偏差在计算机视觉任务中具有不可否认的成果。
受此启发,研究者提出了另一种基于卷积网络的变体,称为 ConvMixeR。主要思想是它直接对作为输入的 patch 进行操作,分离空间和通道维度的混合,并在整个网络中保持相同的大小和分辨率。
多尺度视觉 TRansfoRMeR
CNN 主干架构受益于通道的逐渐增加,同时降低了特征图的空间维度。类似地,多尺度视觉 TRansfoRMeR (MVIT) 利用了将多尺度特征层次结构与视觉 TRansfoRMeR 模型相结合的想法。在实践中,作者从 3 个通道的初始图像大小开始,逐渐扩展(分层)通道容量,同时降低空间分辨率。
因此,创建了一个多尺度的特征金字塔。直观地说,早期层将学习高空间与简单的低级视觉信息,而更深层负责复杂的高维特征。
视频分类:TiMesfoRMeR
在图像任务成功后,视觉 TRansfoRMeR