Transformer面试总结

1. Transformer的位置信息和bert的位置信息有什么不一样?

Transformer计算token的位置信息这里使用正弦波↓,类似模拟信号传播周期性变化。这样的循环函数可以一定程度上增加模型的泛化能力。
但BERT直接训练一个position embedding来保留位置信息,每个位置随机初始化一个向量,加入模型训练,最后就得到一个包含位置信息的embedding,最后这个position embedding和word embedding的结合方式上,BERT选择直接拼接

2. Transformer里layer-normlization的作用

当我们使用梯度下降法做优化时,随着网络深度的增加,数据的分布会不断发生变化,为了保证数据特征分布的稳定性,我们加入Layer Normalization,这样可以加速模型的收敛速度
Normalization有很多种,但是它们都有一个共同的目的,那就是把输入转化成均值为 0 方差为1的数据。我们在把数据送入激活函数之前进行normalization(归一化),因为我们不希望输入数据落在激活函数的饱和区,发生梯度消失的问题,使得我们的模型训练变得困难
BN的主要思想是: 在每一层的每一批数据(一个batch里的同一通道)上进行归一化
LN的主要思想是: LN也是归一化数据的一种方式,不过是在每一个样本(一个样本里的不同通道)上计算均值和方差,而不是 BN 那种在批方向计算均值和方差!

在这里插入图片描述
在这里插入图片描述

3. Transformer里残差网络的作用

Resnet的目标是在网络深度加深的情况下解决梯度消失的问题
残差网络的精美之处在于那个shortcut的设计, 通过增加一个shortcut(也称恒等映射),而不是简单的堆叠网络层, 将原始所需要学习的函数 h(x)转换成f(x)+x 。这样可以解决网络由于很深出现梯度消失的问题.
我个人对于为什么 Resnet 能够这么好的解决梯度消失现象的理解是这样的,梯度消失往往是发生在反向传播更新网络参数的时候,传统的网络由于堆叠了太多的网络层,导致反向传播中参数更新的越来越慢(尤其是越靠近输入的网络层),甚至几乎不变,因此网络难以学到新的东西。而有了Resnet中的shortcut之后,通过这个恒等映射,在反向传播的时候,后面层的梯度可以直接传递到前面层,前面层的参数因此也能继续更新

4. Transformer为什么需要进行Multi-head Attention?

可以让模型去关注不同方面的信息,最后再将各个方面的信息综合起来, 有助于网络捕捉到更丰富的特征或者信息

5. Transformer相比于RNN/LSTM,有什么优势?为什么?

(1) RNN系列的模型,并行计算能力很差
因为时刻T的计算依赖T-1时刻的隐层计算结果,而T-1时刻的计算依赖T-2时刻的隐层计算结果, 如此下去就形成了所谓的序列依赖关系。
(2) Transformer的特征抽取能力比RNN系列的模型要好
RNN要逐步递归才能获取全局信息,因此一般要双向RNN才比较好,且下一时刻信息要依赖于前面时刻的信息。CNN 只能获取局部信息,是通过叠层来增大感受野。Attention 思路最为粗暴,一步到位获得了全局信息。

6. Transformer中的attention区别?

(1) Encoder的Self-Attention中,Q、K、V相等,他们是上一层Encoder的输出,对于第一层Encoder,他们就是Word Embedding和Positional Embedding相加得到的输入
(2) Decoder的Self-Attention 中,Q、K、V相等,它们是上一层 Decoder 的输出,对于第一层Decoder,他们就是Word Embedding和Positional Embedding相加得到的输入
(3) 在Encoder-Decoder Attention中,Q来自于上一层Decoder的输出,K和V来自于 Encoder的输出

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页