谁挡了我的神经网络?(三)—— 激活函数

谁挡了我的神经网络?(三)—— 激活函数

这一系列文章介绍了在神经网络的设计和训练过程中,可能提升网络效果的一些小技巧。前文介绍了在训练过程中的一系列经验,这篇文章将重点关注其中的激活函数部分。更新于2018.11.1。

文章目录

  • 谁挡了我的神经网络?(三)—— 激活函数
    • 介绍
    • 参考文献

介绍

激活函数(activation function)是指放在层与层之间,使得网络的输出控制在某一个范围内的函数,也称作传递函数(transfer function)。这些函数通常是非线性的,正是因为这些函数的存在,才使得神经网络能够描述非线性变换。否则,无论多少层卷积层等线性变换的叠加,都相当于一层非常宽的线性变换层的结果。

比较常用的激活函数有:

谁挡了我的神经网络?(三)—— 激活函数_第1张图片

目前最常用的激活函数是ReLU系列,因为其不容易造成梯度消失等问题。所以,对于损失函数,除非有特殊需求,通常都采取ReLU系列的激活函数。具体应用的种类,可以直接借助各种深度学习库中提供的现有函数,比如Caffe中提供的就是Leaky ReLU,但是当其中的参数设置成0的时候,其就会退化成普通的ReLU了。

至于其他种类的激活函数,博主认为,对于应用神经网络的人而言,除非有特殊需求,否则暂时没有必要深究。当然,如果在日后的研究过程中博主有了不同的看法,会回来更新的,这个也只是博主的一个建议,大家有选择地看。

更多内容,欢迎加入星球讨论。

参考文献

  1. 比较古老的一篇,从数学角度的解释:https://papers.nips.cc/paper/874-how-to-choose-an-activation-function.pdf
  2. 有视频演示:https://engmrk.com/activation-function-for-dnn/

你可能感兴趣的:(激活函数,深度学习)