transformer李宏毅(二)

目录

seq2seq应用:

QA

语义分析

多label物体分类

目标检测

attention架构

encoder(bert用的encoder架构和transformer一样,encoder的实现可以用RNN CNN)

decoder

autoregressive

masked attention->rnn,rnn是循环无法并行,self attention可以并行

NON autoregressive

如何连接encoder&decoder cross attention

训练时,decoder用的是正确输入:

测试时,用的是前一个输出,但是训练用的都是正确数据,所以模型不具有鲁棒性,训练的优化方法:加入一些错误的值,这个方法叫做scheduled samping

对Transformer中的MASK理解


seq2seq应用:

大多数nlp问题都可以变成QA问题,比如翻译,问题就是这些输入的翻译是什么?

但是特定的任务还是要结合不同模型来解决,seq2seq像一个啥都能用的瑞士刀。。。但是切水果肯定还是水果刀用的好。。。

QA

语义分析

多label物体分类

目标检测

attention架构

encoder(bert用的encoder架构和transformer一样,encoder的实现可以用RNN CNN)

decoder

autoregressive

看到begin,就要生成 机 的概率最大;看到 习 ,就要生成end 的概率最大

masked attention->rnn,rnn是循环无法并行,self attention可以并行

NON autoregressive

如何连接encoder&decoder cross attention

k v是由encoder产生的,q由decoder产生

训练时,decoder用的是正确输入:

测试时,用的是前一个输出,但是训练用的都是正确数据,所以模型不具有鲁棒性,训练的优化方法:加入一些错误的值,这个方法叫做scheduled samping

对Transformer中的MASK理解

对Transformer中的MASK理解_mask transformer-CSDN博客

(以下为转载)

Transformer结构主要分为两大部分,一是Encoder层结构,另一个则是Decoder层结构,而所谓的MASK在Encoder和Decoder两个结构中都有使用。

Transformer中的MASK主要分为两部分:Padding Mask和Sequence Mask两部分
Padding Masked

对于Transformer而言,每次的输入为:[batch_size,seq_length,d_module]结构,由于句子一般是长短不一的,而输入的数据需要是固定的格式,所以要对句子进行处理。
通常会把每个句子按照最大长度进行补齐,所以当句子不够长时,需要进行补0操作,以保证输入数据结构的完整性
但是在计算注意力机制时的Softmax函数时,就会出现问题,Padding数值为0的话,仍然会影响到Softmax的计算结果,即无效数据参加了运算。
为了不让Padding数据产生影响,通常会将Padding数据变为负无穷,这样的话就不会影响Softmax函数了
Self-Attention Masked

Self-Attention Masked只发生在Decoder操作中,在Decoder中,我们的预测是一个一个进行的,即输入一个token,输出下一个token,在网上看到一个很好的解释如下:
假设我们当前在进行机器翻译
输入:我很好
输出:I am fine
接下来是Decoder执行步骤
第一步:
·初始输入: 起始符 + Positional Encoding(位置编码)
·中间输入:(我很好)Encoder Embedding
·最终输出:产生预测“I”
第二步:
·初始输入:起始符 + “I”+ Positonal Encoding
·中间输入:(我很好)Encoder Embedding
·最终输出:产生预测“am”
第三步:
·初始输入:起始符 + “I”+ “am”+ Positonal Encoding
·中间输入:(我很好)Encoder Embedding
·最终输出:产生预测“fine”
上面就是Decoder的执行过程,在预测出“I”之前,我们是不可能知道‘am’的,所以要将数进行Mask,防止看到当前值后面的值,如下图所示:当我们仅知道start的时候,后面的关系是不知道的,所以start和“I”以及其它单词的Score都为负无穷,当预测出“I”之后,再去预测“am”,最终得到下面第三个得分矩阵。

最后经过Softmax处理之后,得到最终的得分矩阵

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值