LSTM 两个激励函数区别sigmoid 和tanh

1),sigmoid 用在了各种gate上,产生0~1之间的值,这个一般只有sigmoid最直接了。
2),tanh 用在了状态和输出上,是对数据的处理,这个用其他激活函数或许也可以。
1. sigmoid激活函数
sigmoid将一个实数输入映射到[0,1]范围内,如下图(左)所示。使用sigmoid作为激活函数存在以下几个问题:

梯度饱和。当函数激活值接近于0或者1时,函数的梯度接近于0。在反向传播计算梯度过程中:,每层残差接近于0,计算出的梯度也不可避免地接近于0。这样在参数微调过程中,会引起参数弥散问题,传到前几层的梯度已经非常靠近0了,参数几乎不会再更新。
函数输出不是以0为中心的。我们更偏向于当激活函数的输入是0时,输出也是0的函数。
因为上面两个问题的存在,导致参数收敛速度很慢,严重影响了训练的效率。因此在设计神经网络时,很少采用sigmoid激活函数。


è¿éåå¾çæè¿°

2. tanh激活函数
tanh函数将一个实数输入映射到[-1,1]范围内,如上图(右)所示。当输入为0时,tanh函数输出为0,符合我们对激活函数的要求。然而,tanh函数也存在梯度饱和问题,导致训练效率低下。

3.Relu激活函数
Relu激活函数(The Rectified Linear Unit)表达式为:。如下图(左)所示:

这里写图片描述

相比sigmoid和tanh函数,Relu激活函数的优点在于:

梯度不饱和。梯度计算公式为:。因此在反向传播过程中,减轻了梯度弥散的问题,神经网络前几层的参数也可以很快的更新。
计算速度快。正向传播过程中,sigmoid和tanh函数计算激活值时需要计算指数,而Relu函数仅需要设置阈值。如果,如果。加快了正向传播的计算速度。
因此,Relu激活函数可以极大地加快收敛速度,相比tanh函数,收敛速度可以加快6倍(如上图(右)所示)。
 

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值