Transformer理解-八股文

1、self-attention时,为什么要对QK^{T}的值进行scaled,即除以sqrt(d_{k}),其中dk是词向量/隐藏层的维度。

其原因有如下两点:

1、防止softmax的输入过大,导致偏导数趋近于0,除以该值可以保证梯度稳定回传
2、因为可以使得Q∗ K的结果满足期望为0,方差为1的分布,类似于归一化

2、为什么Q和K使用不同的权重矩阵生成,而非使用同一个值及逆行自身的点乘?

K和Q的点乘是为了得到一个attention score矩阵,用来对V进行提纯。使用不同的权重矩阵计算是为了在不同的空间上进行投影,增强模型表达能力,提高score矩阵的泛化性。如果使用统一矩阵生成,则会引入对称性的问题,因为QK矩阵被投影到了同一个维度空间。

3、在计算attention时为什么选择点乘而非加法?两者在复杂度和效果上有无差别?

使用加法计算attention会更快,但是作为一个整体计算attention的时候,相当于一个隐层,整体计算量与点积相似。而从效果来看,二者效果与dk
 有关,dk越大加法的效果越显著

4、在计算attention score时,如何对padding做mask操作的?

由于padding都是0, 在计算时e^0 = 1使用softmax会导致padding的值也会占全局一定的概率,因此,使用mask的目的就是让这部分的值无穷小,让他在softmax之后基本为0从而保证不影响attention socre的分布。

5、如何进行mask

在计算QK^{T}后,加上一个矩阵M,其元素为0或-inf(来自:Transformer结构详解 - 知乎)。还有其他实现

6、Transformer如何使用多头注意力机制的?为什么不使用一个头?

多头注意力机制从直觉上的解释其实类似于CNN中的多核,关注不同子空间的信息来捕捉更加丰富的特征信息。它扩展了模型专注于不同位置的能力,它为关注层提供了多个“表示子空间”。
有文章证明确实使用一个头的效果可能真的不够https://www.zhihu.com/question/341222779
本质就是bagging的集成思想,可以聚合更多的子空间信息

7、残差结构与LN。为什么使用LN而非BN,LN在transformer的位置时哪里,BN的使用场景与LN的区别

  • BatchNorm是对列做操作,对每一列求均值和方差(求的是同一特征下,不同样本的统计量),然后规范化;
  • LayerNorm是对行做操作,对每一行求均值和方差(求的是同一样本下,不同特征的统计量),然后规范化。

BN 一般在MLP和CNN上有较好的表现,在RNN模型中表现较差。这是因为BN时对每个特征在每个batch size上求均值和方差。而LN则是对整个文本长度求均值和方差。
而残差结构可以防止梯度消失,帮助深层网络进行训练。

8、encoder-decoder的链接部分Q、K、V是分别来自哪里?

Q是来自decoder上一个block产生的矩阵结果,K和V是来自encoder

10、训练与预测

训练时:第i个decoder的输入 = encoder输出 + ground truth embeding
预测时:第i个decoder的输入 = encoder输出 + 第(i-1)个decoder输出

  • 28
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Transformer是一种用于处理序列数据的神经网络模型。它在自然语言处理和计算机视觉领域都有广泛的应用。Transformer的设计中有一些常见的要素和技术,被称为"Transformer八股文"。以下是其中的几个要素和技术: 1. 全局自注意力(Global Self-Attention): Transformer中的自注意力机制允许每个词向量与其他词向量进行交互,以捕捉长距离依赖关系。然而,这种计算成本非常高,因为需要对整个输入序列进行计算。为了解决这个问题,可以采用局部自注意力(Local Self-Attention),它限制了每个词向量的交互域,从而降低了计算成本。 2. 反卷积(Deconvolution):反卷积是一种用于上采样或增加特征图尺寸的操作。在全卷积网络(Fully Convolutional Network)中,反卷积被用于将低分辨率的特征图恢复到原始输入的尺寸。另外,反卷积也常用于图像分割和图像生成等任务中。 3. Layer Norm:Layer Norm是一种归一化技术,用于在Transformer中对每个层的输入进行归一化。它的位置在多头注意力层和激活函数层之间。在计算机视觉领域,常使用批归一化(Batch Normalization),因为通道维度的信息对计算机视觉任务有重要意义。而在自然语言处理领域,由于句子长度不一致且各个批次的句子之间没有关系,所以只考虑句子内部的归一化,即Layer Norm。Layer Norm的目的是解决梯度消失的问题。 4. Dropout:Dropout是一种正则化技术,用于减少神经网络的过拟合现象。在Transformer中,Dropout被应用于隐藏层,其目的是随机地将一些神经元的输出置为零,从而减少神经元之间的依赖关系,提高模型的鲁棒性。 总结起来,Transformer八股文涉及到全局自注意力、反卷积、Layer Norm和Dropout等技术,它们在Transformer的设计中起到了关键的作用。这些技术帮助提高了模型的性能,并广泛应用于自然语言处理和计算机视觉领域的各种任务中。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [CSWin Transformer](https://download.csdn.net/download/qq_36758270/88233972)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [深度学习八股文](https://blog.csdn.net/weixin_42693876/article/details/120345924)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值