AttentionIsallyouneed

概要

主流模型RNN或者CNN包括编码器和解码器
序列到序列的生产
简单,仅仅依赖于注意力机制

介绍

RNN是时序,一步一步进行,难以并行
transformer强大

背景

卷积难以对长的序列建模,要一层一层窗口叠上去
transformer一下就能全部看到,为了模拟神经网络多通道,它有多头注意力机制
自主注意力

模型结构

编码器,解码器结构
编码器将原始输入转换成机器能理解的向量,但解码器也是一个一个生成,过去时刻的输出是现在的输入,叫做自回归
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

编码器

LayerNorm(x + Sublayer(x)):为什么在变长的应用里面不适用batchnorm
我有个简单的记法:xxx-norm就是按xxx方向进行归一化,或者说按xxx方向切,还可以说是不分解xxx。对于二维和三维的xxx-norm都是适用的。
以batch-norm为例,二维就是顺着batch方向切,即纵切;三维需要注意,一定保留了序列方向不被分解,再结合按照batch方向切,就得出了蓝色框切法
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
因为变长,每次算出来的均值和方差抖动较大,训练更加稳定些

解码器

解码器训练的时候不应该看到t时刻以后的输入(在预测t时刻的输出时候),保证输入输出一致

注意力

query是用来查询别的词的,key是用来被别的词查询的,value是被查询得到一个权重然后乘起来给到那个词的
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
一种是加型,一种是点积。点乘比较高效,当dk比较大的时候,矩阵的值方差会比较大,再加上用的是softmax,大的概率更大,小的概率更小,最终使得梯度较小无法继续训练,所以除掉根号dk缩小他们的距离是一个不错的选择

多头注意力机制。并行计算注意力,每个头希望学到不一样的投影方式,保证模式的多样性。
拼接是看输出通道多少个,有8个头就每个头产生x/8长度的向量

代码中的应用:将输入映射为Q,K,V
这里编码器的输出作为key和value输入,然后解码器第一个attention的输出作为query

与RNN的区别:transformer可以看到整个序列的信息,RNN只能依靠上一时刻

Embedding and softmax

长度越大的向量经过正则化后值越小,所以要乘以一个根号dmodal

position encoding

时序信息
输入里面加入
用周期不一样的sin和cos函数算出来的

实验

byte-pair encoding:比如英语,有不同的时态。把词语的词根提取出来,那字典就会相较于小规模些。
tpu适合做大规模矩阵乘法

label smoothing:因为softmax出来的概率难以非常接近1,所以降低下标准比如说到0.9就行了

启发

如果有代码的话通常会把代码放在摘要的最后一句话

写文章时候,尽量把无关紧要的东西放在附录里,正文讲为什么,设计理念,你的思考

更广泛的归纳偏执,使得能够处理更一般化的信息。假设更一般,从数据抓取信息比较难,训练更加昂贵。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值