理解Transformer

Transformer总体框架:

在这里插入图片描述

1、Encoder

Encoder由 6 层组成,每一层包括两个子层:第一层 multi-head self-attention 层(8个heads),第二层是一个简单的全连接前馈网络。在每个子层后都接了一个残差连接以及归一化

self-attention模块

why?

问题很明显,如果用同样的word2vec,表示词向量,那么下图中的it就是同样的词向量,但是我们代入句子中,明显可知其所代并非相同。这时我们的解决思路就是,词向量是否可以动态变化呢?
在这里插入图片描述

how?

在这里插入图片描述
Q、K、V是三组需要学习的参数
在这里插入图片描述
在这里插入图片描述
dk :如何理解?dk是K的维度,除以一个根号d因为Q和K相乘之后的数值可能会相差很大,除以根号d可以平衡数据。利于模型收敛。
参考链接:https://blog.csdn.net/m0_51474171/article/details/127714359
https://www.zhihu.com/question/526006602/answer/2666737042
在这里插入图片描述
整体流程:
在这里插入图片描述

multi-head attention模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

位置编码

位置编码采用正/余弦函数,最后把token embedding和position encoding相加
在这里插入图片描述

残差与归一化

随着网络深度增加,网络的表现先是逐渐增加至饱和,然后迅速下降。残差缓解了梯度消失,能够使网络往深的做。采用LN而不使用BN的原因:(1)长短不定(2)同一维度信息相关性不大
在这里插入图片描述

Decoder

Decoder同样由 6 层组成,不过在最下面额外多了一个masked mutil-head attetion,每一层包括三个子层:第一层是 masked multi-head self-attention 层,注意其输入仅包含当前位置之前的词语信息,第二层是 multi-head self-attention 层,其输入包含编码器的输出信息(矩阵 K 和矩阵 V ),第三层是全连接前馈网络。每个子层后同样加入了残差连接和归一化。

Decoder的第一层masked multi-head self-attention

Decoder block 的第一个 Multi-Head Attention 采用了 Masked 操作,因为在翻译的过程中是顺序翻译的,即翻译完第 i 个单词,才可以翻译第 i+1 个单词。通过 Masked 操作可以防止第 i 个单词知道 i+1 个单词之后的信息。

输出

根据不同的下游任务,调整输出。
在这里插入图片描述


参考链接:
1、https://baijiahao.baidu.com/s?id=1651219987457222196&wfr=spider&for=pc
2、https://blog.csdn.net/huangblog/article/details/119640224
3https://wmathor.com/index.php/archives/1438/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值