高斯误差线性单位(GELU)激活函数由加州大学伯克利分校的Dan Hendrycks和芝加哥丰田技术研究所的Kevin Gimpel于2018年引入。激活函数是触发神经元输出的“开关”,随着网络的深入,其重要性也随之增加。最近几周,机器学习社区中的一些讨论使GELU重新成为人们关注的焦点。
早期的人工神经元使用二进制阈值单位。这些艰难的二元决策通过sigmoid激活得到平滑,使神经元能够具有“放电率”解释并通过反向传播进行训练。这使得ReLU(整流线性单元)成为最受欢迎的激活函数,因为它具有基于输入符号的门控决策功能。
Hendrycks和Gimpel提出了非线性激活函数GELU,这是一个与随机正则子相关的公式,因为它是对自适应dropout的修正期望,为神经元输出提供了更高的概率视图。
在计算机视觉、自然语言处理和自动语音识别任务中,使用 GELU 激活函数的模型的性能与使用 ReLU 或高级版本 ELU(指数线性单位)激活函数的模型的性能相当或超过。GELU兼容BERT,ROBERTa,ALBERT和其他顶级NLP模型。
研究人员比较了GELU,ReLU和ELU激活函数在MNIST分类任务(具有10个类,60k训练示例和10k测试示例的灰度图像)上的表现。他们使用了一个完全连接的神经网络,其中包含GELU(μ = 0,σ = 1)
,ReLU
和ELU(α = 1)
。每个 8 层、128 个神经元宽的神经网络训练 50 个 epoch,批大小为 128。在测试中,GELU获得的中位数错误率为7.89%,ReLU获得8.16%,ELU获得8.41%。
研究人员还使用TIMIT数据集进行了一项基于电话的语音识别任务,该数据集包含680名说话者在安静环境中的录音。该系统是一个五层,2048神经元宽分类器,具有39个输出电话标签,丢失率为0.5。在最低验证误差下选择的中位数测试误差为GELU的29.3%,ReLU的29.5%和ELU的29.6%。
在CIFAR-10/100分类测试中使用具有10/100类,50k训练和10k测试示例的彩色图像中,研究人员使用5000个验证样本来微调初始学习率{10 ^ −3,10 ^ −4,10 ^ −5}
,然后根据交叉验证的学习率在整个训练集上再次训练。他们优化了 Adam 200 个 epoch,学习率在第 100 个 epoch 衰减到零。在这里,GELU的中位数错误率为7.89%,ReLU得分为8.16%,ELU为8.41%。
各种实验结果表明,与ReLU和ELU相比,GELU始终具有最佳性能,可以被认为是以前非线性方法的可行替代方案。
论文高斯误差线性单位(GELUS)在arXiv上。