GELU激活函数

Gaussian Error Linerar Units(GELUS)

论文链接:https://arxiv.org/abs/1606.08415

在激活函数领域,鄙视链应该是:Elus > Relu > Sigmoid ,这些激活函数都有自身的缺陷, sigmoid容易饱和,Elus与Relu缺乏随机因素。

GELUs其实是 dropout、zoneout、Relus的综合,GELUs对于输入乘以一个0,1组成的mask,而该mask的生成则是依概率随机的依赖于输入。假设输入为X, mask为m,则m服从一个伯努利分布(Φ ( x ) \Phi(x)Φ(x), Φ ( x ) = P ( X < = x ) , X 服 从 标 准 正 太 分 布 \Phi(x)=P(X<=x), X服从标准正太分布Φ(x)=P(X<=x),X服从标准正太分布),这么选择是因为神经元的输入趋向于正太分布,这么设定使得当输入x减小的时候,输入会有一个更高的概率被dropout掉,这样的激活变换就会随机依赖于输入了。
 

这里Φ ( x ) \Phi(x)Φ(x)是正太分布的概率函数,可以简单采用正太分布N ( 0 , 1 ) \N(0,1)N(0,1), 要是觉得不刺激当然可以使用参数化的正太分布N ( μ , σ ) \N(\mu,\sigma)N(μ,σ), 然后通过训练得到μ , σ \mu,\sigmaμ,σ。

对于假设为标准正太分布的G E L U ( x ) GELU(x)GELU(x), 论文中提供了近似计算的数学公式,如下:
 

简化公式:

def gelu(input_tensor):
	cdf = 0.5 * (1.0 + tf.erf(input_tensor / tf.sqrt(2.0)))
	return input_tesnsor*cdf

特点:  

  • 可微性:GELU函数可导,可以使用反向传播算法训练神经网络。
  • 非线性:与ReLU函数相似,GELU函数具有非线性特点,可以学习非线性函数。
  • 平滑性:GELU函数在整个实数轴上都是连续可导的,可以减少梯度消失和爆炸问题。
  • 计算效率高:由于GELU函数采用了近似求解,计算速度较ReLU函数更快。



原文链接:https://blog.csdn.net/qq_39506862/article/details/133922971
原文链接:https://blog.csdn.net/liruihongbob/article/details/86510622

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 15:04:04       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 15:04:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 15:04:04       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 15:04:04       20 阅读

热门阅读

  1. MyBatis `<foreach>`

    2024-04-23 15:04:04       16 阅读
  2. Rust 语言中的跨平台 GUI 库

    2024-04-23 15:04:04       11 阅读
  3. docker快速使用简介

    2024-04-23 15:04:04       13 阅读
  4. docker 安装 jenkins

    2024-04-23 15:04:04       13 阅读
  5. C# 调整图像的亮度简单示例

    2024-04-23 15:04:04       13 阅读
  6. HX519 是一款防倒流数据线芯片

    2024-04-23 15:04:04       14 阅读
  7. Python机器学习库中Scikit-learn和TensorFlow如何选择?

    2024-04-23 15:04:04       13 阅读
  8. 数据结构:哈密顿回路基础

    2024-04-23 15:04:04       14 阅读
  9. 用户权限—— u+s\g+s\o+t三个特殊权限说明

    2024-04-23 15:04:04       13 阅读