当前位置:   article > 正文

深度学习中激活函数的区别_segmod函数区别

segmod函数区别

(1)sigmoid函数

公式:

曲线:

sigmoid函数也叫 Logistic 函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。

sigmoid缺点:

  • 激活函数计算量大,反向传播求误差梯度时,求导涉及除法。

  • 反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练。

  • Sigmoids函数饱和且kill掉梯度。

  • Sigmoids函数收敛缓慢。

  • 函数的输出不是以0为均值,将不便于下层的计算

下面解释为何会出现梯度消失:

反向传播算法中,要对激活函数求导,sigmoid 的导数表达式为:

sigmoid 原函数及导数图形如下:

 

由图可知,导数从 0 开始很快就又趋近于 0 了,易造成“梯度消失”现象。

所以,sigmoid函数可用在网络最后一层,作为输出层进行二分类,尽量不要使用在隐藏层。

(2) Tanh函数

公式:

曲线:

 

也称为双切正切函数,取值范围为[-1,1]。

tanh在特征相差明显时的效果会很好,在循环过程中会不断扩大特征效果。

与 sigmoid 的区别是,tanh 是 0 均值的,弥补了sigmoid函数均值为0.5的缺点,因此实际应用中 tanh 会比 sigmoid 更好。

tanh的导数表达式:

tanh函数的缺点同sigmoid函数的第一个缺点一样,当z很大或很小时,导数都接近于0,会导致梯度很小,权重更新缓慢,即梯度消失现象。

(3)ReLU

公式:

曲线:

求导表达式:

ReLU函数的优点:

   (1)在输入为正数的时候(对于大多数输入z空间来说),不存在梯度消失问题。

   (2) 计算速度要快很多。ReLU函数只有线性关系,不管是前向传播还是反向传播,都比sigmod和tanh要快很多。(sigmod和tanh要计算指数,计算速度会比较慢)

ReLU函数的缺点:

   (1)当输入为负时,梯度为0,会产生梯度消失问题。

(4) Leaky ReLU

Leaky ReLU函数解决了ReLU函数在输入为负的情况下产生的梯度消失问题。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/647815
推荐阅读
相关标签
  

闽ICP备14008679号