Py学习  »  机器学习算法

【深度学习】破解transformer八股,快问快答

机器学习初学者 • 2 年前 • 360 次点击  

本文从思路上给你关于transformer八股文,点不一样的启发。



其实有关深度学习的八股文问题,在面试中特别好答,有几个关键点,让数据分布变好,让模型好训练,增加表达能力等。



这些玄学结论都是一些实验导向的结论,很难从理论上完备推导的。你把这些基本点,在面试时候基本能说个八九不离十,如果能结合细节随便谈谈,基本上就稳了。实际上,整个深度学习的发展大概也是这么些路子。


好了,那么我们以transformer为例,搞个八股文快问快答。其中前六个也是我面试必问的题目..


1.写出selfattention的公式表达。

Sofmax(QK/sqrt(dk))V


2.为什么上面那个公式要对QK进行scaled

八股,让softmax输入的数据分布变好,数值进入梯度敏感区间,能防止梯度消失,让模型好训练。


3.self-attention一定要这样表达吗?

不需要,能刻画相关性,相似性等建模方式都可以。最好速度快,模型好学,表达能力够。


4.有其他方法不用除根号dk吗?

有,同上,只要能做到每层参数的梯度保持在训练敏感的范围内,不要太大,不要太小。那么这个网络就比较好训练。方式有,比较好的初始化方法,类似于google的T5模型,就在初始化把这个事情干了。


5.为什么transformer用Layer Norm有什么用?

八股,让神经网络各层参数输入的数据分布变好,数值进入梯度敏感区间,能防止梯度消失,让模型好训练。


6.为什么不用BN?

两个,NLP不定长,好多位置填0,影响其他样本非0参数的计算。

Transformer的模型比较大,BS拉不大,容易变得不稳定


7.Bert为什么要搞一个position embedding?

八股,增强表达能力(位置上的)。因为transformer对位置不敏感,需要显示标示


8.Bert为什么三个embedding可以相加?

【深度玄学】为何Bert三个Embedding可以相加


9.transformer为什么要用三个不一样的QKV?

八股,增强网络的容量和表达能力。


10.为什么要多头?

八股,增强网络的容量和表达能力。


11.为什么Bert中要用BPE这样的subword Token

能很好的解决单词上的OOV,在语义粒度是比较合适的表达。


班车时间有限,先写这么多,如果你在面试中碰到,或者觉得有比较好的八股问题,写在评论区吧,下期一起回答了~





    
往期 精彩回顾




站qq群955171419,加入微信群请 扫码:
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/125548
 
360 次点击