当前位置:   article > 正文

激活函数总结_训练深度学习网络尽量使用zero-centered数据

训练深度学习网络尽量使用zero-centered数据

激活函数就是给神经网络引入非线性的,以此来模拟复杂的非线性关系

sigmoid

  • 容易出现梯度消失:导数接近为0.连乘会为0
  • 函数输出并不是零中心化: Sigmoid函数的输出值恒大于0,这会导致模型训练的收敛速度变慢,训练深度学习网络尽量使用zero-centered数据
  • 幂运算相对来讲比较耗时

软饱和:导数极限情况下为0

硬饱和:导数在确定数值为0

梯度消失问题至今仍然存在,但被新的优化方法有效缓解了,例如DBN中的分层预训练,Batch Normalization的逐层归一化,Xavier和MSRA权重初始化等代表性技术。

  • tanh:0中心化解决了,梯度消失和幂运算仍然存在
  • ReLU

 输出非0中心化,解决了梯度消失,计算速度很快,收敛快于sigmoid、tanh,但存在某些神经元可能永远不会被激活,导致相应的参数永远不能被更新,可以设置小的学习率

Leaky ReLU

为了解决Relu存在某些神经元永远不会被激活的问题,提出了将ReLU的前半段设为0.02x0.02x而非0

ELU:输出近似0中心化

 总结:

建议使用ReLU函数,但是要注意初始化和learning rate的设置;可以尝试用Leaky ReLU或ELU函数;不建议使用tanh,尤其是Sigmoid函数;

另外,选用激活函数的时候主要关注以下几点:

  • 是否容易引起梯度消失;
  • 输出是否是zero-centered;
  • 是否包含复杂的运算;
  • 是否容易求导;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/647798
推荐阅读
相关标签
  

闽ICP备14008679号