SelfAttentionAndTransformer
Self-attention
- 1. 计算 q,k,v
- 2. 计算 a
扩展之后,得到
- 3. 计算 b
- 整体来看
多头自注意力
该方式将 q,k,v 再次划分,与之前方式一样分别计算。
这样计算的结果是多头的,之后乘以变换矩阵,维度与输入保持一致,再送入下一层。
位置编码
给输入加上位置向量$e^i$。位置向量有很多种方法,研究方向之一。
Transformer
Encoder
transformer 是由多个 block 堆叠而成的。
详细看每个 block,向量输入自注意力层,自注意力层输出的向量与输入相加,形成残差结构,所得的和经过 LayerNorm,输入全连接层,同样使用了残差结构,最后经过 LayerNorm 输出。
原始 transformer 论文中的表述如下
Deoder
Autoregressive(AT)
以语音识别为例,整体来看。首先输入开始符号,得到第一个输出。再将第一个输出作为输入重新输入解码器,依此类推。
- Masked Self-attention
不考虑它之后的。为啥呢?因为它是依次输入的,输入 a2 时,还没有 a3 和 a4。
- 存在问题:不知道准确的输出长度
输出类别添加 stop token,结束时让 END 输出最大。
Non-autoregressive(NAT)
NAT 一次性输入开始符号,直接得到结果。
详细来看
提供一个 q,得到 v。
依此类推
训练
训练时,需要注意。输入是 GT,输出包含结束符 END。
测试时可能输出是错误的,可以在训练时,刻意添加错误的 GT。
即
本文作者 : HeoLis
原文链接 : https://ishero.net/SelfAttentionAndTransformer.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
学习、记录、分享、获得