transformer学习

Transformer是现在NLP领域最大的网红特征抽取器,基本现在所有的前沿研究都基于Transformer来做特征提取。《Attention is all you needTransformer是一个用于机器翻译的编、解码器结构,这也是它为什么叫Transformer的原因。因为在序列编码中强大的特征提取能力高效的运算特性Transformer被从编、解码结构中抽离出来,NLP中目前最流行的特征提取器。

Transformer其实就是一个seq2seqmodel!!!

    • :语音方面

还有语音合成。(end to end

    • 文字方面:

对于多数语音任务,指定个性化模型,可以取得更好的效果。

文法刨析:输入是一个seq,输出是一个树状的结构。

把输出看作一个序列:

  

做出结果

    • Multi-class classificationmulti-label classification.

Multi-class classification:有多个类,只属于一类。(不止一个类,需要从数个类种选一个class

multi-label classification:同一个东西,属于多个类别。

机器自己决定,每一篇文章要输多少个class

    • seq2seq做目标识别。

以上讲解如何使用及其场景。

如何做seq2seqmodel

起源:

一般结构:

Transform

Encoding:

Transform中的encoding用的就是self-attention.

每一个block做了好几层神经网络的事情,所以不叫层。

一个block解析:

Transform中加入设计:不止输出vector,输出的vector还需与input相加,获得一个新的输出,将输出使用LN处理获得一个输出向量,这个输出向量才是FC的输入。

以下才是一个完整的transform中的block

   

Transformencoding也可不用上述方法设计:

论文1:将LN与残差结构交换。

论文2:为什么BN不如LN

Decoding部分:decoding其实有两种)
1)种类一:(以语音识别为例)--àautoregressive

(先以某种方法将encoding的输入读入到decoding中,后续在讲方法)

Decoding如何产生文字:首先需要给定一个特殊符号代表开始:(本来的语音中多加一个特殊的符号)beginone hot编码表示,输入decoder中,输出一个向量。

输出的向量是一个长度非常长的向量,要看decoder的任务是什么,如果是一段语音输出为文字,则该输出向量就是包含很多可能文字的向量(decoder可能输出的中文字全部列出来)。

产生向量之前会先进行softmax,分数最高的是最终的输出。再将该输出当作下一次的输入。

     

依次持续该过程:

   

从上可以decoder看到的输入是前一时刻的输出,那么前一时刻有问题,就有可能导致一步错、步步错。

Decoder的内部结构:

Transform中的encodingdecoding,我们遮住decoding中间的一部分,可以发现两者差别不大:

Decoder中应用的Masked self-attention

      

以上产生的原因是因为self-attention中的a1,a2,a3,a4是一次性产生的,可是transformdecoding部分是现有a1,然后才有a2依次产生,无法考虑后续部分。

Decoding的输出长度是自己学习出来的。机器不知道何时停止。

需要自己准备一个特殊的end符号。希望能够获得的结果,输入习可以直接结束。

2)种类二:Non-autoregressive

方法一是一次产生一个字,NAT是一次产生一个句子。

问题1:不知道输出句子的长度?故应该放多少个begin,怎么确定?

另外学一个classfier,输入是encoderinput/output,输出是一个数字,即decoder要输出的长度。

另一种方法,输出一个非常长的序列,看end的位置,end右边的部分相当于没有输出。

优点:

并行的速度快、能够控制输出的长度。

AT的效果更好一点。

Encoderdecoder之间如何传递信息:

Encoderdecoder中间的cross attention:

Qdecoder种产生的,kvencoder种产生的。

不同cross attention方式:

如何训练:

计算gtdistribution的交叉熵越小越好。

   

每一个输出都有end符号。     

在此过程中decoder的输入为正确答案。(teacher forcing

训练seq2seqtips

Tips1:copy mechanism:有些东西并不需要学习,直接从输入复制就可以了。

类似于从文章到摘要(收集百万篇文章)。

Tips2:机器在学习过程中可能会漏学习一些东西,所以需要:guided attention(例如强迫学习时固定从左向右学习)

Tips3:beam search:比较有效的方法,找一个不是完全精准的solution。(有的情况效果好,有时候没有用),根据任务判断效果,一般对于机器不需要发挥创造力时效果较好。

评价指标:decoder的输出完整句子与GT完整句子做比较,找BLEU score最高的;训练过程中时每个单词进行比较,做交叉熵loss

Tips4:scheduled sampling:因为在训练过程中,decoder应用的都是正确的GT训练,但在验证时,他有可能会产生错误的输出,所以在训练过程中给gt加上scheduled sampling.

  训练过程中只看到正确的答案,遇到错的问题他不会解决。

解决方案:但他会伤害到transform的平行能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

。七十二。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值