Activation Function

1. Sigmoid

函数定义:

f ( x ) = 1 1 + e x

对应的图像是:
这里写图片描述
优点:

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

缺点:

  • sigmoid容易饱和,出现梯度消失的现象。 sigmoid神经元的一个很差的属性就是神经元的活跃度在0和1处饱和,它的梯度在这些地方接近于0。回忆在反向传播中,某处的梯度和其目标输出的梯度相乘,以得到整个目标。因此,如果某处的梯度过小,就会很大程度上出现梯度消失,使得几乎没有信号经过这个神经元以及所有间接经过此处的数据。除此之外,人们必须额外注意sigmoid神经元权值的初始化来避免饱和。例如,当初始权值过大,几乎所有的神经元都会饱和以至于网络几乎不能学习。
  • Sigmoid 的输出不是0均值的会导致后层的神经元的输入是非0均值的信号,这会对梯度产生影响:假设后层神经元的输入都为正 ( e . g . x > 0 , f = w T x + b ) ,那么对w求局部梯度则都为正,这样在反向传播的过程中w要么都往正方向更新,要么都往负方向更新,导致有一种捆绑的效果,使得收敛缓慢。 但是如果你是按batch去训练,那么每个batch可能得到不同的符号(正或负),那么相加一下这个问题还是可以缓解。

2. Tanh

函数定义:

t a n h ( x ) = 1 e 2 x 1 + e 2 x

对应图像:
这里写图片描述
优点:

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

缺点:

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

3. ReLU

函数定义:

y = { 0 ( x 0 ) x ( x > 0 )

对应图像:
这里写图片描述

优点:

  • 相比起Sigmoid和tanh,ReLU(e.g. a factor of 6 in Krizhevsky et al.)在SGD中能够快速收敛。
    这里写图片描述
    • Sigmoid和tanh涉及了很多很expensive的操作(比如指数),ReLU可以更加简单的实现。
    • 有效缓解了梯度消失的问题。
    • 在无监督预训练的时候也能有较好的表现。
    • 提供了神经网络的稀疏表达能力。

缺点:

  • 随着训练的进行,可能会出现神经元死亡,权重无法更新的情况。如果发生这种情况,那么流经神经元的梯度从这一点开始将永远是0。也就是说,ReLU神经元在训练中不可逆地死亡了。例如,当学习速率设定过快时,60%的网络都“挂了”(神经元在此后的整个训练中都不激活)。当学习率设定恰当时,这种事情会更少出现。

4. LReLU、PReLU与RReLU

函数定义:

f ( y i ) = { y i i f ( y i > 0 ) a i y i i f ( y i 0 )

对应图像:
这里写图片描述

4.1 LReLU

a i 比较小而且固定的时候,我们称之为LReLU。LReLU最初的目的是为了避免梯度消失。但在一些实验中,我们发现LReLU对准确率并没有太大的影响。很多时候,当应用LReLU时,必须要选取出合适的 a i ,LReLU的表现出的结果才比ReLU好。

4.2 PReLU

PReLU是LReLU的改进,可以自适应地从数据中学习参数。PReLU具有收敛速度快、错误率低的特点。PReLU可以用于反向传播的训练,可以与其他层同时优化。

  • PReLU 只增加了极少量的参数,也就意味着网络的计算量以及过拟合的危险性都只增加了一点点。特别的,当不同channels使用相同的 a i 时,参数就更少了。
  • BP更新 a i 时,采用的是带动量的更新方式:
    Δ a i := μ Δ a i + ϵ ε a i

    注意:上式的两个系数分别是动量和学习率。
  • 更新 a i 时不施加权重衰减(L2正则化),因为这会把 a i 很大程度上 push 到 0。事实上,即使不加正则化,试验中 a i 也很少有超过1的。
  • 整个论文, a i 被初始化为0.25。
  • PReLU具有收敛速度快、错误率低的特点,可以用于反向传播的训练,可以与其他层同时优化。

4.3 RReLU

公式:

y j i = { x j i i f ( x j i > 0 ) a j i x j i i f ( x j i 0 )

其中, a j i 是一个保持在给定范围内取样的随机变量,在测试中是固定的。RReLU在一定程度上能起到正则效果。

4.4 ELU

公式:

f ( x ) = { a ( e x 1 ) i f ( x < 0 ) x i f ( 0 x )

其中 a > 0
这里写图片描述
优点:

  • ELU减少了正常梯度与单位自然梯度之间的差距,从而加快了学习。
  • 在负的限制条件下能够更有鲁棒性。

5 总结

  • 选择的时候,就是根据各个函数的优缺点来配置,例如:
  • 如果使用 ReLU,要小心设置 learning rate,注意不要让网络出现很多 “dead” 神经元,如果不好解决,可以试试 Leaky ReLU、PReLU 或者 Maxout。
  • 通常来说,很少会把各种激活函数串起来在一个网络中使用的。
  • 最好不要用 sigmoid,可以试试 tanh,不过可以预期它的效果会比不上 ReLU 和 Maxout.

6 参考

  1. The Activation Function in Deep Learning 浅谈深度学习中的激活函数
  2. 神经网络中的各种激活函数
  3. 深度学习基础

猜你喜欢

转载自blog.csdn.net/qq_38622495/article/details/82463727
今日推荐