- Transformer详解(1)—原理部分
- Transformer详解(2)—使用自己的数据训练tensor2tensor
- Transformer详解(3)—面试八股文
文章目录
- 1.Transformer 的结构是什么样的?
- 2.Transformer Decoder 端的输入具体是什么?
- 3.Transformer 中一直强调的 self-attention 是什么?self-attention 的计算过程?为什么它能发挥如此大的作用?self-attention 为什么要使用 Q、K、V,仅仅使用 Q、V/K、V 或者 V 为什么不行?
- 4.Transformer 为什么需要进行 Multi-head Attention?这样做有什么好处?Multi-head Attention 的计算过程?各方论文的观点是什么?
- 5.Transformer 相比于 RNN/LSTM,有什么优势?为什么?
- 6.Transformer 是如何训练的?测试阶段如何进行测试呢?
- 7.Transformer 中的 Add & Norm 模块,具体是怎么做的?
- 8.为什么说 Transformer 可以代替 seq2seq?
- 9.Transformer 中句子的 encoder 表示是什么?如何加入词序信息的?
- 10.Transformer 如何并行化的?
- 11.self-attention 公式中的归一化有什么作用?(Q、K矩阵相乘为什么最后要除以√d_k)
- 12. Transformer如何解决梯度消失问题?
- 13. 为何Transformer中使用LN而不用BN?
- 14. LN的作用是什么?
- 15. Transformer是自回归模型还是自编码模型?
- 16. 原论中编码器与解码器的Embedding层的权重为什么要乘以√d_model
- 17. Transformer在训练与验证的时候有什么不同
- 18. Transformer模型的计算复杂度是多少?
- 19. transformer有几个注意力层
- 20. Transformer中的mask机制有什么作用
- 21. Transformer 在哪里做了权重共享,为什么可以做权重共享?
- 22. Transformer各模块代码实现
- reference
1.Transformer 的结构是什么样的?
Transformer 本身还是一个典型的 encoder-decoder 模型,如果从模型层面来看,Transformer 实际上就像一个 seq2seq with attention 的模型,下面大概说明一下 Transformer 的结构以及各个模块的组成。
1.1 Encoder 端 & Decoder 端总览
(1) Encoder 端由 N=6个相同的大模块堆叠而成,其中每个大模块又由两个子模块构成,分别为多头 self-attention 模块;以及一个前馈神经网络模块;
Encoder 端每个大模块接收的输入是不一样的,第一个大模块(最底下的那个)接收的输入是输入序列的 embedding(embedding 可以通过 word2vec 预训练得来,也可随机初始化),其余大模块接收的是其前一个大模块的输出,最后一个模块的输出作为整个 Encoder 端的输出。
(2) Decoder 端同样由 N(原论文中N=6)个相同的大模块堆叠而成,其中每个大模块则由三个子模块构成,分别为多头 self-attention 模块;多头 Encoder-Decoder attention 交互模块;以及一个前馈神经网络模块;
Decoder端每个大模块接收的输入也是不一样的,其中第一个大模块(最底下的那个)训练时和测试时的接收的输入是不一样的,其余大模块接收的是同样是其前一个大模块的输出,最

本文详细介绍了Transformer的结构,包括Encoder和Decoder的组成,特别是self-attention和多头注意力机制。Transformer相比RNN/LSTM的优势在于并行计算能力和更强的特征抽取。训练和测试阶段的区别在于Decoder的输入处理。文章还探讨了位置编码、多头注意力的计算过程以及Transformer如何解决梯度消失问题。此外,解释了Transformer为何可以代替seq2seq模型以及权重共享的原因。
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



