小白总结Transformer模型要点(二)(上)

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 本文主要总结了Transformer模型的要点,包含模型架构各部分组成和原理、常见问题汇总、模型具体实现和相关拓展学习。

5.LayerNorm

在NLP中很少使用BN,基本都使用LN,因为BN的效果很差;

后续也有很多对BN的改进,以支持NLP任务。

特征缩放是为了消除量纲的影响,让模型收敛得更快。

2345_image_file_copy_178.jpg2345_image_file_copy_179.jpg

BN是对一个Batch中的多个样本的同一维度的数据进行归一化处理,可以看作一个Batch中的所有样本的同一个特征(例如人的身高、体重等多个维度分别进行BN)。


BN优点:


可以解决内部协变量偏移;


缓解了梯度饱和问题(如果使用sigmoid激活函数的话),加快收敛。


BN的缺点:


batch_size较小的时候,效果差


BN的假设是使用一个Batch中样本的均值和方差来模拟全部数据的均值和方差,此时如果Batch的数量很少时,就会出现假设偏差较大的情况。


BN在RNN中效果比较差


这一点和第一点原因很类似。

2345_image_file_copy_180.jpg

  • 因为RNN的输入是动态的,即数据的长度可能不一样,因此不能有效地得到整个Batch的均值和方差。

LN是对一个样本的所有特征进行缩放,例如对一个句子样本的所有单词做缩放。

为什么使用LN、不使用BN:

2345_image_file_copy_181.jpg

可以看到,相比于BN,LN在NLP任务中更有意义,例如我和今具有不同的语义信息,而LN是对一个句子进行缩放,一个句子的所有词存在于同一个语义信息中,这样可以得到更容易理解的语义。

前馈神经网络:

2345_image_file_copy_182.jpg同时,FFN也是只考虑对单个位置进行建模,不同位置之间共享参数,类似于1*1的pointwise的CNN。

6.Decoder

2345_image_file_copy_183.jpg

2345_image_file_copy_184.jpg

之所以要进行Mask遮挡:

2345_image_file_copy_185.jpg

没有遮挡

2345_image_file_copy_186.jpg

可以看到, 所有单词都会为You这个单词提供信息。


但是通过这样的方式训练出来的模型,在预测阶段会出现问题,比如预测阶段的当前单词为You,并不知道ground truth中You后面的信息(单词)什么(这也就是预测的出发点),看不见未来时刻的单词;因此如果在训练时不遮挡掉后面的单词,则模型在训练和测试时就会存在gap。


有遮挡

2345_image_file_copy_188.jpg

在训练和测试时都遮挡掉当前单词后面的单词,从而消除了训练和测试的gap,保证了一致性。


遮挡可以直观地理解为:在进行翻译时,遮挡掉后面的单词,让人来翻译得到后面位置的单词,也就是通过训练得到答案,而不是直接给出答案。


同时需要注意,在进行Mask时,有2个地方需要分别考虑:


(1)自注意力层Mask Multi-Head Attention,有2部分需要进行Mask,一部分是解码端输入的Padding的 Mask,另一部分是当前单词后面的单词进行Mask(上三角矩阵):


图示如下:

2345_image_file_copy_189.jpg

矩阵中,为1的位置是应该遮挡起来、看不到的。

相关文章
|
机器学习/深度学习 编解码 算法
DL之DeepLabv2:DeepLab v2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之DeepLabv2:DeepLab v2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之DeepLabv2:DeepLab v2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
|
19天前
|
机器学习/深度学习 存储 算法
【轻量化:实操】动手实现神经网络中的裁枝操作(附演示代码&yolo系列)
【轻量化:实操】动手实现神经网络中的裁枝操作(附演示代码&yolo系列)
103 1
|
机器学习/深度学习 自然语言处理
小白总结Transformer模型要点(一)(下)
本文主要总结了Transformer模型的要点,包含模型架构各部分组成和原理、常见问题汇总、模型具体实现和相关拓展学习。
小白总结Transformer模型要点(一)(下)
|
机器学习/深度学习 自然语言处理 并行计算
小白总结Transformer模型要点(一)(上)
本文主要总结了Transformer模型的要点,包含模型架构各部分组成和原理、常见问题汇总、模型具体实现和相关拓展学习。
小白总结Transformer模型要点(一)(上)
|
机器学习/深度学习 自然语言处理 语音技术
小白总结Transformer模型要点(二)(下)
本文主要总结了Transformer模型的要点,包含模型架构各部分组成和原理、常见问题汇总、模型具体实现和相关拓展学习。
小白总结Transformer模型要点(二)(下)
|
机器学习/深度学习 人工智能 并行计算
深度学习模型训练推理——基础环境搭建推荐博文查阅顺序【❤️基础安装—认真帮大家整理了❤️】
博主这里梳理了自己过去两年,认真撰写的一些基础知识方面的干货博文,希望能够有效帮助到更多刚刚投身于ML、DL 领域不久的小伙伴们
317 0
深度学习模型训练推理——基础环境搭建推荐博文查阅顺序【❤️基础安装—认真帮大家整理了❤️】
|
算法 数据挖掘 C++
DL之GCN:GCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之GCN:GCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之GCN:GCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
|
机器学习/深度学习 算法 测试技术
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略(一)
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略(一)
|
算法 计算机视觉 异构计算
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
|
机器学习/深度学习 算法 数据可视化
DL之FCN:FCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之FCN:FCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之FCN:FCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略