Transformer相关知识总结-面试知识点总结4

提示:作者将用一个系列的博客,总结机器/深度学习算法工程师岗位面试中常见的一些知识点,以帮助小伙伴们更好的应对面试。本系列的内容包括如下:
系列一:机器学习相关基础知识小Tip
系列二:Python基础总结
系列三:CNN相关知识
系列四:Transformer相关知识总结
系列五:经典/热门模型介绍,及深度学习常用知识点
系列六:PyTorch相关知识点及端侧部署基础知识
注:以防再也找不到我,可以收藏博客、关注作者,查看最新内容哦(持续更新中…)

文章目录

  • 系列四:Transformer相关知识总结
    • 1.Transformer和LSTM的最大区别
    • 2.介绍Transformer及self-attention机制的实现方式?位置嵌入为什么使用三角函数?
    • 3. ViT(Vision Transformer)模型的结构和特点?
    • 4. BERT模型?
    • 5. Vision transformer(VIT模型) 与 CNN 的Inductive Bias(归纳偏置)对比分析?


系列四:Transformer相关知识总结

1.Transformer和LSTM的最大区别

LSTM的训练是迭代的, 是一个接一个字的来, 当前这个字过完LSTM单元, 才可以进下一个字, 而transformer的训练是并行了, 就是所有字是全部同时训练的, 这样就大大加快了计算效率, transformer使用了位置嵌入(positional encoding)来理解语言的顺序, 使用自注意力机制和全连接层来进行计算。

2.介绍Transformer及self-attention机制的实现方式?位置嵌入为什么使用三角函数?

Transformer模型由编码器和解码器组成,并且编码器和解码器没采用RNN或CNN等网络结构,而是完全依赖于注意力机制的架构。
Attention其实就是一次性抓取全部序列信息并做一个汇聚来表达当前词:

Transformer中dk一般为512,这个值较大。如果不除以根号下dk,做完softmax会使得向量里面的值跟极端化为1和0,不利于后期的梯度求解以及参数的更新。
为了识别不同的模式,引入多头注意力机制,学习出多个投影方法使得在那个投影进去的度量空间里面能够匹配不同模式下需要的相似函数,最后把这些东西一起返回再做一次投影。(类似于CNN中多个输出通道的意思)
Transformer 使用三角函数实现相对位置信息的表示。某一位置的词在不同的奇偶维度分别采用不同频率下的sin和cos函数的组合进而生成蕴含位置信息的高维位置向量。

3. ViT(Vision Transformer)模型的结构和特点?

ViT模型特点:1)ViT直接将标准的Transformer结构用于图像分类,其模型结构中不含CNN。2)为了满足Transformer输入结构要求,输入端将整个图像拆分成小图像块,然后将这些小图像块的线性嵌入序列输入网络中。在最后的输出端,使用了Class Token形式进行分类预测。3)Transformer比CNN结构少了一定的平移不变性和局部感知性,在数据量较少的情况下,效果可能不如CNN模型,但是在大规模数据集上预训练过后,再进行迁移学习,可以在特定任务上达到SOTA性能。 其可以具体分成如下几个部分:图像分块嵌入;多头注意力结构;多层感知机结构(MLP);使用DropPath,Class Token,Positional Encoding等操作。
Transformer相关知识总结-面试知识点总结4_第1张图片

4. BERT模型?

BERT,基于transformer的双向编码表示,它是一个预训练模型,模型训练时的两个任务是预测句子中被掩盖的词以及判断输入的两个句子是不是上下句。在预训练好的BERT模型后面根据特定任务加上相应的网络,可以完成NLP的下游任务,比如文本分类、机器翻译等。
虽然BERT是基于transformer的,但是它只使用了transformer的encoder部分,它的整体框架是由多层transformer的encoder堆叠而成的。每一层的encoder则是由一层muti-head-attention和一层feed-forword组成(feed-forword是一个两层的全连接层,它可以将数据映射到高维空间再映射到低维空间,以学习更加抽象的特征),大的模型有24层,每层16个attention,小的模型12层,每层12个attention。每个attention的主要作用是通过目标词与句子中的所有词汇的相关度,对目标词重新编码。
每个attention的计算包括三个步骤:计算词之间的相关度,对相关度归一化,通过相关度和所有词的编码进行加权求和获取目标词的编码。在通过attention计算词之间的相关度时,首先通过三个权重矩阵对输入的序列向量(512*768)做线性变换,分别生成query、key和value三个新的序列向量,用每个词的query向量分别和序列中的所有词的key向量做乘积,得到词与词之间的相关度,然后这个相关度再通过softmax进行归一化,归一化后的权重与value加权求和,得到每个词新的编码。

5. Vision transformer(VIT模型) 与 CNN 的Inductive Bias(归纳偏置)对比分析?

Vision transformer 相比 CNN,要少很多图像特有的归纳偏置。CNN 的归纳偏置有两种,分别是 locality (局部感知性)和 translation equivariance(平移等变性)。
CNN 有 locality 和 translation equivariance。归纳偏置,–> CNN有很多先验信息 --> 需要较少的数据去学好一个模型。
而在 ViT 中只有 MLP 层涉及到局部性和平移等变性,同时自注意力机制层是全局的(很好理解,因为每个patch 都会和其他patch 两两之间做注意力操作)。


注:这些知识点是作者在备战秋招的时候,根据一些零碎的博客做的总结(写作目的:主要用于各位小伙伴们的知识交流,如若侵权,则会及时删除)。

祝愿您能顺利通过每一次面试哈,干就完事了!加油!

*以防再也找不到我,可以收藏博客、关注作者,查看后续系列内容哦(持续更新中…)

你可能感兴趣的:(transformer,深度学习,python)