前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习 深度学习中激活函数sigmoid relu tanh gelu等汇总整理

机器学习 深度学习中激活函数sigmoid relu tanh gelu等汇总整理

原创
作者头像
大鹅
修改2021-09-12 23:09:58
1.8K0
修改2021-09-12 23:09:58
举报

0. 背景

这篇博客主要总结一下常用的激活函数公式及优劣势,包括sigmoid relu tanh gelu

1. sigmoid

  • sigmoid函数可以把实数域光滑的映射到0,1空间。
  • 函数值恰好可以解释为属于正类的概率(概率的取值范围是0~1),中心为0.5。
  • sigmoid函数单调递增,连续可导,导数形式非常简单,是一个比较合适的函数

优点:平滑、易于求导

缺点:

  1. 激活函数计算量大(在正向传播和反向传播中都包含幂运算和除法);
  2. 反向传播求误差梯度时,求导涉及除法;
  3. Sigmoid导数取值范围是0, 0.25,由于神经网络反向传播时的“链式反应”,很容易就会出现梯度消失的情况。例如对于一个10层的网络, 根据0.25^10很小,第10层的误差相对第一层卷积的参数W1的梯度将是一个非常小的值,这就是所谓的“梯度消失”。
  4. Sigmoid的输出不是0均值(即zero-centered);这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入,随着网络的加深,会改变数据的原始分布。

推导:https://zhuanlan.zhihu.com/p/24967776

2. tanh

tanh为双曲正切函数,其英文读作Hyperbolic Tangent。tanh和 sigmoid 相似,都属于饱和激活函数,区别在于输出值范围由 (0,1) 变为了 (-1,1),可以把 tanh 函数看做是 sigmoid 向下平移和拉伸后的结果

tanh作为激活函数的特点:

相比Sigmoid函数,

  1. tanh的输出范围时(-1, 1),解决了Sigmoid函数的不是zero-centered输出问题;
  2. 幂运算的问题仍然存在;
  3. tanh导数范围在(0, 1)之间,相比sigmoid的(0, 0.25),梯度消失(gradient vanishing)问题会得到缓解,但仍然还会存在

DNN 前面使用tanh 最后用sigmoid

3. relu

Relu(Rectified Linear Unit)——修正线性单元函数:该函数形式比较简单,

公式:relu=max(0, x)

ReLU作为激活函数的特点:

  1. 相比Sigmoid和tanh,ReLU摒弃了复杂的计算,提高了运算速度。
  2. 解决了梯度消失问题,收敛速度快于Sigmoid和tanh函数,但要防范ReLU的梯度爆炸
  3. 容易得到更好的模型,但也要防止训练中出现模型‘Dead’情况。

ReLU 强制将x<0部分的输出置为0(置为0就是屏蔽该特征),可能会导致模型无法学习到有效特征,所以如果学习率设置的太大,就可能会导致网络的大部分神经元处于‘dead’状态,所以使用ReLU的网络,学习率不能设置太大。

Leaky ReLU中的公式为常数,一般设置 0.01。这个函数通常比 Relu 激活函数效果要好,但是效果不是很稳定,所以在实际中 Leaky ReLu 使用的并不多。

PRelu(参数化修正线性单元) 中的公式作为一个可学习的参数,会在训练的过程中进行更新。

RReLU(随机纠正线性单元)也是Leaky ReLU的一个变体。在RReLU中,负值的斜率在训练中是随机的,在之后的测试中就变成了固定的了。RReLU的亮点在于,在训练环节中,aji是从一个均匀的分布U(I,u)中随机抽取的数值。

4. Gelu

gelu(gaussian error linear units)就是我们常说的高斯误差线性单元,它是一种高性能的神经网络激活函数,因为gelu的非线性变化是一种符合预期的随机正则变换方式,公式如下:

{xP(X \le x)=x\Phi(x)}\tag{4.1}

其中Φ(x)指的是x xx的高斯正态分布的累积分布,完整形式如下:

{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{4.2}

计算结果约为:

{0.5x(1+tanh[\sqrt{\frac{2}{\pi}}(x+0.044715x^3)])}\tag{4.3}

或者可以表示为:

{x\sigma(1.702x)}\tag{4.4}

由此可知,概率P ( X ≤ x ) (x可看成当前神经元的激活值输入),即X的高斯正态分布ϕ(X)的累积分布Φ(x)是随着x的变化而变化的,当x增大,Φ(x)增大,当x减小,Φ(x)减小,即当x越小,在当前激活函数激活的情况下,越有可能激活结果为0,即此时神经元被dropout,而当x越大越有可能被保留。

使用技巧:

1.当在训练过程中使用gelus作为激活函数进行训练时,建议使用一个带有动量(momentum)的优化器,并将其作为深度学习网络的一种规范。

2.在使用gelus的过程中,公式(3)的σ 函数的选择是非常关键的,一般需要使用与正态分布的累积分布近似的函数,一般可以选择与正态分布的累积分布较为近似的函数sigmoid(x)=1/(1+e^{(-x)})作为σ 函数。

优势:

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

Ref

  1. https://zhuanlan.zhihu.com/p/100175788 Gelu

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0. 背景
  • 1. sigmoid
  • 2. tanh
  • 3. relu
  • 4. Gelu
  • Ref
相关产品与服务
智能推荐平台
智能推荐平台(Intelligent Recommendation Platform,IRP)是集生态、技术、场景于一体,采用业界领先的AI学习技术和智能推荐算法,基于腾讯多年在超大型场景中积累的最佳实践方法论,助力客户业务实现增长的企业级应用产品。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档