点上方计算机视觉联盟获取更多干货

仅作学术分享,不代表本公众号立场,侵权联系删除

转载于:机器之心

AI博士笔记系列推荐

周志华《机器学习》手推笔记正式开源!可打印版本附pdf下载链接

基于注意力的架构为什么那么有效?近期谷歌等一项研究认为注意力并没有那么有用,它会导致秩崩溃,而网络中的另两个组件则发挥了重要作用:「跳过连接」有效缓解秩崩溃,「多层感知器」能够降低收敛速度。此外,该研究还提出了一种理解自注意力网络的新方式——路径分解。

基于注意力的架构在机器学习领域已经非常普遍,但人们对其有效性原因的理解仍然有限。

最近,来自谷歌和瑞士洛桑联邦理工学院(EPFL)的研究者提出了一种理解自注意力网络的新方式:将网络输出分解为一组较小的项,每个项包括一系列注意力头的跨层操作。基于该分解,研究者证明自注意力具备强大的「token uniformity」归纳偏置。

也就是说,如果没有跳过连接(skip connection)或多层感知器(MLP),其输出将双指数级收敛至秩 1 矩阵。另外,跳过连接和 MLP 还可以阻止输出的衰退。该研究在不同 Transformer 变体上的实验证实了这一收敛现象。

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

  • 项目地址:https://github.com/twistedcubic/attention-rank-collapse

纯注意力以双指数级速率丢失秩

注意力机制最初旨在更好地学习长程序列知识,在 Transformer 网络中得到了有效使用。之后,基于注意力的架构逐渐渗透到多个机器学习应用领域,如自然语言处理、语音识别和计算机视觉。因此,开发一些工具,来理解 Transformer 和注意力的内在工作机制是非常重要的,这既可以帮助理解现有的模型,又能为未来设计更高效的模型做准备。

该研究对此类网络的操作和归纳偏置提供了新的见解。研究者惊讶地发现纯自注意力网络(SAN)——即不具备跳过连接(skip connection)和多层感知器(MLP)的 Transformer,会损失一部分表达能力,其损失程度与网络深度成双指数级关联。具体而言,研究者证明网络输出以三次方收敛速度收敛至秩 1 矩阵。

研究者利用随机矩阵的特性部分地推导出收敛界限,但其结果超出了想象。利用特殊堆叠自注意力模块的级联效应,研究者发现这类网络的收敛速度比标准理论所描述的快指数级。

此外,尽管之前有研究考虑了单个自注意力矩阵的秩,但该研究认为其结果首次说明了整个网络收敛至秩 1 矩阵的条件。

注意力机制不给力,Transformer 凭什么那么有效呢?

问题来了:如果 Transformer 的自注意力机制不给力,又是什么赋予了它优秀的能力呢?

该研究分析了三个重要组件:跳过连接、MLP 和层归一化,结果表明,跳过连接能够有效地缓解秩崩溃(rank collapse),MLP 则通过增加利普希茨常数来降低收敛速度。

MLP 的作用。

研究者通过证明在类 Transformer 的 SAN 架构变体上的收敛行为的上下界,描述了这些反作用力。研究结果揭示了跳过连接此前不为人知的重要作用,它的作用可不只是促进优化和梯度流动。

跳过连接的下界。

路径分解

在分析过程中,研究者提出了一种新的路径分解方式来研究自注意力网络。他们将 SAN 分解为弱耦合路径的线性组合,每一条「路径」对应一个深度单头 SAN。

直观来看,我们可以将原始网络中每一层的自注意力头看作不同的 gateway,一条路径遵循一系列 gateway 选择,每层一个 gateway(参见图 1)。结合秩崩溃分析,该研究结果表明具备跳过连接的深度 SAN 类似于多个弱相依浅层网络的集成

该研究的主要贡献如下:

  1. 系统研究了 Transformer 的构造块,揭示自注意力与其反作用力(跳过连接和 MLP)之间的对抗影响。这揭示了跳过连接在促进优化之外的重要作用。

  2. 提出一种通过路径分解来分析 SAN 的新方法,发现 SAN 是多个浅层网络的集成。

  3. 在多个常见 Transformer 架构上进行实验,从而验证其理论。

实验

该研究首次在多个知名 Transformer 架构中测试了秩崩溃现象,用图示的方式表示一些 Transformer 变体的归纳偏置,并测试了路径有效性。

真实架构中的秩崩溃

为了验证其理论预测,研究者检查了三个知名 Transformer 架构的残差,分别是 BERT、Albert 和 XLNet。下图 2 绘制了网络训练前后每个层输出的相对残差:

该实验确认,移除跳过连接后,所有网络均出现快速秩崩溃。尽管 MLP 在缓解收敛方面似乎没太大帮助,但研究者注意到这一观察未必准确反映 Transformer 的运作原理:移除跳过连接会导致 MLP 输入出现极大的分布偏移。研究者希望网络重新训练会降低收敛速度。

可视化不同架构的偏差

为了实验验证 Transformer 架构不同组件的归纳偏置,研究者探索了循环使用单层 Transformer 来预测简单 2D 环状序列的行为。研究者训练网络直到它能够以接近 0 的损失记住环状轨迹上的下一步。下图 3 展示了模型在推断时预测的轨迹:

路径的有效性

SAN 可被视作多个不同长度(从 0 到 L)路径的集成,每一个路径包含不同的自注意力头序列。该研究对具备跳过连接的 SAN 进行的分析表明,路径有效性会随着路径长度的增加而降低,即使涉及的非线性运算数量增加了。为了验证这一假设,研究者将不同长度的路径分隔开,并评估其预测能力。

下图 4 展示了在序列记忆(Sequence memorization)、学习分类(Learning to sort)和凸包预测(Convex hull prediction)三项任务中的性能。研究者测试了不同的子集,并报告了五次重复试验的均值和标准差。至于推断,研究者还绘制了朴素分类器和整个训练模型(路径分解前)的准确率。

从上图中可以看到,短路径具备较强的预测能力,长度为 1 的路径在记忆、分类和凸包任务中分别获得了超过 0.8、0.6、0.65 的准确率。而较长路径的输出准确率并不比随机猜测好多少。由于凸包任务中存在类别不均衡现象,研究者使用多数类预测器来获取随机基线。尽管凸包任务中长短路径的准确率差异没那么大,但研究者观察到长路径的方差明显更大,这表明其比随机猜测好不了太多。长度为 0 的路径方差很小,但未获得和任务相关的有用信息(很可能是因为它们没有穷尽全局信息)。

end

我是王博Kings,一名985AI博士,华为云专家/CSDN博客专家,单个AI项目在Github上获得了2000标星,为了方便大家交流,附上了联系方式。

这是我的私人微信,还有少量坑位,可与相关学者研究人员交流学习 

目前开设有人工智能、机器学习、计算机视觉、自动驾驶(含SLAM)、Python、求职面经、综合交流群扫描添加CV联盟微信拉你进群,备注:CV联盟

王博Kings 的公众号,欢迎关注,干货多多

王博Kings的系列手推笔记(附高清PDF下载):

博士笔记 | 周志华《机器学习》手推笔记第一章思维导图

博士笔记 | 周志华《机器学习》手推笔记第二章“模型评估与选择”

博士笔记 | 周志华《机器学习》手推笔记第三章“线性模型”

博士笔记 | 周志华《机器学习》手推笔记第四章“决策树”

博士笔记 | 周志华《机器学习》手推笔记第五章“神经网络”

博士笔记 | 周志华《机器学习》手推笔记第六章支持向量机(上)

博士笔记 | 周志华《机器学习》手推笔记第六章支持向量机(下)

博士笔记 | 周志华《机器学习》手推笔记第七章贝叶斯分类(上)

博士笔记 | 周志华《机器学习》手推笔记第七章贝叶斯分类(下)

博士笔记 | 周志华《机器学习》手推笔记第八章集成学习(上)

博士笔记 | 周志华《机器学习》手推笔记第八章集成学习(下)

博士笔记 | 周志华《机器学习》手推笔记第九章聚类

博士笔记 | 周志华《机器学习》手推笔记第十章降维与度量学习

博士笔记 | 周志华《机器学习》手推笔记第十一章特征选择与稀疏学习

博士笔记 | 周志华《机器学习》手推笔记第十二章计算学习理论(上)

博士笔记 | 周志华《机器学习》手推笔记第十二章计算学习理论(下)

博士笔记 | 周志华《机器学习》手推笔记第十三章半监督学习

博士笔记 | 周志华《机器学习》手推笔记第十四章概率图模型

点个在看支持一下吧

Transformer组件很重要Attention is all you need相关推荐

  1. 谷歌自锤Attention:纯注意力并没那么有用,Transformer组件很重要

    作者|魔王 来源|机器之心 基于注意力的架构为什么那么有效?近期谷歌等一项研究认为注意力并没有那么有用,它会导致秩崩溃,而网络中的另两个组件则发挥了重要作用:「跳过连接」有效缓解秩崩溃,「多层感知器」 ...

  2. 谷歌再一次打脸:纯注意力并没那么有用,Transformer组件很重要

    基于注意力的架构为什么那么有效?近期谷歌等一项研究认为注意力并没有那么有用,它会导致秩崩溃,而网络中的另两个组件则发挥了重要作用:「跳过连接」有效缓解秩崩溃,「多层感知器」能够降低收敛速度.此外,该研 ...

  3. Transformer论文阅读(一): Attention is all you need

    橙色--目的.结论.优点:洋红--突破性重要内容或结论,对我来说特别急需紧要的知识点:红色--特别重要的内容:黄色--重要内容:绿色--问题:蓝色--解决方案:灰色--未经证实的个人怀疑或假设或过时不 ...

  4. 【Transformer】CrossFormer:A versatile vision transformer based on cross-scale attention

    文章目录 一.背景 二.动机 三.方法 3.1 Cross-scale Embedding Layer(CEL) 3.2 Cross-former Block 3.2.1 Long Short Dis ...

  5. 全民 Transformer (一): Attention 在深度学习中是如何发挥作用的

    <Attention 在深度学习中是如何发挥作用的:理解序列模型中的 Attention>    Transformer 的出现让 Deep Learning 出现了大一统的局面.Tran ...

  6. 基于Vue的Quasar Framework 介绍 这个框架UI组件很全面

    基于Vue的Quasar Framework 介绍 这个框架UI组件很全面 基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/ quasarfra ...

  7. registerModule: 动态注册vuex模块,对于自定义生成组件很有用

    registerModule: 动态注册vuex模块 <div class="reference">在 store 创建之后,你可以使用 store.registerM ...

  8. 学习Transformer前言(Self Attention Multi head self attention)

    一.前言 一直在做项目,也比较懒没有挤出时间去学习新的东西,感觉停滞很久了,好长一段时间都没有新的知识输入,早就需要就去学习transformer了,因此先来学习注意力机制,本文为个人的一个笔记总结. ...

  9. Transformer结构解读(Multi-Head Attention、AddNorm、Feed Forward)

    咱们还是照图讨论,transformer结构图如下,本文主要讨论Encoder部分,从低端输入inputs开始,逐个结构进行: 图一 一.首先说一下Encoder的输入部分: 在NLP领域,个人理解, ...

最新文章

  1. Database项目中关于Procedure sp_refreshsqlmodule_internal的错误
  2. 有效管理要做的两件事:向上管理和向下负责
  3. MySQL数据库have_openss_MySQL 关于OpenSSL证书支持检查方式
  4. 你不知道的那些“XX即服务”
  5. 吴恩达机器学习笔记55-异常检测算法的特征选择(Choosing What Features to Use of Anomaly Detection)
  6. 【ZZ】IPv4与IPv6
  7. php 修改html文件内容吗,请问你们怎么将html的文件的内容改变为php
  8. 剑指 Offer 16. 数值的整数次方
  9. 【程序设计】变量名的命名原则
  10. SQL Server 变量名称的Collcation跟Instance还是跟当前DB?
  11. HashMap深度解析
  12. 2011年5月18日早会资料
  13. python operator 模块
  14. 我们一起踩过的坑----react(antd)(二)
  15. PAT乙级1085:PAT单位排行 (25)
  16. ie下js判断本地office版本
  17. 怎么看电脑系统是64位还是32位
  18. NVIDIA GeFprce GTX 1080 Ti NVIDIA图形驱动程序版本466.77下载和安装
  19. 视频融合应用没听说过?
  20. harbor 下载地址(国内代理)

热门文章

  1. python可以实现的小游戏_今天教小白用Python实现一款小游戏!最适合装逼的神技!亲测可用...
  2. java代码限制短信发送次数_java如何实现发短息限制日发送次数代码
  3. oracle的索引使用方法,在OracleE数据库的字段上建立索引的方法
  4. nuke无法理解服务器的响应,cuke4nuke服务器没有重新开始
  5. body区域怎么传一个数组_自己轻松写一个jQuery库
  6. j计算机专业英语题库,计算机专业英语单词习题
  7. Ubuntu16.04安装MySQL5.7
  8. Opencv3 形态学操作
  9. (网页)java数组去重总结(转)
  10. linux(cat,more,less,head)——对文件显示进行查看操作