李宏毅老师机器学习 第五节 Transformer

目录

一、基础问题

二、怎么实现seq2seq model

2.1 encoder

2.2 decoder

2.3 encoder和decoder是如何传递信息的?

三、tips

3.1 copy mechanism

3.2 guided attention

3.3 beam search

3.4 scheduled sampling

 四、问题&总结


一、基础问题

1.transfromer 和bert有什么关系

    bert就是transformer的encoder

2.什么是sequence-to-sequence的model呢?

    输入和输出都是一组向量,只是输出长度不确定,由机器自己决定

3.multi-class classification和multi-label classification的区别

    在multi-class 分类问题中,每一个样本只能被分到一个类别中,比如,给定一组图像,每个图像只能被分到一个类别中,比如猫狗鸟等

    在multi-label分类问题中,每个样本可以属于多个类别,比如,给定一组文档,每个文档可以被分到多个主题下,如政治,体育,科技等

4.layer normalization 和 batch normalization的区别

Batch Normalization 的处理对象是对一批样本, Layer Normalization 的处理对象是单个样本。Batch Normalization 是对这批样本的同一维度特征做归一化, Layer Normalization 是对这单个样本的所有维度特征做归一化。

BN 和 LN 都可以比较好的抑制梯度消失和梯度爆炸的情况。BN不适合RNN、transformer等序列网络,不适合文本长度不定和batchsize较小的情况,适合于CV中的CNN等网络;
而LN适合用于NLP中的RNN、transformer等网络,因为sequence的长度可能是不一致的。
栗子:如果把一批文本组成一个batch,BN就是对每句话的第一个词进行操作,BN针对每个位置进行缩放就不符合NLP的规律了。
(原文链接:https://blog.csdn.net/qq_35812205/article/details/122330669)

 (参考文章:https://zhuanlan.zhihu.com/p/113233908)

5. autoregressive decoder和 non-autoregressive decoder的区别

二、怎么实现seq2seq model

seq2seq model由encoder 和decoder组成

2.1 encoder

encoder:输入一排向量,输出长度一样的向量。encoder由若干个block组成,每个block都是输入一组向量,输出一组向量。

右图是一个block的工作:某个向量经过self-attention之后输出a向量,之后经过residual connection(残差链接,允许低层的原始信息直接传到后续的高层,防止梯度消失),得到a+b,之后经过layer normalization---全连接层---residual connection---再次经过layer normalization---输出该block的结果。

 以上是原始论文提出的encoder设计方法,我们可以提出更好的设计。

2.2 decoder

 autoregressive decoder

语音辨识如何产生文字?

decoder一开始的输入是begin(ont-hot编码),输出的结果经过softmax处理,选择得分最高的汉字输出。后面decoder会以上一步的输出作为输入来判断下一步的输出结果,所以会出现一步错步步错的情况。怎么解决?(scheduled sampling)

encoder vs decoder: 

 

 Q:multi-head attention和masked multi-head attention有什么区别

multi-head attention考虑的是所有的输入向量,masked multi-head attention考虑的是当前输入向量以及之前的向量。之所以要masked,是因为decoder的输出是一个一个产生的,根据前面的输出产生后面的输出,计算b2时是没有a3和a4的。

 

 

 

  Non-autoregressive decoder

2.3 encoder和decoder是如何传递信息的?

encoder的输出和decoder第一个Norm的输出共同经过cross attention。

在cross attention里面,计算attenton分数---加权求和---全连接层---输出。

 

三、tips

3.1 copy mechanism

decoder可以从输入中复制一些内容,例如:

    2 

3.2 guided attention

Guided attention是一种注意力机制的变体,它通过引入额外的指导信息来帮助模型更好地学习输入序列中的相关信息。例如,在机器翻译任务中,可以将源语言和目标语言的词汇对齐信息作为指导信息,帮助模型更好地理解两种语言之间的对应关系。在语言生成任务中,可以将语法树或者其他结构化信息作为指导信息,帮助模型更好地生成符合语法规则的句子。

3.3 beam search

Beam Search用于从模型生成的候选序列中选择最优的序列。在序列生成任务中,模型生成的序列往往有多种可能性,Beam Search算法通过维护一个固定大小的候选序列集合,来搜索最优的序列。

Beam Search算法的基本思路是在每个时间步中,对于每个候选序列,根据模型生成的概率分布,选择k个最有可能的下一个单词,并将这些新生成的序列加入候选序列集合。然后,从所有的候选序列中选择概率最大的k个序列,作为下一个时间步的候选序列集合。这个过程一直重复,直到生成完整个序列为止。

Beam Search算法的优点是可以在保证一定的搜索效率的情况下,找到相对较优的序列。但是,Beam Search算法也存在一些问题,如可能会陷入局部最优解、无法处理长距离依赖等。因此,在实际应用中,Beam Search算法往往需要与其他技术结合使用,来提高模型的性能和鲁棒性。

下图中,Beam Search会找到比Greedy decoding更优的解

 3.4 scheduled sampling

Exposure bias是指模型在训练过程中和推断过程中所面对的不一致性问题。在传统的训练过程中,模型在训练阶段看到的输入序列是真实的,但在测试阶段,模型需要自己生成下一个预测值,并将其作为下一个时间步的输入。这种训练和测试过程的不一致性可能导致模型在测试时表现不佳,这种问题被称为Exposure bias。

Exposure bias问题的根本原因是模型在训练时只看到真实的输入序列,而在测试时需要自己生成下一个预测值。这种不一致性可能导致模型对于自己生成的输入序列没有足够的自信度,从而影响模型的性能。

Scheduled Sampling和Teacher Forcing可以解决该问题。这些技术旨在逐渐引入模型自己生成的输出作为输入,从而逐步减少对真实数据的依赖,使模型更好地适应测试时的情况,从而提高模型的性能和鲁棒性。(就是在输入时候故意加一些错误的东西)

 

 四、问题&总结

1.  什么是Transformer?

Transformer是一种sequence to sequence的神经网络模型架构,可以处理序列问题,相比于CNN和RNN,具有更好的并行处理能力。Transformer由encoder和decoder组成,采用了self-attention机制,可以自适应学习每个位置和其他位置之间的依赖关系。此外,Transformer还采用了残差连接和层归一化等技术,用于加速模型的训练和提高模型的泛化能力

2.  Transformer与RNN相比,优点是什么?

(1)并行计算:在RNN中,每个元素的计算取决于之前的元素,因此无法并行计算。而在自注意力机制中,每个元素的计算都是独立的,因此可以高效地并行计算,加速模型的训练和推理速度。

(2)长依赖建模:在RNN中,由于梯度消失或爆炸的问题,难以捕捉长序列中的依赖关系。而在自注意力机制中,可以自适应地学习每个位置与其他位置之间的关系,因此可以更好地建模长序列中的依赖关系。

(3)全局信息:在RNN中,每个元素只能访问之前的信息,因此无法捕捉全局信息。而在自注意力机制中,每个元素可以访问整个序列的信息,因此可以更好地捕捉全局信息。

(4)可解释性:自注意力机制可以可视化每个位置与其他位置之间的关系,因此更容易理解模型的行为和决策过程。

3.  Transformer中的自注意力机制是什么?

在编码器和解码器中,每个位置可以自适应地学习与其他位置之间的关系。它是Transformer中的核心机制之一,用于捕捉序列中不同位置之间的依赖关系。

对于每个输入向量,先产生3个向量query,key,value,query和key做dot-product得到注意力分数α,α经过softmax得到α',每个输入向量的α'与value相乘 再求和得到输出b

4.  Transformer中的残差连接和层归一化是什么?

残差连接是指将输入和输出相加作为层的输出,从而使得层的输出可以包含输入的信息,从而避免信息的丢失。残差连接可以避免深层网络中梯度消失和梯度爆炸的问题,使得信息可以更加顺畅地传递,同时也有助于模型的训练和优化。

层归一化是指对每个样本的每个维度进行归一化,从而使得不同维度之间的尺度差异不会对模型的训练造成影响。

5.Transformer中的位置编码是什么?

在Transformer中,由于自注意力机制无法捕捉序列中元素的顺序信息,为了解决这个问题,Transformer引入了位置编码(Positional Encoding),用于将序列中的每个位置与其对应的位置编码相加,从而在嵌入向量中加入位置信息。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值