GELU由来:从狄拉克函数到GELU激活函数
Transformer兴起后,GELU激活函数流行起来,即便在CNN模型中,也常见GELU替代RELU。这篇文章从数学角度理解GELU是怎样来的。
从狄拉克函数始
狄拉克函数(Dirac delta function),
要求满足积分,
这个函数看起来及其诡异难理解,这怎么能行?我们可以从极限的思路来理解它,假设有分段函数,
于是有,
于是$\delta(x)$的分段式成立。
在量子力学中使用非常广,如Delta位势阱。在概率论上也有应用,例如有离散分布为,
其概率密度函数可以使用狄拉克函数紧凑地表示,
显然$\delta(x)$是一个非常怪异的函数,在数值计算运用时,我们常常寻找其近似形式。
“钟形”曲线近似
狄拉克函数的逼近形式具有两个特点:
- 关于$y$轴对称的偶函数,函数图形是“钟形”曲线
- 在$\mathbb{R}$上的积分为$1$
这两点最容易让人想到的是概率密度函数,因为它的积分一定为$1$。注意到,正态分布概率密度函数逼近,
这是最容易想到的形式,因为概率密度全定义域积分为1,密度函数对称。取极限,
$\sigma$不同取值下的可视化,
相当于,
此外,还有逼近形式,只不过并不优雅,且存在不不可导点,
类似地,
还有,
如果对$\delta(x)$求积分,得到阶跃(Heaviside step)函数,
这里$\sigma$控制$\frac{1}{\sqrt{\pi \sigma^2}}e^{-(x/\sigma)^{2}}$逼近$\delta(x)$的程度,也就是相当于控制$\frac {1}{2}\left[1+\operatorname {erf} \left({\frac {x }{\sigma {\sqrt {2}}}}\right)\right]$逼近$H(x)$的程度,$\sigma$越小,逼近程度越好。
于是有近似,
类似于从$\delta(x)$到$H(x)$的思路,对$H(x)$再次求积分会如何呢?其实我们得到$\max { 0, x }$,这个从几何直观容易理解,
$\max { 0, x }$不就是$\operatorname{relu}(x)$激活函数!同时也注意到,$\max { 0, x } = x \times H(x)$。
回顾以上思路,我们似乎找到$\operatorname{gelu}(x)$激活函数的由来。完整推导如下,
根据论文Gaussian Error Linear Units (GELUs)有结论$a = \sqrt{\frac{2}{\pi}}, b = \sqrt{\frac{2}{\pi}} \times 0.044715$。以上推导用到正态分布的累积分布函数$\Phi_{\sigma}(x) $与误差函数$\operatorname{erf}(x)$的关系,
类似的思路获得$\operatorname{relu}(x)$的其他逼近,
取$k=\frac{1}{2}$,有$\operatorname{relu}(x) \approx \ln(1 + e^x)$,得Softplus函数。
总结
本文从狄拉克函数$\delta(x)$的光滑近似出发,导出了Transformer中常用的激活函数$\operatorname{gelu}(x)$。
转载请包括本文地址:https://allenwind.github.io/blog/14721
更多文章请参考:https://allenwind.github.io/blog/archives/