Transformer

Transformer

先放一个jalammar博客
更详细的博客
大佬的notebook详解
在这里插入图片描述
在这里插入图片描述

transformer总体结构

在这里插入图片描述

  • 为什么有多个encoder呢?:从下往上可以提取表层的词法信息 -> 抽象的语义信息
  • encoder到decoder的部分就是attention部分,进行信息传递和交互
  • encoder和decoder的数量是一样的
encoder结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
什么是attention?:

  • 语言学角度:描述词与词的关联关系
  • 机器学习角度:神经网络隐层之间的相似度表示

什么是self-attention?:

  • self-attention 表示句子内部词与词之间的关联关系
  • 可以解决指代消解等问题

什么是encoder-decoder-attention?:

  • 编码序列与解码序列中词与词的关联关系
  • 以机器翻译为例:表征翻译中源端到目标可能互译词之间的对应关系

在这里插入图片描述

详细的attention计算

在这里插入图片描述
Q表示为了编码当前词,需要去注意其它(其实也包括它自己)的词,我们需要有一个查询向量。而Key向量可以认为是每个词的关键的用于被检索的信息,而Value向量是真正的内容。
在这里插入图片描述
Self-Attention里的Query不是隐状态,并且来自当前输入向量本身,因此叫作Self-Attention。另外Key和Value都不是输入向量,而是输入向量做了一下线性变换。当然理论上这个线性变换矩阵可以是Identity矩阵,也就是使得Key=Value=输入向量。因此可以认为普通的Attention是这里的特例。这样做的好处是模型可以根据数据从输入向量中提取最适合作为Key(可以看成一种索引)和Value的部分。类似的,Query也是对输入向量做一下线性变换,它让系统可以根据任务学习出最适合的Query,从而可以注意到特定的内容。
为什么除以维度的 d k \sqrt{d_k} dk ?:因为Q与K做点积吧方差放大了 d k d_k dk倍,所以我们要把注意力注意力矩阵缩回标准的正态分布,这样可以得到更好的梯度。
在这里插入图片描述
在这里插入图片描述
d k 表 示 维 度 的 大 小 \sqrt{d_k}表示维度的大小 dk

  • 新的向量的尺度远小于词向量的尺度,维度为64,这种架构选择可以使(大部分)多头注意力计算不变

在这里插入图片描述
多头的attention的好处:

  • 机器学习角度:参数变多了,拟合数据的能力变强,可以考虑到不同位置的attention
  • 语言学角度:不同的子空间可以表示不同的关联关系(指代、依存、其他的句法信息)对于attention赋予了多个子空间
    在这里插入图片描述
    在这里插入图片描述
    把 不 同 的 a t t e n t i o n 进 行 c o n c a t n a t e 然 后 乘 以 一 个 W 0 达 到 压 缩 的 目 的 , 避 免 后 面 进 行 矩 阵 计 算 的 开 销 比 较 大 把不同的attention进行concatnate然后乘以一个W^0达到压缩的目的,避免后面进行矩阵计算的 开销比较大 attentionconcatnateW0
以上可以并行的操作,但是丢失了位置信息,所以我们需要对位置建模

在这里插入图片描述
P E ( p o s , 2 i ) = s i n ( p o s / 1000 0 2 i / d m o d e l ) PE(pos,2i) = sin(pos/10000^{2i/d_{model}}) PE(pos,2i)=sin(pos/100002i/dmodel)
P E ( p o s , 2 i + 1 ) = c o s ( p o s / 1000 0 2 i / d m o d e l ) PE(pos,2i+1) = cos(pos/10000^{2i/d_{model}}) PE(pos,2i+1)=cos(pos/100002i/dmodel)

Residual connection

在这里插入图片描述
在这里插入图片描述
Residul Connect 对比深层的神经网络有较好的作用:

  1. 直连层:减少信息的丢失
  2. Layer Norm 层防止weights过大或者过小的导致梯度消失或者梯度爆炸,保证训练的稳定性

在这里插入图片描述
在这里插入图片描述
这里需要注意的是:decoder的self-attention是masked的,拿机器翻译来说,我们在翻译的时候只可以看到以前已经翻译的信息,看不到即将翻译的信息

在这里插入图片描述

输出层的隐层

在这里插入图片描述

损失函数

在这里插入图片描述
交 叉 熵 或 者 相 对 熵 交叉熵或者相对熵

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值