Tranformer原理以及应用

参考文章

  1. cv中的transformer:vit
  2. attention优化历史:RNN(长程梯度消失)->rnn+attention(消除对于单一隐含节点的依赖)
  3. rnn attention:双向RNN & 在Decoder上使用attention
  4. transformer原理理解

背景

  1. nlp领域中RNN结构容易产生梯度弥散(LSTM对于特别长期的信息依然无法很好传递),导致信息无法传递很远
  2. RNN结构无法与硬件很好结合

如何解决

  • 用attention解决长期依赖的问题
  • 去RNN结构,改成方便并行的结构

结构设计

transformer整体结构
在这里插入图片描述

每个encoder的作用

  • self-attention生成encoder 向量:当前翻译和已经翻译的前文之间的关系;好处是模型将词义理解更准确,如“RNN是一个循环网络模型,它广泛应用于机器翻译等场景中” 中"它"的encoder应该是和"RNN"相近的,self-attention可以达到这个目的
  • self-attention 的推导:
    Q、K、V的计算
    Q = W q ∗ Q e m b K = W k ∗ K e m b V = W v ∗ V e m b a t t e n t i o n = s o f t m a x ( Q t ∗ K 1... t − 1 T / d k ) ∗ V t Q= W_{q}*Q_{emb}\\ K= W_{k}*K_{emb}\\ V= W_{v}*V_{emb}\\ attention = softmax(Q_{t}*K_{1...t-1}^T/\sqrt d_{k})*V_{t} Q=WqQembK=WkKembV=WvVembattention=softmax(QtK1...t1T/d k)Vt
  • 归一化项( d k \sqrt d_{k} d k)的含义以及作用:
    – 保证梯度稳定性,计算方式是Score 归一化
    – dk代表mul之后的维度,当维度较大时,score数值比较大,会导致梯度变小,不易收敛
    – 两种方式:mul需要归一化,使得模型收敛加快,而add方式(结合tanh和v加权求和)不易出现饱和
    – mul的好处是计算更快
  • 加入残差网络中的shortcut机制,防止退化问题

每个decoder的作用

  • Encoder-Decnoder Attention:当前翻译和编码的特征向量之间的关系。

一些想法

attention是什么的attention:预测词 和 原始词输入列表的attention
为什么要使用前一时刻的状态替代:

  • 首先当前时刻的状态是未知的
  • 表示前一个词是A的时候,对于下词的一个预测应该集中注意力在哪几个原词
  • 输出是通过隐含层信息、encoder整个句子信息(context)、前一个预测词的信息共同决定的
  • Attention 结构本身的准确度怎么衡量(DIEN)

attention的训练方式:

  • 输入是此特征,需要id化
  • 输出是目标语言词特征,softmax

之前rnn的方式decoder为什么不能用所有的hidden state?

  • 计算量限制:错
  • 结构无法统一:长句子hidden state多,短句子少,padding肯定会有问题
  • 直接加和不合理:不一定权重一样,不同词对于当前要预测词的贡献不同

attention 为什么需要scale?

encoder输入和输出的取值范围:确认乘法方式跟dim是否有直接关系
乘法和加法的公式:学习一下
梯度为什么会消失

add & norm操作是啥:norm 是batch norm,保持分布一致性,add是指对当前的attention score以及hidden state 做一个softmax线性加权

multi-head attention

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值