分类目录:《机器学习中的数学》总目录
相关文章:
· 激活函数:基础知识
· 激活函数(一):Sigmoid函数
· 激活函数(二):双曲正切函数(Tanh函数)
· 激活函数(三): 线性整流函数(ReLU函数)
· 激活函数(四):Leaky ReLU函数
· 激活函数(五):ELU函数
· 激活函数(六):Parametric ReLU(PReLU)函数
· 激活函数(七):Softmax函数
· 激活函数(八):Swish函数
· 激活函数(九):Maxout函数
· 激活函数(十):Softplus函数
· 激活函数(十一):Softsign函数
· 激活函数(十二):高斯误差线性单元(GELUs)
高斯误差线性单元为Gaussian Error Linerar Units,来源于论文《Gaussian Error Linear Units (GELUs)》。在神经网络的建模过程中,模型很重要的性质就是非线性,同时为了模型泛化能力,需要加入随机正则,例如dropout(随机置一些输出为0,其实也是一种变相的随机非线性激活),而随机正则与非线性激活是分开的两个事情, 而其实模型的输入是由非线性激活与随机正则两者共同决定的。
高斯误差线性单元正是在激活中引入了随机正则的思想,是一种对神经元输入的概率描述,直观上更符合自然的认识,同时实验效果要比ReLU与ELU都要好。
GELUs其实是dropout、zoneout、ReLU的综合,GELU对于输入乘以一个
[
0
,
1
]
[0,1]
[0,1]组成的mask,而该mask的生成则是依概率随机的依赖于输入。假设输入为
X
X
X, mask为
m
m
m,则
m
m
m服从一个伯努利分布
Φ
(
x
)
=
P
(
X
<
x
)
\Phi(x)=P(X<x)
Φ(x)=P(X<x),其中
X
X
X服从标准正态分布。这么选择是因为神经元的输入趋向于正态分布,这么设定使得当输入
x
x
x减小的时候,输入会有一个更高的概率被dropout掉,这样的激活变换就会随机依赖于输入了。
GELU
(
x
)
=
x
Φ
(
x
)
=
x
P
(
X
<
x
)
\text{GELU}(x)=x\Phi(x)=xP(X<x)
GELU(x)=xΦ(x)=xP(X<x)
高斯误差线性单元激活函数在最近的Transformer模型,包括谷歌的BERT和OpenAI 的GPT-2中得到了应用。