transformer模型

ppt来自李宏毅老师的视频

在讲transformer之前需要了解一下rnn和attention的知识

rnn缺点:
不容易并行化计算,要一个一个字符输入
在这里插入图片描述
方法1:用CNN代替
将整体序列输入,使用filter获取信息,为了获得长序列的关系可以使用多层CNN
在这里插入图片描述

方法2:self-attention

将每个输入向量分别乘以不同矩阵获得不同的向量
在这里插入图片描述
接下来用q对k做attention,即输入q和k输出匹配分数,注意q和k维度相同

scaled dot-product attention:具体是将q和k点乘除以二者的维度
在这里插入图片描述
将输出的相似度通过softmax
在这里插入图片描述
将softmax后的值和对应v相乘,求和后获得最终的输出
在这里插入图片描述
这里就可以理解,v是存储输入信息的,最终输出b考虑到不同的输入信息a,考虑权值大小取决于q和k的匹配

同理求其余的输出
在这里插入图片描述
平行计算:
将输入拼接成一个矩阵和权重矩阵相乘,可以获得所有的kqv
在这里插入图片描述
计算相似度时,将k拼接后和对应q相乘:
在这里插入图片描述
也可以将q拼接
在这里插入图片描述
最后平行计算b:
在这里插入图片描述
接下来梳理一下输入到输出的流程:
首先是输入乘以权重矩阵获得qkv向量
在这里插入图片描述
计算q和k相似度,并通过softmax后,和V相乘获得输出:
在这里插入图片描述

变型multi-head self-attention:

将kqv分成多个,每次获得多个输出向量
最后对多个向量进行矩阵乘法改变大小。
在这里插入图片描述
在这里插入图片描述

改进:

positional encoding:
self-attention没有考虑到位置信息,因为最终输出考虑了所有序列,因此给每个位置设置一个独特的向量e,输入向量要加上对应位置向量,并且位置向量不是从数据中学到的
位置向量可以用独热表示,第i个输入对应i-1为1其余为0
在这里插入图片描述

self-attention的使用:

取代rnn模型,并行化计算效率更高

transformer模型:

总体框架
在这里插入图片描述
流程:
输入a加上位置向量后,通过multi-head的attention获得另一个序列b,然后再将输入和输出相加获得b’
再进行layer normalization或者是batch normalization
在这里插入图片描述
decoder的输入是上一个时间步的输出,注意attention使用了mask,对已经产生的序列进行attend
在这里插入图片描述
transformer可以代替seq2seq模型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值