作者 | 陈萍、杜伟

来源 | 机器之心

CNN 通过堆叠更多的卷积层来提高性能,而 transformer 在层次更深时会很快进入饱和。基于此,来自新加坡国立大学和字节跳动 AI Lab 的研究者引入了 Re-attention 机制,以很小的计算代价重新生成注意力图以增强各层之间的多样性。提出的 DeepViT 模型也实现了非常不错的性能。

视觉 transformer (ViT) 现已成功地应用于图像分类任务。近日,来自新加坡国立大学和字节跳动美国 AI Lab 的研究者表明,不同于卷积神经网络通过堆叠更多的卷积层来提高性能,ViT 的性能在扩展至更深时会迅速饱和。

他们是如何得出这一结论的呢?

具体而言,研究者根据经验观察到,这种扩展困难是由注意力崩溃(attention collapse)引起的:随着 Transformer 加深,注意力图在某些层之后逐渐变得相似甚至几乎相同。换句话说,在 deep ViT 模型的顶层中,特征图趋于相同。这一事实表明,在更深层的 ViT 中,自注意力机制无法学习有效的表征学习概念,并且阻碍了模型获得预期的性能提升。

基于以上观察,研究者提出了一种简单而有效的方法 Re-attention,它可以忽略计算和存储成本重新生成注意力图以增加其在不同层的多样性。借助于该方法,我们可以通过对现有 ViT 模型的微小修改来训练具有持续性能改进的更深的 ViT 模型。此外,当使用 32 个 transformer 块训练 DeepViT 模型时,在 ImageNet 数据集上实现了颇具竞争力的 Top-1 图像分类准确率。相较于 ViT-32B, 变体模型 DeepViT-32B 的 Top-1 准确率提升了 1.6%。

论文链接:https://arxiv.org/pdf/2103.11886.pdf

ViT 模型

如下图 2 所示,ViT 模型由三部分组成:用于 patch 嵌入的线性层、具有多头自注意力和特征编码前馈层的 transformer 块、以及用于分类得分预测的线性层。研究者首先回顾了 transformer 块的独特性,特别是自注意力机制,然后研究了自注意力的崩溃问题。

具有 N 个 transformer 块的原版 ViT 模型与该研究所提 DeepViT 模型的结构对比。

注意力崩溃

受深度 CNN 成功的启发,研究者对 ViT 随深度的增加带来的性能改变进行了系统的研究。在不失一般性的情况下,他们首先将隐藏维数和注意力头数分别固定为 384 和 12,然后堆叠不同数量的 transformer 块(数量从 12 到 32),以建立对应不同深度的多个 ViT 模型。在 ImageNet 数据集上,原版 ViT 和 DeepViT 的图像分类 Top-1 准确率变化曲线如下图 1 所示:

结果表明,随着模型深度的增加,分类准确率提升缓慢,饱和速度加快。更具体地说,在采用 24 个 transformer 块时,性能停止提升。这种现象表明,现有的 ViT 很难在更深的架构中提高性能。

为了衡量注意力图在不同层上的改变,研究者计算了来自不同层的注意力图之间的跨层相似性:

其中和四个因素有关:p 和 q 是两个不同的层、h 是注意力头、t 是具体的输入,结果如下图 3 所示。图(a)表明了随着深度的增加,注意力图和 k 个附近块的注意力图越来越相似;图(c)表明了即使到了第 32 个 block,同层注意力头之间的相似度还是比较低的,这说明主要的相似还是层之间的相似。

为了了解注意力崩溃如何影响 ViT 模型的性能,研究者进一步探索了它是如何影响更深层次的特征学习。对于特定的 32 块 ViT 模型,通过研究它们的余弦相似性,将最终输出特征与每个中间 transformer 块的输出进行比较。

下图 4 中的结果表明:特征图与注意力图相似性非常高,并且学习的特征在第 20 个块之后停止变化。注意力相似度的增加与特征相似度之间存在着密切的相关性。这一观察表明注意力崩溃是 ViT 不可扩展的原因。

DeepViT 中的 Re-attention

如上所述,将 ViT 扩展到更深层的一个主要障碍是注意力崩溃问题。因此,研究者提出了两种解决方法,一种是增加计算自注意力的隐藏维度,另一种是新的 re-attention 机制。

高维空间中的自注意力

克服注意力崩溃的一个解决方案是增加每个 token 的嵌入维度,这将提升每个 token 嵌入的表征能力,以编码更多信息。因此,所得到的注意力图更具多样性,降低每个块注意力图之间的相似性。在不丧失一般性的前提下,该研究通过一组基于 ViT 模型的实验验证了这种方法,其中有 12 个块用于快速实验。根据先前基于 transformer 的工作,研究者选择了四个嵌入维度,范围从 256 到 768。详细配置结果如下表所示:

下图 5 展示了嵌入维数对生成的跨层自注意力图相似性的影响。可见,随着嵌入维数的增加,相似注意力图的数目减少。然而,模型尺寸也迅速增加。

Re-attention

上文证明了在高维、尤其在深层网络中,不同 transformer 块之间注意力图存在相似性。然而,研究者发现同一 transformer 块不同 head 的注意力图相似性相当小,如上图 3(c) 所示。显然,来自同一自注意力层的不同 head 关注输入 token 的不同方面。基于这一观察,研究者建议建立 cross-head 通信来重新生成注意力图,训练 deep ViT 性能会更好。

具体而言,该研究以 head 的注意力图为基础,通过动态地聚合它们来生成一组新的注意力图。采用一个变换矩阵和 multi-head attention maps 相乘来得到新的 map,这个变换矩阵是可学习的。公式如下:

实验

在实验部分,研究者首先通过实验进一步证明注意力崩溃问题,然后通过大量的控制变量实验来证明 Re-attention 方法的优势。该研究通过将 Re-attention 融入到 transformer 中,设计了两个改进版 ViT,并命名为 DeepViT。最后将 DeepViT 与具有 SOTA 性能的模型进行了比较。

注意力崩溃分析

当模型越深时,越深区块的注意力图就越相似。这意味着在 deep ViT 模型上添加更多的块可能不会提高模型性能。为了进一步验证这一说法,研究者设计了一个实验,以重用在 ViT 早期块上计算的注意力图并替换它之后的注意力图。结果如下表 3 所示:

Re-attention 机制

Re-attention 与 Self-attention 对比。研究者首先评估了 Re-attention 有效性,直接将 ViT 中的 self-attention 替换为 Re-attention 模块。下表 4 展示了在 ImageNet 数据集上,不用数量 transformer 块时的 Top-1 准确率对比:

表 4:ImageNet Top-1 准确率。

与 SOTA 模型对比

研究者在 Re-attention 基础上设计了两个 ViT 变体,即 DeepViT-S 与 DeepViT-L,两个变体分别具有 16 和 32 个 transformer 块。对于这两个模型,Re-attention 均替代 self-attention。

为了得到和其他 ViT 模型相似的参数量,研究者相应地调整了嵌入维度,结果如下表 6 所示:DeepViT 模型在参数量更少的情况下实现了比最近 CNN 和 ViT 模型更好的 Top-1 准确率。

????

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

如何做深ViT模型?NUS、字节:引入Re-attention机制,实现强大性能相关推荐

  1. Transformer太深不行?NUS字节发现注意力坍缩,提出重注意机制!

    文 | 陈萍.杜伟 源 | 机器之心 CNN 通过堆叠更多的卷积层来提高性能,而 transformer 在层次更深时会很快进入饱和.基于此,来自新加坡国立大学和字节跳动 AI Lab 的研究者引入了 ...

  2. 【20210416期AI简报】微软分层ViT模型开源、 DIY一只“眼睛”摄像头

    导读:本期为 AI 简报 20210416 期,将为您带来 7 条相关新闻~ 本文一共 2300 字,通篇阅读结束需要 5~8 分钟 1. 训练AI来玩CS反恐精英!清华朱军与剑桥博士后的这项研究太燃 ...

  3. 百度收YY,意在把搜索做深

    在中国,互联网用户数超过10亿的公司只有三家,没错,就是BAT.即使后起之秀使出浑身解数,也难以撼动三巨头在互联网生态中"水电煤"般的存在. 就在大家以为今年的BAT将安如磐石之时 ...

  4. AI周报丨中文巨量模型源1.0比GPT-3强在哪里?;谷歌用协同训练策略实现多个SOTA,单一ViT模型执行多模态多任务

    01 # 行业大事件 语言大模型的终极目标是什么? 在自然语言处理(NLP)领域,暴力美学仍在延续. 自 2018 年谷歌推出 BERT(3.4 亿参数)以来,语言模型开始朝着「大」演进.国内外先后出 ...

  5. 【深度学习】ToMe:我的方法无需训练即可加速 ViT 模型|搞懂Transformer系列

    作者丨科技猛兽 编辑丨极市平台 导读 这篇文章提出了一种无需训练即可加速 ViT 模型,提高吞吐量的方法 Token Merging (ToMe).ToMe 通过一种轻量化的匹配算法,逐步合并 ViT ...

  6. 霸榜多个CV任务,开源仅两天,微软分层ViT模型收获近2k star

    视学算法报道 转载自:机器之心 编辑:维度 屠榜各大 CV 任务的微软 Swin Transformer,近日开源了代码和预训练模型. 自 2017 年 6 月谷歌提出 Transformer 以来, ...

  7. 推荐模型-上下文感知-2017:AFM模型【FM家族】【NFM的改进版】【引入Attention机制】

    AFM可以看作是对NFM功能的增强,实际上NFM的作者参与到了AFM的研究当中.AFM模型的最大贡献是将Attention机制引入到了特征交叉模块.在NFM的BI层,对交叉特征的向量进行Sum Poo ...

  8. 从做深基础,曝光正在“变硬”的阿里云

    某个技术对于一个企业.一个行业乃至一个国家的价值,此前的数次工业革命中,已经从电力.通讯等身上得到了充分的自证和他证. 那么在当下,哪些技术可以拥有同样的雷霆之力,可以与千行万业结合的云计算,自然应该 ...

  9. dsge模型难做吗_DSGE模型到底有用吗?

    有个鸟用!!! 本人硕士毕业以后就职于国内某宏观调控部门,日常工作之一就是搞模型.做预测.由于美国和欧洲等国家的政策部门有一大批人都在研究这个,并且做出了不错的成果,因此北京的的领导提出,作为大国宏观 ...

最新文章

  1. Linux下命令执行顺序控制与管道
  2. 外企员工职场跃迁:他们将目光转向杭州 转向云计算
  3. python下载图片-Python下载URL图片
  4. 开源项目kcws代码分析--基于深度学习的分词技术
  5. C# 构造函数中调用虚函数
  6. 腾讯云为小游戏开发者升级工具箱 小游戏联机对战引擎免费用
  7. 写代码前的准备,你做好了吗?
  8. 无人驾驶入门(雷达、定位和高精地图)
  9. java怎么从大到小排序元祖_列表、元祖的操作
  10. jdbc oracle clob blob long类型数据
  11. 使用windows远程桌面连接ubuntu
  12. mysql数据库root密码在哪个文件中_mysql数据库的root密码放在什么位置?
  13. Linux-----信号量
  14. 《游戏系统设计十一》就这样写个像样的邮件系统,赶紧收藏
  15. 英文论文查重率怎么算?
  16. TDR 及其测试原理
  17. Hyperledger Fabric1.4安装
  18. 2022年腾讯课堂现在用m3u8下载不了,怎么办
  19. 好用全面的电商评论文本情感分析实战教程
  20. 中国石油大学远程教育《穿出你的职业感》

热门文章

  1. 三百行python代码的项目_使用300行代码创建一个分布式系统
  2. python实现b树_B树及2-3树的python实现
  3. 模块的概念,组建地概念?
  4. Beta 冲刺(1/7)
  5. vnpy官网说明文档网址
  6. select点击option获取文本输入框的焦点事件
  7. Codeforces Round#310 div2
  8. Implementation:Bellman-ford
  9. OO Design之SOLID原则
  10. div高度、宽度100% div width、height 100%