【王树森】Transformer模型(2/2): 从Attention层到Transformer网络(个人向笔记)

Single Head Self-Attention

上节课讲到的属于单头注意力:
在这里插入图片描述


Multi-Head Self-Attention

  • 使用 l l l 个单头注意力层堆叠成一个多头注意力层,注意它们之间不共享参数
  • 一个单头注意力有 3 个参数矩阵,所以多头注意力有 3 l 3l 3l 个参数矩阵
  • 我们把多个单头注意力的输出做concatenation,就能得到多头注意力的输出
    在这里插入图片描述

Multi-Head Attention

和上面讲到的类似,我们把单头注意力堆叠起来,就能得到一个多头注意力
在这里插入图片描述


Stacked Self-Attention Layers

  • 在上面的多头自注意力层上的输出再接一个全连接层,对于每个输出的全连接层共享参数,将它们和 W U W_U WU 进行计算后丢到一个激活函数ReLU里面
    在这里插入图片描述
  • 在此基础上可以网上堆多头自注意力层,这个的道理和多层RNN是一样的:
    在这里插入图片描述
  • Transformer一个Block的encoder的输入和输出都是一个 512 × m 512×m 512×m 的矩阵,其中 512 512 512 是向量的维度, m m m 是向量的个数,用符号可以这样表示,其中 X \boldsymbol{X} X 表示矩阵: X ∈ R 512 × m \boldsymbol{X} \in \mathbb{R}^{512×m} XR512×m
    在这里插入图片描述
  • 这样我们就可以把Block堆叠起来,Block之间不共享参数,Transformer里面一共堆叠了6个Block
    在这里插入图片描述

Blocked Attention Layers

  • decoder需要先堆叠一个Self-Attention层:
    在这里插入图片描述
  • 之后堆叠一个多头注意力层
    在这里插入图片描述
  • 最后对所有的输出都映射到 s s s 向量:
    在这里插入图片描述
  • 对于decoder的一个Block是这样的:其中需要输入两个序列,都是512维的向量,长度分别为 m m m t t t ,如果是英译德的话,那么 m m m 就是英语单词的数量, t t t 就是已经生成的德语单词的数量:
    在这里插入图片描述
  • 堆叠decoder层:图的左边是刚刚堆叠的encoder层,右边是堆叠的decoder层,其中decoder层接受两个输入,一个输入来自encoder,一个输入来自 X X X 或自身decoder的输出,最后输出和输入 X X X 的维度一样
    在这里插入图片描述
  • 与RNN的Seq2Seq模型的输入大小完全一致,所以以前RNN的Seq2Seq模型能做的,Transformer也能做

Summary

把单头多个attention堆叠起来就能得到多头注意力,其中参数是独立的,不共享:
在这里插入图片描述
在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值