神经网络中激活函数sigmoid和tanh的区别

1 篇文章 0 订阅
0 篇文章 0 订阅

激活函数sigmoid和tanh的区别

表面上看起来,两者的区别只是值域不同,sigmoid是(0,1),tanh是(-1,1)。可就是这个小小的不同,造成了他们的效果其实有很大差别。

simoid函数

  1. 作为激活函数,sigmoid函数存在梯度弥散的问题,即当x的取值特别大或者特别小的时候,其梯度几乎为零,这会导致参数的值无法更新。即所说的梯度消失。
  2. 作为激活函数,sigmoid的不是中心对称的,且总是输出正数,这会导致在做非线性变换时,其只能“同意”上一层的结果,这也会导致随着深度的增加,结点的取值会“爆炸”,这也是在sigmoid函数中引入batch normalization变换的原因,因为随着层数增加,样本的分布会从0-1高斯分布逐渐偏移,偏移至sigmoid的饱和区域,导致反向传播很难进行,所以其收敛较慢,而batch-normalization会把样本分布强行拉回到0-1高斯分布。
  3. 输出总是正数也会导致其优化路径出现“zigzag”现象,即所有权值的优化方向总是相同的(同时增大或减小)。(具体见知乎大佬https://www.zhihu.com/question/50396271)

tanh函数

  1. 作为激活函数,其同样存在梯度弥散问题。
  2. tanh函数相较于sigmoid函数的优点在于其是中心对称的,均值为0的分布,其能将一个0-1高斯分布依然映射到0附近的分布,保持零均值的特性,而且由于其有正有负,所以他可以对来自上一层的结果 “支持”(正)、“反对”(负)、“弃权”(0)。所以其收敛速度较sigmoid快一些。
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值