RMSNorm:均方根层标准化
在深度神经网络中,LayerNorm用于帮助稳定化训练且提升模型的拟合能力。这是因为LayerNorm对输入和权重矩阵具有re-centering与re-scaling不变的特性。然而,随着网络加深,尤其是RNN,因计算量越来越大导致LayerNorm带来性能的成本越来越高。由此,在LayerNorm的re-centering不变属于不必要的假设下,RMSNorm基于均方根进行标准化,且使模型拥有re-scaling不变的特性和学习率的隐式自适应能力。
在深度神经网络中,LayerNorm用于帮助稳定化训练且提升模型的拟合能力。这是因为LayerNorm对输入和权重矩阵具有re-centering与re-scaling不变的特性。然而,随着网络加深,尤其是RNN,因计算量越来越大导致LayerNorm带来性能的成本越来越高。由此,在LayerNorm的re-centering不变属于不必要的假设下,RMSNorm基于均方根进行标准化,且使模型拥有re-scaling不变的特性和学习率的隐式自适应能力。
深度神经网络是由线性变形和激活函数构成。其中,激活函数对深度神经网络的训练成功很重要。激活函数ReLU因其简单性和可靠性,而得到了广泛的采用。虽然许多实践者提出了ReLU的替代版,但是这些激活函数对于不同的模型和数据集往往拥有不一致的表现。由此,Searching for Activation Functions作者们利用自动搜索技术,找到了Swish激活函数,其性能不仅优越于ReLU,且表现一致。
在较早的阶段,人工神经单元利用二值阈值单元作为激活函数。后来,这些二值阈值被sigmoid函数代替,拥有了平滑性。然而,随着网络越来越深,利用sigmoid作为激活函数,反而不如ReLU这种非平滑且少概率的激活函数有效。同时,深度非线性分类器往往过拟合数据,所以网络设计者需要选择随机正则化器,例如:隐藏层添加随机噪音、droupout。最终,非线性激活函数与dropout共同决定神经元的输出。然而,两者仍然有明显的区别或独立,即彼此不包含。由此,GELU诞生了。
Transformer由多头注意力和FFN交替形成的模型。其中,FFN的输入为向量$x$,再经过两个线性变形。在这两个线性变形之间的激活函数为ReLU
BPE是一个简单的数据压缩技术,迭代性的利用单个没用过的字节替换频繁的字节对。该算法应用在词分割领域,代替融合频繁的字节对,而融合字符或字符序列。首先,利用字符表初始化符号表,把每个词表示为一个字符序列,且以一个特殊的符号'.'结束。接下来,迭代性的计算所有符号对的数量,替换掉利用新的符号'AB'替换掉最频繁出现的对'(A,B)'。每个融合运算产生一个新的符号,用于表示字符的n-gram。最终,频繁的字符n-grams被融合成单个符号,即BPE不需要候选列表。最终的符号表的大小等于初始词汇表大小与融合运算的数量。其中,融合运算属于超参数。如算法1所示,BPE的算法为代码。