我们知道,神经网络模型中,各隐藏层、包括输出层都需要激活函数(Activation Function)。我们比较熟悉的、常用的激活函数也有 ReLU、Sigmoid 等等。但是,对于各个激活函数的选取方法、区别特点还有几点需要特别注意的地方。今天就给大家总结一下常用激活函数 Sigmoid、tanh、ReLU、Leaky ReLU、ELU、Maxout 的关键知识点。
1 . 为什么需要激活函数
神经网络单个神经元的基本结构由线性输出 Z 和非线性输出 A 两部分组成。如下图所示:
其中,f(x) 即为线性输出 Z,g(x) 即为非线性输出,g( ) 表示激活函数。通俗来说,激活函数一般都是非线性函数,其作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题。
举个简单的例子,二分类问题,如果不使用激活函数,例如使用简单的逻辑回归,只能作简单的线性划分,如下图所示:
如果使用激活函数,则可以实现非线性划分,如下图所示:
可见,激活函数能够帮助我们引入非线性因素,使得神经网络能够更好地解决更加复杂的问题。
有个问题,为什么激活函数一般都是非线性的,而不能是线性的呢?从反面来说,如果所有的激活函数都是线性的,则激活函数 g(z)=z,即 a=z。那么,以两层神经网络为例,最终的输出为:
经过推导我们发现网络输出仍是 X 的线性组合。这表明,使用神经网络与直接使用线性模型的效果并没有什么两样。即便是包含多