自己在看面经中遇到的一些面试题,结合自己和理解进行了一下整理。
L1正则与L2正则
L1正则为将模型的权重绝对值相加,倾向于使得模型的参数变为0,从而实现特征稀疏。
L2正则为将模型的平方和相加,对模型的参数进行平滑处理,使得模型参数不会发生剧烈的变化。
不同梯度下降及特点
每一个step之后都需要进行梯度更新,因此也衍生出了不同的梯度下降算法。
1、BSD(批量随机下降)
需要计算这个step里所有数据(batch_size)的梯度值,可以找到全局最优解,但是计算开销较大。
2、MBGD(小批量随机下降)
计算这个step一部分数据的梯度值,介于BSD和SGD之间。
3、SGD(随机梯度下降)
随机计算这个step中的一个样本数据,具有随机性,收敛速度较慢,可以跳出局部最优解。
不同激活函数及特点
1、sigmoid
sigmoid(x) = 1 / 1 + exp(-x),可以将(-inf,inf)的数据压缩到0-1之间。令sigmoid(x) = p,求导后的公式为p*(1-p),x偏大或偏小会出现梯度消失。
2、tanh
tanh(x) = exp(x) - exp(-x) / exp(x) + exp(-2x),可以将(-inf,inf)的数据压缩到(-1)-1之间。令tanh(x) = p,求导后的公式为1-p2,x偏大或偏小会出现梯度消失。
3、relu
relu(x) = max(0,x),x为负数时会造成神经元死亡。
4、softmax
softmax(x) = ex1 / (ex1 + … + exn),可以将(-inf,inf)的数据压缩到0-1之间,并且所有结果相加等于1,函数图像“倒7”。令softmax(x) = p,求导后的公式为p*(1-p),x偏大或偏小会出现梯度消失,并且softmax的分母会对所有选项做指数运算,计算开销较大。
Word2vec训练流程
1.随机初始化词嵌入矩阵,包括词表大小vocab_size和嵌入维度embedding_size。
2.分别计算输入与正例和负例的相似度,取sigmoid激活后的结果 - 目标值 作为损失。
3.不断更新词嵌入矩阵,使得损失最小。
transformer中求和与归一化中“求和”是什么意思?
求和的意思就是残差层求和,原本的等式为y = H(x)转化为y = x + H(x),这样做的目的是防止网络层数的加深而造成的梯度消失,无法对前面网络的权重进行有效调整,导致神经网络模型退化(这种退化不是由过拟合造成的,而是较深模型后面添加的不是恒等映射反而是一些非线性层)。已经学习到较饱和的准确率(或者当发现下层的误差变大时),那么接下来的学习目标就转变为恒等映射的学习,也就是使输入x近似于输出H(x),以保持在后面的层次中不会造成精度下降。
transformer为什么会有位置编码
transform中的self- attention只能捕获词与词之间的相关性信息,不能捕获词之间的位置信息,因此需要引入位置编码与词向量编码相加后作为输入向量。
transformer中正余弦的位置编码为什么能够体现位置信息
由于sin和cos函数的特性,sin(a+k)=sin(a)cos(k)+sin(k)cos(a)、cos(a+k)=cos(a)cos(k)-sin(a)sin(k),a位置加上k后可以使用a位置和k位置的线性组合来表示,可以体现出它们的相对位置信息。
注意力机制中计算注意力分数时为什么会除以根号dk?
这和softmax的求导有关,softmax的计算公式=exp(x1)/exp(x1)+exp(x2),另p=exp(x1)/exp(x1)+exp(x2),那么softmax求导之后=p*(1-p),当p趋近于1时,softmax的导数就趋近于0。故除以根号dk的原因是:为了避免softmax计算的结果过大,造成偏导数为0。
多头注意力比单头注意力的好处?
多头可以捕获不同子空间内的特征,抽取到更加丰富的特征信息。
transformer比起RNN的优势?
RNN在传播的过程中会出现信息衰减&