论文:gaussian error linear units
(一)、什么是激活函数?
激活函数的本质就是给网络模型增加非线性,也就是在wTx+bw^Tx+bwTx+b等线性变换后面加一个非线性变换,这个非线性变换就称为激活函数。
(二)、什么是gelu激活函数?
gelu(gaussian error linear units)就是我们常说的高斯误差线性单元,它是一种高性能的神经网络激活函数,因为gelu的非线性变化是一种符合预期的随机正则变换方式,公式如下:xP(X≤x)=xΦ(x)(2.1){xP(X \le x)=x\Phi(x)}\tag{2.1}xP(X≤x)=xΦ(x)(2.1)其中Φ(x)\Phi(x)Φ(x)指的是xxx的高斯正态分布的累积分布,完整形式如下:xP(X≤x)=x∫−∞xe−(X−μ)22σ22πσdX(2.2){xP(X \le x)=x\int_{-\infty}^{x}\frac{e^{-\frac{(X-\mu)^2}{2\sigma^2}}}{\sqrt{2\pi}\sigma} \, \mathrm{d}X}\tag{2.2}xP(X≤x)=x∫−∞x2πσe−2σ2(X−μ)2dX(2.2)计算结果约为:0.5x(1+tanh[2π(x+0.044715x3)])(2.3){0.5x(1+tanh[\sqrt{\frac{2}{\pi}}(x+0.044715x^3)])}\tag{2.3}0.5x(1+tanh[π2(x+0.044715x3)])(2.3)或者可以表示为:xσ(1.702x)(2.4){x\sigma(1.702x)}\tag{2.4}xσ(1.702x)(2.4)由此可知,概率P(X≤x)P(X\leq x)P(X≤x)(xxx可看成当前神经元的激活值输入),即XXX的高斯正态分布ϕ(X)\phi(X)ϕ(X)的累积分布Φ(x)\Phi(x)Φ(x)是随着xxx的变化而变化的,当xxx增大,Φ(x)\Phi(x)Φ(x)增大,当x减小,Φ(x)\Phi(x)Φ(x)减小,即当xxx越小,在当前激活函数激活的情况下,越有可能激活结果为0,即此时神经元被dropout,而当xxx越大越有可能被保留。
(三)、gelu的使用技巧(practices tips)
1.当在训练过程中使用gelus作为激活函数进行训练时,建议使用一个带有动量(momentum)的优化器,并将其作为深度学习网络的一种规范。
2.在使用gelus的过程中,公式(3)的σ\sigmaσ函数的选择是非常关键的,一般需要使用与正态分布的累积分布近似的函数,一般可以选择与正态分布的累积分布较为近似的函数sigmoid(x)=1/(1+e(−x))sigmoid(x)=1/(1+e^{(-x)})sigmoid(x)=1/(1+e(−x))作为σ\sigmaσ函数。
(四)、gelu激活函数的公式说明
1.在确定gelus激活函数公式之前,作者说,他发现SLU(Sigmoid Linear Units),即xσ(x)x\sigma(x)xσ(x)函数效果比ELU(Exponential Linear Units)和RELU(Rectified Linear Units)效果好,但是比xsigmoid(1.702x)xsigmoid(1.702x)xsigmoid(1.702x)公式效果要差,所以最终使用了sigmoid(1.702x)sigmoid(1.702x)sigmoid(1.702x)而不是sigmoid(x)sigmoid(x)sigmoid(x)去替代高斯分布的累计分布Φ(x)\Phi(x)Φ(x)。
2.之所以选择类高斯分布累积分布的函数去构建gelus激活函数公式,一是因为依据中心极限定理,大量独立随机变量的总体是服从近似正态分布的,因此,现实中有很多复杂情况可以被建模成近似正态分布,使用类正态分布函数作为激活函数就更加合理,二是在具有相同方差的所有可能的分布中,正态分布具有最大不确定性,即熵最大。
(五)、Gelu(u(均值)=0,σ(方差)=1u(均值)=0,σ(方差) =1u(均值)=0,σ(方差)=1),Elu(α=1\alpha=1α=1),Relu激活函数对比图
(六)、Gelu(u(均值)=0,σ(方差)=1u(均值)=0,σ(方差) =1u(均值)=0,σ(方差)=1),Elu(α=1\alpha=1α=1),Relu在Cifar-10数据集上的Classification Error(%)对比图
(七)、Gelu(u(均值)=0,σ(方差)=1u(均值)=0,σ(方差) =1u(均值)=0,σ(方差)=1),Elu(α=1\alpha=1α=1),Relu在Cifar-100 Wide Residual Network 上Log Loss的对比图
(八)、补充:ELu(Exponential Linear Units)公式
{xifx>0α(exp(x)−1)ifx≤0(7.1)\begin{cases} x\quad \quad if \ x>0\\ {\alpha(exp(x)-1)\quad if \ x \leq 0}\tag{7.1} \end{cases} {xifx>0α(exp(x)−1)ifx≤0(7.1)
如果觉得《深度学习中的gelu激活函数详解》对你有帮助,请点赞、收藏,并留下你的观点哦!