TensorFlow 学习(八):CNN-激活函数

1、激活函数

更新W有两种方法:穷举法、梯度下降法

如何选择激活函数?

  • 通常来说,很少会把各种激活函数串起来在一个网络中使用。 
  • 如果使用 ReLU ,那么一定要小心设置学习率(learning rate ),预防出现过多的“神经元死亡”问题。
  • 如果这个问题不好解决,那么可以试试 Leaky ReLU 、 PReLU 或者 Maxout。 
  • 最好不要用 sigmoid ,可以试试 tanh ,不过可以预期它的效果会比不上 ReLU 和 Maxout。

激励层建议:

CNN尽量不要使用sigmoid,如果要使用,建议只在全连接层使用

首先使用ReLU,因为迭代速度快,但是有可能效果不佳

如果使用ReLU失效的情况下,考虑使用Leaky ReLu或者Maxout,此时一般情况都可以解决啦

tanh激活函数在某些情况下有比较好的效果,但是应用场景比较少

 

2、方法

Sigmoid

缺点:

梯度消失,具体来说,由于在后向传递过程中,sigmoid向下传导的梯度包含了一个f’(x) 因子(sigmoid关于输入的导数),因此一旦输入落入饱和区,f’(x) 就会变得接近于0,导致了向底层传递的梯度也变得非常小。此时,网络参数无法被更新,很难得到有效训练。这种现象被称为梯度消失。一般来说, sigmoid 网络在5层之内就会产生梯度消失现象

容易出现软饱和

均值不为零,即函数输出没有0中心化。

如果输入都是正数的话,那么对 w求局部梯度则都为正;结合梯度下降法:在反向传播的过程中w要么都往正方向更新,要么都往负方向更新,这将会导致梯度下降权重更新时出现 z 字型(Zig Zag)的下降。使得收敛缓慢。

Tanh  双曲正切、双S函数

缺点;

tanh函数也存在梯度饱和问题(也具有软饱和性),造成梯度消失,导致训练效率低下。甚至终止梯度传递(死亡神经元)

与 sigmoid 不同的是,tanh输出是零均值的(0中心化)。

实际应用中,tanh 会比 sigmoid 使得模型收敛速度更快。

 

ReLU  正线性单元

 

与传统sigmoid激活函数相比,ReLU能有效缓解梯度消失问题。ReLU 在x<0 时硬饱和。x>0时导数为 1,所以,ReLU 能够在x>0时保持梯度不衰减。f(x) = max(0, x )

均值不为零

计算速度快。正向传播过程中,sigmoid和tanh函数计算激活值时需要计算指数,而Relu函数仅需要设置阈值就可以得到激活值,而不用去算复杂的(指数)运算。如果x<0, f(x)=0,如果x>0, f(x)=x。加快了正向传播的计算速度。

Relu激活函数可以极大地加快收敛速度,相比tanh函数,收敛速度可以加快6倍。

随着训练的推进,部分输入会落入硬饱和区,导致对应权重无法更新。这种现象被称为“神经元死亡”。

没有梯度消失和梯度爆炸,收敛速度快,但是有死亡神经元(可以用较小学习率避免)

Leaky ReLU

f(x) = max(σx, x )

用来解决 ReLU“神经元死亡” 的问题。与 ReLU 不同的是ReLU 中当 x<0 时,函数值为 0 。而 Leaky ReLU 则是给出一个很小的负数梯度值,比如 0.01

 

PReLU

PReLU 是ReLU 和 Leaky ReLU的改进版本,具有非饱和性:

与ReLU相比,PReLU收敛速度更快(因为PReLU的输出更接近0均值)。

RReLU

核心思想:在训练过程中,aji是从一个高斯分布中随机出来的,然后再在测试过程中进行修正。

 

ELU

右侧线性部分使得ELU能够缓解梯度消失,而左侧软饱和能够让ELU对输入变化或噪声更鲁棒。

ELU的输出均值接近于零(相比sigmoid和ReLU),所以收敛速度更快。

融合了sigmoid和ReLU:左侧具有软饱和性,右侧无饱和性。

Maxout

无神经元饱和,无神经元死亡,计算复杂。

Maxout能够缓解梯度消失,又由于不会陷入硬饱和区

Maxout的拟合能力非常强:它可以拟合任意的的凸函数。

规避了ReLU神经元死亡的缺点。但增加了参数和计算量。

 

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值