面试常问系列(一)-神经网络参数初始化-之自注意力机制为什么除以根号d而不是2*根号d或者3*根号d
首先先罗列几个参考文章,大家之后可以去看看,加深理解:
- 面试常问系列(一)-神经网络参数初始化
- 面试常问系列(一)-神经网络参数初始化之自注意力机制_注意力机制的参数初始化怎么做-CSDN博客
- 面试常问系列(一)-神经网络参数初始化-之-softmax-CSDN博客
好,步入正题,我们假定各位读者看过上面👆几篇文章,已经了解了,为什么自注意力机制中要使用 进行缩放,然后我们进一步进行探究,为什么不是
。
1、实例
1.点击没有缩放的时候,标准差的范围
- 在【-
,
】,有68.26%的值在这个区间,
- 在【-2
,2
】,有95.45%的值在这个区间,
- 在【-3
,3
】,有99.73%的值在这个区间,
参考:正态分布_百度百科
2.点击缩放的时候,标准差的范围从
到 1
- x在【-1,1】,
在【0.37,2.72】有68.26%的值在这个区间,
- x在【-2,2】,
有【0.14,7.39】95.45%的值在这个区间,
- x在【-3,3】,
有【0.05,20.09】99.73%的值在这个区间,
3.点击缩放2的时候,标准差的范围从
到 0.5
- x在【-0.5,0.5】,
在【0.61,1.65】有68.26%的值在这个区间,
- x在【-1,1】,
有【0.37,2.72】95.45%的值在这个区间,
- x在【-1.5,1.5】,
有【0.22,4.48】99.73%的值在这个区间,
2、实例总结(重点)
通过上述的不同缩放比例,大家应该可以比较清晰的发现,以一个标准差(68.26%)为例,随着缩放比例加大,变化范围减小,点击值被过度压缩,导致相对趋于均匀,从而无法很好的捕捉不同特征之间的差异,趋于大家都一样的感觉,区分度被缩小。大家感兴趣的可以实操看一下,softmax在不同缩放比例下的分布情况。
3、梯度特性
若除以2,Softmax输入的方差过小,导致梯度值普遍偏低,模型训练效率显著下降。例如,在机器翻译任务中,使用2
的BLEU分数可能下降2-3个点。
4、实验验证
- 收敛速度对比
在WMT14英德翻译任务中,使用的Transformer模型在5万步迭代后达到收敛,而使用2
的模型需8万步迭代,且最终BLEU分数低1.5个点。
- 数值稳定性测试
通过模拟高维向量(d=1024)的点积计算,发现:
a. 缩放后,Softmax输入的最大值约为5,最小值约为-5,梯度值集中在[0.1,0.5];
b. 2缩放后,Softmax输入的最大值约为2.5,最小值约为-2.5,梯度值集中在[0.01,0.1],导致训练缓慢。
- 泛化能力分析
- 在GLUE基准测试中,
缩放的模型在MNLI、QQP等任务上的准确率比2
模型高1-2个百分点,表明其泛化能力更强。
- 在GLUE基准测试中,
参考:
https://zhuanlan.zhihu.com/p/32150751004