深度学习激活函数比较

Posted 光彩照人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习激活函数比较相关的知识,希望对你有一定的参考价值。

一、Sigmoid函数

  1)表达式

    

         

 

  2)函数曲线

  

  3)函数缺点

      •  梯度饱和问题。先看一下反向传播计算过程:

          反向求导:

          而其中:

          

            

           所以,由上述反向传播公式可以看出,当神经元数值无线接近1或者0的时候,在反向传播计算过程中,梯度也几乎为0,就导致模型参数几乎不更新了,对模型的学习贡献也几乎为零。也称为参数弥散问题或者梯度弥散问题

          同时,如果初始权重设置过大,会造成一开始就梯度接近为0,就导致模型从一开始就不会学习的严重问题。

      •  函数不是关于原点中心对称的。 

        这个特性会导致后面网络层的输入也不是零中心的,进而影响梯度下降的运作。

        因为如果输入都是正数的话(如 $$f=w^{T}x+b$$ 中每个元素都 $$x>0$$ ),那么关于 $$w$$ 的梯度在反向传播过程中,要么全是正数,要么全是负数(具体依据整个表达式 $$f$$ 而定),这将会导致梯度下降权重更新时出现 z 字型的下降。

                   

二、tanh函数

  1)公式

 

  2) 导数

    

  3)曲线

 

 

 

  

  tanh(x)=2sigmoid(2x)-1

      tanh 函数同样存在饱和问题,但它的输出是零中心的,因此实际中 tanh 比 sigmoid 更受欢迎。

 

三、ReLU函数

 

   1)表达式  

      f(x)=max(0,x)

  

 

  2)曲线  

    

 

  相较于 sigmoid 和 tanh 函数,ReLU 对于 SGD 的收敛有巨大的加速作用(Alex Krizhevsky 指出有 6 倍之多)。有人认为这是由它的线性、非饱和的公式导致的。我觉得最起码在右半轴ReLU函数的梯度是恒定的,不存在饱和情况,只是在左侧存在梯度硬饱和,sigmoid函数属于两端都软饱和,这可能是ReLU函数相对比较受欢迎的原因吧,最起码有一端比较完美了。

  ReLU 的缺点是,它在训练时比较脆弱并且可能“死掉”,就是在梯度为0硬饱和的时候,容易出现这种死掉的情况。

  局限性

3)改进

 

参考链接:https://cloud.tencent.com/developer/article/1399909

以上是关于深度学习激活函数比较的主要内容,如果未能解决你的问题,请参考以下文章

深度学习基础之激活函数

Keras深度学习实战——深度学习中常用激活函数和损失函数详解

深度学习-------算法岗面试题

深度学习笔记:激活函数常见问题总结

深度学习笔记:激活函数常见问题总结

深度学习基础--激活函数