HW5-Transformer

HW5-Transformer

Reference Code
Homework Link
这里贴一个可参考的blog

1.Video 1-Batch Normalization

在这里插入图片描述

​ 当 x 1 x_1 x1 x 2 x_2 x2范围相差很大时(如上图),会导致 e r r o r s u r f a c e error surface errorsurface w 1 w_1 w1的斜率较小, w 2 w_2 w2的斜率较大。即 w 1 w_1 w1的变化对训练时的影响会较小。利用梯度下降更新时, w 1 w_1 w1的更新速度会比较慢。

​ 其中一种标准化为Feature normaliaztion

在这里插入图片描述

上图有R个特征向量: x 1 , x 2 , . . . , x R x^1,x^2,...,x^R x1,x2,...,xR,其中 x 1 1 x^1_{1} x11表示特征1中维度为1的值。将维度为i的特征值标准化,将其变为正态分布: x i r ~ = x i r − m i σ i \widetilde{x^{r}_{i}} = \frac{x^r_{i}-m_i}{\sigma_i} xir =σixirmi,其中 m i m_i mi是均值, σ i \sigma_i σi是标准差。

当训练的时候,GPU的memory并不能直接处理所有train dataFeature normalization,而是分批,处理每个batch Feature normalization

2.Video 2 Transformer Encoder

Transformer是一个Seq2Seq的模型,TransformerEncoder采用的即为Self-Attention的架构,而Encoder作用为将输入的语音等转换为相应的向量输出即输入一个Vector Seq输出一个Vector Seq

在这里插入图片描述

上图中的Add & Norm就是Residual + Normalization。而Transformer中的Normaliaztion(如下图)与Video 1中的Batch Normalization并不相同。

在这里插入图片描述

上图是Transformer中的Normaliation,并不是一个batch中的同一个维度的不同Feature间做标准化,而是在一个特征向量中做标准化。

3.Video 3 Transformer Decoder-Autoregressive(AT)

在这里插入图片描述

Decoder开始会收到一个起始的One-hot向量BEGIN,预测出一个One-hot向量,其中“机”的概率最大,即输出为“机”;然后会将前一个预测出的”机“作为Decoder的输入继续预测。

但是当前一个预测出错,如将”机“预测为”气“,可能会导致后面“一步错步步错”的情况发生。输入序列长度与输出序列长度的关系是不确定的(eg.利用Seq2Seq进行文章摘要),所以在上面图片上Decoder输出完“习”之后并不会停下来,可能会继续输出(eg.“惯”)。

在这里插入图片描述

上图是Encoder(左)&Decoder(右)的内部结构。 可以发现如果把Deconder中间部分的Add&NormMulti-Head Attention去掉,DecoderEncoder的区别为:多头注意力是否有Masked。(多头注意力也即存在多个计算 q i k i v i q^i \quad k^i \quad v^i qikivi的矩阵)

如下面两张图片所示,Self-Attention产生的 b i b^i bi都是考虑了 a 1 ∼ a 4 a^1\sim a^4 a1a4的信息得到的。Masked Self-Attention产生的 b i b^i bi则是只考虑前面的 a 1 ∼ a i a^1\sim a^i a1ai的信息得到的,也即只用 q 2 q^2 q2 k 1 k 2 k^1 \quad k^2 k1k2来计算 b 2 b^2 b2

在这里插入图片描述
Self-Attention

在这里插入图片描述
Masked Self-Attention

在这里插入图片描述
Masked Self-Attention

Decoder将自己的输出作为输出来预测后面,所以Decoder只能采用“只考虑左边信息”的Masked Self-Attention

DecoderEncoder共同协作的流程参考:视频24:32处开始。

4.Training Tricks

4.1 Copy Mechanism

在这里插入图片描述
在某些情况下,模型不用理解某些名词【库洛洛】,模型可以直接将输入的该名词输出。

4.2 Guided Attention

Seq2Seq的任务中(eg.语音辨识、语音合成),模型会忽略某些信息从而无法得到好的效果。在语音合成任务的时候,语音的输出应该是从左向右,所以可以在Train的过程中就将该从左向右的过程固定下来。

4.3 Beam Search

在这里插入图片描述

贪心不一定是最好的。当每个点的选择种类很多时,复杂度就会爆炸,而Beam Search是一种找到符合某种条件的路径算法。

4.4 Scheduled Sampling

在这里插入图片描述

Testing:在最终测试集的时候Decoder是将自己前一个预测的东西作为输入进行预测的,会出现“一步错步步错”的exposure bias

Training:训练的时候,Decoder是将标签作为输入而不是将自己预测的东西作为输入。

为了解决exposure bias的问题,可以在Training 的时候,给Decoder一些错误的东西去train,反而可以得到更好的模型。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值