【论文精读(GELUS)】GAUSSIAN ERROR LINEAR UNITS (GELUS)

GELU:让计算机视觉、NLP、语音任务性能飙升的激活函数


本文探讨的高斯误差线性单元(Gaussian Error Linear Unit,GELU)是由Dan Hendrycks和Kevin Gimpel提出的一种高性能神经网络激活函数。该研究发表后,在神经网络领域引起广泛关注,其创新性地结合了随机正则化思想,为神经元输出带来更具概率性的视角,在多个领域展现出优于传统激活函数的性能。

相关链接:https://doi.org/10.48550/arXiv.1606.08415

之前的问题

在神经网络发展历程中,激活函数的选择一直至关重要。早期的二元阈值单元被sigmoid激活函数平滑处理后,虽能用于反向传播训练,但随着网络加深,训练效果不如ReLU。ReLU基于输入符号进行硬门控决策,尽管缺乏统计动机,却常能使网络更快更好地收敛。后来出现的ELU在ReLU基础上改进,允许输出负值,有时能提升训练速度。然而,这些激活函数仍存在不足,网络设计师还需额外添加随机正则化方法,如在隐藏层添加噪声或使用dropout,且随机正则化与激活函数的设计相互独立,二者未能有效融合,限制了神经网络性能进一步提升。

之前的方案

传统激活函数,如ReLU和ELU,在不同场景下各有优劣。ReLU计算简单,能有效缓解梯度消失问题,在许多任务中表现出色,但它在负半轴输出恒为0,可能导致神经元“死亡”,丢失部分信息。ELU在ReLU基础上,通过引入负半轴的非零输出,使神经元在负输入时有更合理的响应,一定程度上加快了训练速度,但在复杂函数逼近能力等方面仍有提升空间。而随机正则化方法,如dropout,虽能增强模型泛化能力,降低过拟合风险,但它与激活函数在设计和作用机制上相互独立,无法协同发挥更大作用。


Proposed Method(提出方法):

GELU的提出

GELU的灵感来源于dropout、zoneout和ReLU的特性。它通过随机将神经元输入乘以0或1来实现类似随机正则化的效果,不过这里0 - 1掩码的值由输入决定且服从标准正态分布的累积分布函数(CDF)。具体来说,将神经元输入x乘以m \sim Bernoulli(\Phi(x)),其中\Phi(x)=P(X \leq x)X \sim N(0,1)。这样,输入x越小,被“丢弃”的概率越高,实现了随机且依赖输入的变换。在此基础上,GELU定义为该随机正则化变换的期望,即GELU(x)=xP(X \leq x)=x\Phi(x) 。同时,GELU还给出了两个近似公式:0.5x(1 + tanh[\sqrt{2 / \pi}(x + 0.044715x^{3})])x\sigma(1.702x),在实际应用中,使用前者能在保证精度的同时有效提升计算效率。

GELU的优势

相比ReLU和ELU,GELU具有独特优势。从函数特性看,GELU是非凸、非单调的,在正半轴不是线性的,处处有曲率,这使得它能更好地逼近复杂函数。而ReLU和ELU是凸函数且单调,在正半轴为线性,曲率不足。从输入处理方式上,ReLU依据输入符号进行门控,GELU则根据输入比其他输入大的程度来加权,对输入信息的利用更充分。此外,GELU具有概率解释,它是一种随机正则化的期望,这为神经网络引入了更合理的概率视角,增强了模型的泛化能力。

实验与结果

作者在多个任务上对GELU、ELU和ReLU进行了评估,包括MNIST分类、MNIST自编码器、Tweet词性标注、TIMIT帧识别以及CIFAR - 10/100分类。

1. MNIST分类:训练8层、128神经元的全连接神经网络50个epoch,结果显示GELU在训练损失和抗噪声能力上表现出色,使用GELU的分类器对噪声输入更鲁棒,训练对数损失更低。

2. MNIST自编码器:训练深度自编码器,GELU能适应不同学习率,重构误差显著低于其他非线性激活函数。

3. Tweet词性标注:在相对较小的词性标注数据集上,GELU的测试集错误率最低(12.57%),优于ReLU(12.67%)和ELU(12.91%) 。

4. TIMIT帧识别:构建5层、2048神经元的分类器,GELU的测试误差(29.3%)低于ReLU(29.5%)和ELU(29.6%) 。

5. CIFAR - 10/100分类:在浅层卷积神经网络和宽残差网络上实验,GELU的错误率均低于ReLU和ELU。如在CIFAR - 10的浅层网络中,GELU错误率为7.89% ,ReLU为8.16%,ELU为8.41%;在CIFAR - 100的宽残差网络中,GELU错误率为20.74% ,ReLU为21.77%,ELU为22.98% 。


最后的思考

尽管GELU在多个实验中表现优异,但它与传统激活函数也存在一些联系。当\sigma \to 0\mu = 0时,GELU会趋近于ReLU,从这个角度看,GELU可以被视为一种平滑的ReLU。在实际应用中,使用GELU时建议搭配带动量的优化器,这是训练深度神经网络的标准做法。同时,选择合适的高斯分布累积分布函数近似公式很关键,实验发现使用0.5x(1 + tanh[\sqrt{2 / \pi}(x + 0.044715x^{3})])效果较好。未来,激活函数的研究方向可能会朝着更加智能化、自适应的方向发展,如何进一步结合随机正则化和激活函数设计,开发出更高效、泛化能力更强的激活函数,仍是值得探索的问题。

你可能感兴趣的:(NLP(自然语言处理),神经网络,nlp,计算机视觉,深度学习,自然语言处理)