每周碎片知识29

[条件数]

一点推测:在使用fairseq时,即使使用默认的超参以及训练方法,都有一定机会出现在训练过程中出现nan的问题。这里推测或许是和条件数(condition number)相关。

condition number:若矩阵的condition number大,则与其相乘的向量做一点变化会导致相乘的结果变化很大。所以如果层数越多,理论上可能会导致后面的矩阵的condition number越来越大,而向量对应每层的输入,那么随着层数的加深,模型输入的一点扰动会随着层数的增加,scale逐渐增大,最终可能导致nan(infinity),这也是为什么transformer可能会偶尔nan的问题。(感谢郭博的科普😬)


[attention新角度]

attention可以理解成是二维的互动:$q_i$与$k_j$之间的互动,也即从二维的角度去看,矩阵的每格都是由i与j独立控制的。而LSTM可以看成是两个一维的叠加,input gate控制输入的多少,也即上一层能进入多少信息,output gate则控制输出的多少,也即下一层最多能接受多少。从二维的角度就是,一个gate控制的整行,另一个gate控制的整列。(感谢郭博科普,郭博tql😬)