互联网大厂算法岗深度学习八股文——Transformer高频考点系列(三)
在互联网大厂算法岗的面试环节中,深度学习相关八股文的重要性早已无需多言。算法岗面试八股文看似是一个大家"背答案,对于记忆力的比拼",但实际上却是互联网大厂面试官考察候选人知识体系完整性和基础知识掌握扎实程度最直接、有效的方式!因此八股文在面试中的重要性不言而喻。
大家在求职过程中会发现,当下很多大厂算法岗面试八股文资料杂乱无章,不成体系,需要花费大量的时间和精力进行整理,耽误求职复习进度。本深度学习算法岗求职八股文专栏将互联网大厂面试中的高频八股知识点进行了汇总和梳理,并且附带参考答案。助力大家在求职面试前打下扎实的基础功底,面试过程中游刃有余!
本文是《深度学习算法岗求职八股文专栏》 中Transformer高频考点系列的第三篇文章,整理了面试过程中Transformer的高频考点,并且附带参考答案。
为什么Transformer 网络中的位置编码采用正余弦的形式?
正余弦位置编码具有几个比较不错的属性:
(1)可区分性:周期函数具有唯一的值,这意味着每个位置的编码都是独一无二的,从而保证了模型可以区分不同位置的元素。
(2)相对位置关系:通过使用正弦和余弦函数,可以通过位置编码的相加或相减来很容易地捕捉到元素之间的相对位置。这是因为正弦和余弦函数的和与差具有良好的数学性质,可以保持周期性,这对于模型理解序列中的模式非常重要。
(3)无限序列支持:周期函数不依赖于固定的序列长度,这使得 Transformer 能够处理可变长度的输入序列。即使在训练时序列长度有限,模型也能够推广到更长的序列。
(4)连续性和平滑性:周期函数是平滑且连续的,这有助于模型学习输入序列中的位置变化,因为相邻位置的编码也是相似的。
设计位置编码的相关原则是什么?
(1)位置编码必须是确定性的;
(2)针对不同间隔处的位置其位置编码都是独一无二的;
(3)针对不同长度的输入,任何两个相同间隔位置的距离应该保持一致;
(4)位置编码可以泛化到更长的输入,同时位置编码的值是要有界的
Transformer 中的 Encoder 和 Decoder 模块有什么区别?
二者的区别可以从结构和功能两个方面来说:
(1) 结构上:
- Encoder 模块包括两个子模块,分别是多头Self-Attention模块以及一个前馈神经网络(FFN)模块;
- Decoder 模块包括三个子模块,分别是多头Self-Attention模块、多头Cross-Attention模块以及一个前馈神经网络(FFN)模块;
(2) 功能上:
- Encoder 模块的主要任务是将输入特征信息转换为一组特征表示。这些特征表示包含了输入序列的语义信息,供Decoder在生成结果时参考;
- Decoder 模块的任务是输出网络模型的预测结果,通常是根据Encoder模块的输出特征表示和以及ObjectQuery通过查询交互的方式进行实现的。
介绍一下视觉Transformer中的Decoder模块
输入到Decoder模块中的元素包括来自Encoder模块的输出特征,同时还包括加入了位置编码向量的Object Query。Object Query 通过 Decoder 模块的处理转换成对应的 OutputEmbedding,然后OutputEmbedding 通过 FFN 层独立解码出预测结果。
在Decoder模块中,对输入的ObjcetQuery以及Encoder模块的输出特征进行交叉注意力机制的运算以及FFN过程,得到最终的预测结果。
#算法##高频知识点汇总##互联网求职##面经##八股#全网最全面的深度学习算法岗求职八股文专栏,内容涵盖互联网大厂算法岗实习、秋招、春招面试环节中常考的高频八股文题目,适合想要打牢基础知识、准备求职的算法工程师或者准算法工程师阅读学习。