Transformer组件很重要Attention is all you need
点上方计算机视觉联盟获取更多干货
仅作学术分享,不代表本公众号立场,侵权联系删除
转载于:机器之心
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 类似于多个弱相依浅层网络的集成。
该研究的主要贡献如下:
系统研究了 Transformer 的构造块,揭示自注意力与其反作用力(跳过连接和 MLP)之间的对抗影响。这揭示了跳过连接在促进优化之外的重要作用。
提出一种通过路径分解来分析 SAN 的新方法,发现 SAN 是多个浅层网络的集成。
在多个常见 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相关推荐
- 谷歌自锤Attention:纯注意力并没那么有用,Transformer组件很重要
作者|魔王 来源|机器之心 基于注意力的架构为什么那么有效?近期谷歌等一项研究认为注意力并没有那么有用,它会导致秩崩溃,而网络中的另两个组件则发挥了重要作用:「跳过连接」有效缓解秩崩溃,「多层感知器」 ...
- 谷歌再一次打脸:纯注意力并没那么有用,Transformer组件很重要
基于注意力的架构为什么那么有效?近期谷歌等一项研究认为注意力并没有那么有用,它会导致秩崩溃,而网络中的另两个组件则发挥了重要作用:「跳过连接」有效缓解秩崩溃,「多层感知器」能够降低收敛速度.此外,该研 ...
- Transformer论文阅读(一): Attention is all you need
橙色--目的.结论.优点:洋红--突破性重要内容或结论,对我来说特别急需紧要的知识点:红色--特别重要的内容:黄色--重要内容:绿色--问题:蓝色--解决方案:灰色--未经证实的个人怀疑或假设或过时不 ...
- 【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 ...
- 全民 Transformer (一): Attention 在深度学习中是如何发挥作用的
<Attention 在深度学习中是如何发挥作用的:理解序列模型中的 Attention> Transformer 的出现让 Deep Learning 出现了大一统的局面.Tran ...
- 基于Vue的Quasar Framework 介绍 这个框架UI组件很全面
基于Vue的Quasar Framework 介绍 这个框架UI组件很全面 基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/ quasarfra ...
- registerModule: 动态注册vuex模块,对于自定义生成组件很有用
registerModule: 动态注册vuex模块 <div class="reference">在 store 创建之后,你可以使用 store.registerM ...
- 学习Transformer前言(Self Attention Multi head self attention)
一.前言 一直在做项目,也比较懒没有挤出时间去学习新的东西,感觉停滞很久了,好长一段时间都没有新的知识输入,早就需要就去学习transformer了,因此先来学习注意力机制,本文为个人的一个笔记总结. ...
- Transformer结构解读(Multi-Head Attention、AddNorm、Feed Forward)
咱们还是照图讨论,transformer结构图如下,本文主要讨论Encoder部分,从低端输入inputs开始,逐个结构进行: 图一 一.首先说一下Encoder的输入部分: 在NLP领域,个人理解, ...
最新文章
- Database项目中关于Procedure sp_refreshsqlmodule_internal的错误
- 有效管理要做的两件事:向上管理和向下负责
- MySQL数据库have_openss_MySQL 关于OpenSSL证书支持检查方式
- 你不知道的那些“XX即服务”
- 吴恩达机器学习笔记55-异常检测算法的特征选择(Choosing What Features to Use of Anomaly Detection)
- 【ZZ】IPv4与IPv6
- php 修改html文件内容吗,请问你们怎么将html的文件的内容改变为php
- 剑指 Offer 16. 数值的整数次方
- 【程序设计】变量名的命名原则
- SQL Server 变量名称的Collcation跟Instance还是跟当前DB?
- HashMap深度解析
- 2011年5月18日早会资料
- python operator 模块
- 我们一起踩过的坑----react(antd)(二)
- PAT乙级1085:PAT单位排行 (25)
- ie下js判断本地office版本
- 怎么看电脑系统是64位还是32位
- NVIDIA GeFprce GTX 1080 Ti NVIDIA图形驱动程序版本466.77下载和安装
- 视频融合应用没听说过?
- harbor 下载地址(国内代理)
热门文章
- python可以实现的小游戏_今天教小白用Python实现一款小游戏!最适合装逼的神技!亲测可用...
- java代码限制短信发送次数_java如何实现发短息限制日发送次数代码
- oracle的索引使用方法,在OracleE数据库的字段上建立索引的方法
- nuke无法理解服务器的响应,cuke4nuke服务器没有重新开始
- body区域怎么传一个数组_自己轻松写一个jQuery库
- j计算机专业英语题库,计算机专业英语单词习题
- Ubuntu16.04安装MySQL5.7
- Opencv3 形态学操作
- (网页)java数组去重总结(转)
- linux(cat,more,less,head)——对文件显示进行查看操作