Bert Transfromer结构中使用了这个激活函数---gelu(Gaussian error linear units,高斯误差线性单元),Gelu在论文中已经被验证,是一种高性能的神经网络激活函数,因为GELU的非线性变化是一种符合预期的随机正则变换方式(这句话,说实话,我翻译自原论文,具体怎么理解呢?我自己是如下理解的)。

  • 激活函数的作用:给网络模型加入非线性因子,这个非线性因子的实际操作就是在wx+b这样的线下变化后面加入一个非线性变化的函数fun。
  • Gelu的操作方式:Gelu怎么完成非线性变换的呢?引入这样的变化函数:  

        公式中x是自己,P(X<=x)决定x中有多少信息保留 ,并且由于P是服从高斯分布的,也就满足了非线性的特征,并且更加符合数据的分布预期。

  • 相比Relu:Relu将小于0的数据映射到0,将大于0的给与  等于 映射操作,虽然性能比sigmoid好,但是缺乏数据的统计特性,而Gelu则在relu的基础上加入了统计的特性。论文中提到在好几个深度学习任务中都优于Relu的效果。  

 

 

Reference:

[1] Gaussian Error Linear Units (GELUs), Dan HendrycksKevin Gimpel

(Submitted on 27 Jun 2016 (v1), last revised 11 Nov 2018 (this version, v3))

https://arxiv.org/abs/1606.08415

 

GitHub 加速计划 / be / bert
37.61 K
9.55 K
下载
TensorFlow code and pre-trained models for BERT
最近提交(Master分支:2 个月前 )
eedf5716 Add links to 24 smaller BERT models. 4 年前
8028c045 - 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐