不同激活函数

(1)sigmoid

sigmoid函数输入一个实值的数,然后将其压缩到0~1的范围内。特别地,大的负数被映射成0,大的正数被映射成1,数值绝对值越大,梯度越平坦,敏感度越低。也正是这个特点,为它的失宠埋下了伏笔。

  • 优点:
    将所有数据映射成了(0,1)之间的数,很好的表达神经元的激活与未激活的状态,适合二分类。
  • 缺点:(1)Sigmoid容易饱和,当输入非常大或者非常小的时候,函数曲线非常平坦,梯度就接近于0,从图中可以看出梯度的趋势。而反向传播中,我们需要使用sigmoid的导数来更新权重,如果导数都基本为0,会导致权重基本没什么更新,我们就无法递归地学习到输入数据了,这种现象也可以叫做梯度弥散。(2)Sigmoid 的输出不是0均值的,这是我们不希望的,因为这会导致后层的神经元的输入是非0均值的信号,这会对梯度产生影响:假设后层神经元的输入都为正,那么对w求局部梯度则都为正,这样在反向传播的过程中w要么都往正方向更新,要么都往负方向更新,导致有一种捆绑的效果,使得收敛缓慢。(3)计算量大,sigmod函数要进行指数运算,这个对于计算机来说是比较慢的。

(2)tanh函数

未解决sigmoid非0均值问题,提出tanh,它是在sigmoid的基础上,将压缩范围调整为(-1,1)。

  • 优点:
    它是0均值的,解决了上述Sigmoid缺点中的第二个,所以实际中tanh会比sigmoid更常用。
  • 缺点:
  1. 它还是存在梯度弥散的问题。
  2. 计算量大,函数要进行指数运算,这个对于计算机来说是比较慢的。

(2)Relu

线性修正单元(Rectified Linear Unit,ReLU),是目前深层神经网络中经常使用的激活函数,ReLU定义为

优点:

  • ReLU的神经元只需要进行加、乘和比较操作,计算更加高效
  • ReLU函数具有很好的稀疏性(约有一半的值未激活),而Sigmoid函数不具有稀疏性。
  • 相比于Sigmoid的两端饱和,ReLU为左饱和函数,在 x>0 时导数为1,一定程度上缓解了神经网络梯度消失的问题,加速梯度下降的收敛速度。

缺点:

  • ReLU函数的输出是非零中心化,影响了梯度下降的效率。
  • 只要输入是负值,那么输出就为0,这可能导致后面的网络输入都是0,造成网络大面积坏死。

(3)Swish激活函数

 由图可以观察到,其实Swish函数可以看作是线性函数和ReLU函数之间的非线性插值函数。其程度由参数 β 控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值