transformer

transformer 来源于谷歌论文《Attention Is All You Need​​​》​​​​

transformer主要就是在输入输出之间做机器翻译

可以再将transformer细化成encoders—decoders(编码--解码)

encoders—decoders(编码--解码)可以由多个小encoder—decoder组成,数量可以自己定,是一个×N的结构,所有的小encorder结构式完全相同的,小decorder结构式也完全相同的。结构上是完全相同的,但区别是输入的参数不同。

将Encoders部分分解

1.输入部分

可以分为embedding和位置嵌入两个小部分

(1)embedding是NLP的知识

对于输入按字切分,每一个字对应一个512维度的字向量,对于字向量可以使用word2vec

(2)位置编码

对于RNN ,U输入参数,W隐藏参数,V输出参数,对于RNN所有的timestamp公用一套参数,RNN是先后依次处理的,是串行的,速度慢

Transformer模型没有循环神经网络的迭代操作,而是使用全局信息,不能利用字的顺序,所以Transformer中使用位置编码来保存其相对或者绝对位置,从而识别字在序列中的顺序关系。 相较于RNN,Transformer是并行化一起处理的,增加了速度,但是忽略掉了序列关系。如何来保持序列关系呢?对每一个字的512字向量维度位置进行区分,以2i表示偶数位置,2i+1表示奇数位置

2.注意力机制

注意力机制公式

对公式进行图解,Q与K进行点乘,对结果进行softmax()归一化求相似度,再将得到的结果a与V相乘,结果相加求和即得到Attention Value

Q、K、V的获取,Q即用X矩阵乘W矩阵得到,K、V同理

对于公式中的d k是因为QK的值很大,softmax()反向传播的时候,梯度很小,可能会梯度消失,除以根号d k可以让方差为1

多头注意力就是多参数并行,提高过程运行效率

3.前馈神经网络

字向量经过embedding对位相加得到新的X,经过自注意力得到Z,Z和A对位相加,残差结果输出,经过两层的全连接,经过残差做最终输出结果。

二、Decoder

1、mask

Decoder有时序需要一个一个输入,需要通过mask来错开位置,否则输出会受到多输入影响

2、交互式

由encoder生成K、V矩阵,交由decoder生成Q矩阵,encoder的输出要和每一个decoder做交互

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值