美文网首页
常用的激活函数

常用的激活函数

作者: WZFish0408 | 来源:发表于2017-08-30 20:40 被阅读171次

    激活函数的作用

    激活函数的作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题。我们知道神经网络的神经元输入的是x的线性组合wx+b,是线性的,当数据是线性可分的时,例如:


    线性可分

    不使用激活函数毫无问题,但是在下面这种情况,也就是线性不可分时,我们就需要使用激活函数来假如非线性因素。


    线性不可分

    激活函数的饱和

    所谓饱和就是激活函数导数为0,具体定义是:
    当一个激活函数h(x)满足:



    时称为右饱和,同样的,当激活函数满足下面的式子称为左饱和。



    当一个激活函数,既满足左饱和又满足又饱和时,我们称之为饱和。

    根据在何处饱和,饱和又分为硬饱和和软饱和。对任意的x如果存在常数c,使得x>c时恒有 h′(x)=0则称其为右硬饱和,当x<c时恒有h′(x)=0则称其为左硬饱和。若既满足左硬饱和,又满足右硬饱和,则称这种激活函数为硬饱和。但如果只有在极限状态下偏导数等于0的函数,称之为软饱和。

    常见的激活函数与优缺点

    sigmoid function

    第一个接触到的激活函数也就是S形曲线,他的函数表达式如下:



    函数图像是S形曲线:


    现在用的不多了,主要是由于他的缺点比优点更为明显。

    优缺点

    优点

    1.Sigmoid函数的输出映射在(0,1)之间单调连续,输出范围有限,优化稳定,可以用作输出层。
    2.求导容易。

    缺点:

    1.由于其软饱和性,容易产生梯度消失,导致训练出现问题。
    2.其输出并不是以0为中心的。

    tanh

    表达式如下:



    图像:


    优缺点:

    优点:

    1.比Sigmoid函数收敛速度更快。
    2.相比Sigmoid函数,其输出以0为中心。

    缺点:

    还是没有改变Sigmoid函数的最大问题——由于饱和性产生的梯度消失。

    ReLU

    现在最常用的激活函数有效解决梯度消失。表达式:



    图像:


    优缺点:

    优点:

    1.相较于Sigmoid和tanh在SGD下收敛更快,可能是由于线性非饱和的特性。
    2.Sigmoid和tanh涉及了很多开销很大的操作(比如指数),ReLU可以更加简单的实现。
    3.有效缓解了梯度消失的问题。
    4.在没有无监督预训练的时候也能有较好的表现。
    5.提供了神经网络的稀疏表达能力。

    缺点:

    随着训练的进行,可能会出现神经元死亡,权重无法更新的情况。如果发生这种情况,那么流经神经元的梯度从这一点开始将永远是0。也就是说,ReLU神经元在训练中不可逆地死亡了。

    Leaky-ReLU

    ReLU 中当 x<0 时,函数值为 0。而 Leaky ReLU 则是给出一个很小的负数梯度值,比如 0.01,是为了解决神经元死亡的尝试。


    LReLU最初的目的是为了避免梯度消失。但在一些实验中,发现LReLU对准确率并没有太大的影响。很多时候,当想要应用LReLU时,必须要非常小心谨慎地重复训练,选取出合适的a,LReLU的表现出的结果才比ReLU好。因此有人提出了一种自适应地从数据中学习参数的PReLU。

    PReLU

    主要是几点说明:
    (1) PReLU只增加了极少量的参数,也就意味着网络的计算量以及过拟合的危险性都只增加了一点点。特别的,当不同channels使用相同的ai时,参数就更少了。
    (2) BP更新ai时,采用的是带动量的更新方式,如下图:

    上式的两个系数分别是动量和学习率。
    需要特别注意的是:更新ai时不施加权重衰减(L2正则化),因为这会把ai很大程度上push到0。事实上,即使不加正则化,试验中ai也很少有超过1的。

    Maxout


    其实就是取线性组合的最大值。
    Maxout 具有 ReLU 的优点(如:计算简单,不会饱和),同时又没有 ReLU 的一些缺点 (如:容易死掉)。不过呢,还是有一些缺点的嘛:就是把参数double了。

    怎么选激活函数

    一般不用Sigmoid,tanh比Sigmoid好一些,大多数用ReLU,尤其深度学习,收敛快。但要注意选择合适的学习速率。maxout和PReLU可以尝试。

    相关文章

      网友评论

          本文标题:常用的激活函数

          本文链接:https://www.haomeiwen.com/subject/lrxhdxtx.html