GELU:高斯误差线性单元
在较早的阶段,人工神经单元利用二值阈值单元作为激活函数。后来,这些二值阈值被sigmoid函数代替,拥有了平滑性。然而,随着网络越来越深,利用sigmoid作为激活函数,反而不如ReLU这种非平滑且少概率的激活函数有效。同时,深度非线性分类器往往过拟合数据,所以网络设计者需要选择随机正则化器,例如:隐藏层添加随机噪音、droupout。最终,非线性激活函数与dropout共同决定神经元的输出。然而,两者仍然有明显的区别或独立,即彼此不包含。由此,GELU诞生了。
在较早的阶段,人工神经单元利用二值阈值单元作为激活函数。后来,这些二值阈值被sigmoid函数代替,拥有了平滑性。然而,随着网络越来越深,利用sigmoid作为激活函数,反而不如ReLU这种非平滑且少概率的激活函数有效。同时,深度非线性分类器往往过拟合数据,所以网络设计者需要选择随机正则化器,例如:隐藏层添加随机噪音、droupout。最终,非线性激活函数与dropout共同决定神经元的输出。然而,两者仍然有明显的区别或独立,即彼此不包含。由此,GELU诞生了。
Transformer由多头注意力和FFN交替形成的模型。其中,FFN的输入为向量$x$,再经过两个线性变形。在这两个线性变形之间的激活函数为ReLU
BPE是一个简单的数据压缩技术,迭代性的利用单个没用过的字节替换频繁的字节对。该算法应用在词分割领域,代替融合频繁的字节对,而融合字符或字符序列。首先,利用字符表初始化符号表,把每个词表示为一个字符序列,且以一个特殊的符号'.'结束。接下来,迭代性的计算所有符号对的数量,替换掉利用新的符号'AB'替换掉最频繁出现的对'(A,B)'。每个融合运算产生一个新的符号,用于表示字符的n-gram。最终,频繁的字符n-grams被融合成单个符号,即BPE不需要候选列表。最终的符号表的大小等于初始词汇表大小与融合运算的数量。其中,融合运算属于超参数。如算法1所示,BPE的算法为代码。
经典Transformer架构的位置编码属于绝对位置编码,即没有显式的包含相对位置信息。RoPE作者提出了旋转位置编码,利用旋转矩阵编码位置信息,且显式的包含相对位置信息。同时,对RoPE的推导和理论解释给出了详细的表述。