目录
[三、上述 Transformer 文献的基本介绍](#三、上述 Transformer 文献的基本介绍)
一 、6篇建议阅读的T ran sformer文献
[1] Bahdanau D, Cho K, Bengio Y. Neural Machine Translation by Jointly Learning to Align and Translate[J]. Computer Science, 2015.
[2] Cheng J, Dong L, Lapata M. Long Short-Term Memory-Networks for Machine Reading[J]. 2016.
[3] Vaswani A, Shazeer N, Parmar N, et al. Attention Is All You Need[J]. arXiv, 2017.
[4] An Image Is Worth 16X16 Words: Transformers For Image Recognition At Scale
[5] Bert: Pre-training of Deep Bidirectional Transformers for Language Understanding
[6] Efficient Transformers: A Survey
二 、5篇建议阅读的 博客或视频
[8]
Transformer详解(看不懂你来骂我)_transformer 详解 espresso encode notebooks transform-CSDN博客
[9] The Annotated Transformer (harvard.edu)
[10] 台大李宏毅21年机器学习课程 self-attention和transformer_哔哩哔哩_bilibili
[11] 清华博士花费8小时录制的【Transformer实战教程】吐血上传草履虫也能学会的Transformer代码!(深度学习入门/神经网络/人工智能)_哔哩哔哩_bilibili
三、上述 Transformer 文献的基本介绍
Transformer [3]是一种 seq2seq 模型,由Google于2017年提出,是一种完全基于注意力机制且没有类 RNN 或卷积的网络结构,最早适用于 NLP 领域。
Transformer 与文献 [1, 2] 中的注意力机制的原理相同但实现方式有区别,[1, 2] 中的注意力机制是依赖于类 RNN 网络的隐层输出得到的,而 Transformer 中的自注意力是直接从输入数据中计算得出的。
文献 [3] 详细地描述了Transformer的总体结构以及各个模块的组成内容,其中的核心部分注意力机制也有示意图展示。
文献 [4] 是ICLR 2021里的一篇Paper,这篇文献提出了ViT图像分类模型。虽然不是第一篇将transformer应用在视觉任务的论文,但是因为其模型"简单"且效果好,可扩展性强(模型越大效果越好),成为了 Transformer 在 CV 领域应用的里程碑著作。其得出的结果为:当拥有足够多的数据进行预训练的时候,ViT 的表现就会超过 CNN,突破 Transformer 缺少归纳偏置的限制。
文献 [5] 中提出了Bert模型。BERT(Bidirectional Encoder Representations from Transformers)是一种Transformer的双向编码器,旨在通过在左右上下文中共有的条件计算来预先训练来自无标号文本的深度双向表示。因此,经过预先训练的BERT模型只需一个额外的输出层就可以进行微调,从而为各种自然语言处理任务生成最新模型。
文献 [6] 对近些年来产生的 Transformer 模型进行了分类,但主要关注attention模块的效率问题。
四、 学习顺序
首先阅读文献 [1][2] 了解注意力机制在传统RNN或CNN中的应用。
再阅读文献 [3] 了解Transformer的基本结构以及注意力机制在整个网络中的作用。因为此论文并没有对每个结构做详细的分析,可以对照博客 [7] 进行对照阅读。
博客 [7] 主要对Attention结构和整个网络的运行步骤进行了分析,通过此博客可以了解整个Attention机制的计算步骤以及网络的数据流动方式。但此博客对其它结构并没有详细的描述,例如词嵌入层。因此可以阅读博客 [8] 来查漏补缺。
博客 [8] 对各个模块都进行详细的分析(如LayerNorm,Embedding),并且包含示意图分析,理解起来比较容易,部分分析还附带代码展示。模型的代码可以在博客 [9] 里找到,此博客根据文献 [3] 的内容撰写了代码,而且是根据文献每一段的内容附上相应代码,因此可以清晰知道每一部分代码实现了什么功能,对应原文什么模块。因为是全英文撰写,阅读起来有困难可以配合着视频 [11] 一起学习。
视频 [11] 分模块对每一个代码进行了讲解和演示。经过此学习如果任然对注意力机制有疑惑,可以观看视频 [10] 进一步加深理解。