transformer 细节理解

本文详细介绍了深度学习中的一些核心概念,包括d_model、batch normalization、layer normalization、padding的作用,以及sequence mask、positional embedding、self-attention和encoder-decoder attention的工作原理。此外,还探讨了scaled dot-product attention的实现细节,强调了残差连接在防止梯度消失中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. d_model 是什么
    d_model 是one_hot 向量经过 word embedding 之后的词向量维度。

  2. batch normalization 和 layer normalization 的区别
    batch normalization 是在batch维度,对输入的多个样本进行归一化;layer normalization 是在输入向量的维度,对样本自身的所有 features 进行归一化。

  3. 为什么要 padding
    因为每个 batch 的输入序列的长度不一样,这样子网络无法进行处理,所以固定一个长度max_seq_len,然后对小于这个长度的向量进行 padding, 填充0。
    具体的做法是,把这些位置的值加上一个非常大的负数(负无穷),这样的话,经过 softmax,这些位置的概率就会接近0!

  4. Sequence mask 的作用
    因为transformer在decoder端需要encoder的attention,但是又不能看到未来的消息,或者说,解码输出应该只能依赖于 t 时刻之前的输出。Sequence mask 用来将之后的输入信息进行隐藏。
    具体做法为,产生一个上三角矩阵,上三角的值全为 1,下三角的值全为0,对角线是 1,因为当前时刻的输出和当前时刻也有关。

  5. Positional Embedding 的作用
    用来对输入的序列继续位置编码,使得transformer 可以提取序列顺序的信息,具体的哪种方法方法其实有待研究,论文中提到的并不是最优。得到的 Positional Embedding 向量是直接相加到 Word embedding 中的。

  6. self attention 和 encoder-decoder attention
    字面意思理解,self attention 就是自己的query和自己的key-value,encoder-decoder attention 就是自己的query和别人的key-value,所以在transformer中,就是指encoder-decoder 之间的 attention。

  7. scaled dot-product attention?
    这里包含三点,

  • 首先是 attention,那么就需要Q、K、V矩阵;
  • 然后是 scaled,也就是对 Q K T QK^T QKT 的 scores 进行scale,除以 d k \sqrt{d_k} dk ,表示 K 的维度,论文中默认是64,不过如果不考虑 multi-head 机制的话,那就是64*8=512,加上这个缩放因子的原因是:对于 d k d_k dk 很大的时候,点积得到的结果维度很大,使得结果处于softmax函数梯度很小的区域;
  • 最后是dot-product,说明是乘性的attention(attention 分很多种,常见的有加性和乘性),而不是把 Q 、 K Q、K QK 进行拼接。

用公式总的来描述就是:
Attention ⁡ ( Q , K , V ) = softmax ⁡ ( Q K T d k ) V \operatorname{Attention}(Q, K, V)=\operatorname{softmax}\left(\frac{Q K^{T}}{\sqrt{d}_{k}}\right) V Attention(Q,K,V)=softmax(d kQKT)V

  1. 没有multi-head 机制下的 Q 、 K 、 V Q、K、V QKV 的维度?
    首先我们使用了 batch norm,那么第一个维度肯定就是 batch 的大小 B B B

  2. residual connection 的作用
    增加了一项 x,那么该层网络对 x 求偏导的时候,多了一个常数项1。所以在反向传播过程中,梯度连乘,也不会造成梯度消失!。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值