深度学习基础(七)—— Activation Function

本文介绍了深度学习中常见的激活函数,包括Sigmoid、Tanh、ReLU及其变种LReLU、PReLU和RReLU。Sigmoid和Tanh存在梯度消失问题,而ReLU因其快速收敛和简单实现受到青睐,但可能导致神经元死亡。LReLU和PReLU尝试解决ReLU的不足,PReLU能自适应学习参数,RReLU则是随机版本的修正。ELU在负区间具有更好的鲁棒性。选择激活函数时需综合考虑优缺点。
摘要由CSDN通过智能技术生成

1. Sigmoid

函数定义:

f(x)=11+ex f ( x ) = 1 1 + e − x

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

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

缺点:

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

2. Tanh

函数定义:

tanh(x)=1e2x1+e2x t a n h ( x ) = 1 − e − 2 x 1 + e − 2 x

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

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

缺点:

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

3. ReLU

函数定义:

y={0x(x0)(x>0) 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(yi)={yiaiyiif(yi>0)if(yi0) f ( y i ) = { y i i f ( y i > 0 ) a i y i i f ( y i ≤ 0 )

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

4.1 LReLU

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

4.2 PReLU

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

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

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

4.3 RReLU

公式:

yji={xjiajixjiif(xji>0)if(xji0) y j i = { x j i i f ( x j i > 0 ) a j i x j i i f ( x j i ≤ 0 )

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

4.4 ELU

公式:

f(x)={a(ex1)xif(x<0)if(0x) f ( x ) = { a ( e x − 1 ) i f ( x < 0 ) x i f ( 0 ≤ x )

其中 a>0 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. 深度学习基础
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值