1、激活函数的作用
什么是激活函数?
在神经网络中,输入经过加权计算相加后,需要经过激活函数Activation Function这个函数的作用。
激活函数吗?
首先,如果不在神经网络中引入激活函数,必须知道该网络中每层的输出是上一层输入的线性函数,无论最终的神经网络有多少层,输出都是输入的线性组合; 它一般只适用于线性分类问题,如非常典型的多层感知机。 要想在非线性问题上继续发挥神经网络的优势,这时通过增加激活函数处理各层的输出,引入非线性因素,使神经网络可以逼近任意非线性函数,进而增加激活函数的神经网络在非线性领域是重要的
进而,激活函数在神经网络中的应用,除了引入非线性表达能力外,还在提高模型鲁棒性、缓解梯度消失问题、将特征输入映射到新特征空间、加速模型收敛等方面具有一定程度的改善作用
2、目前常见的几种激活函数
典型的激活函数主要包括sigmoid函数、tanh函数、RELU函数、Leaky Relu函数和elu函数。 分别进行说明和分析。
Sigmoid函数
如图所示,可知是sigmoid函数,值域在0~1之间; 这类激活函数的优缺点如下。
优点: 1、通过将大范围输入特征值压缩在0~1之间,可以在深层网络中保持数据的宽度不发生大的变化,但Relu函数不会对数据的宽度造成限制;
2、物理意义上最接近生物神经元
3 .根据其输出范围,该函数被应用于以预测概率为输出的模型
缺点) 1、当输入非常大或非常小时,输出基本上为常数,即变化非常小,梯度接近0
2、输出不是0均值,再后面一层神经元输入从前面一层输出的非0均值信号。 随着网络的加深,改变原始数据的分布趋势;
3、坡度消失过快,收敛速度可能变慢。 例如,与Tanh函数相比,收敛得比sigmoid函数早是因为梯度消失问题比sigmoid函数轻;
4、幂运算比较费时间。
Tanh函数
如图所示,在作为Tanh函数的下图中与Sigmoid函数进行比较,可以看出这两种激活函数都是饱和激活函数,该函数的输出范围在-1~1之间,其优缺点可以总结如下。
优点: 1、解决了上述Sigmoid函数输出不为0均值的问题
2、Tanh函数的导数范围在0~1之间,优于sigmoid函数的0~0.25,在一定程度上缓解了梯度消失的问题;
3、Tanh函数在原点附近接近y=x函数的形式,输入的激活值较低时可以直接进行矩阵运算,训练比较容易;
缺点: 1、与Sigmoid函数相似,但梯度消失问题仍然存在;
2,2 * sigmoid (2x )-1和(exp )-exp )-x )/(exp )-x ) )两种形式的表达式的观察表明仍然存在幂运算问题。
Relu函数
上图是Relu函数的图形,如果输入为负值,则可以看到输出都为0,在输入大于0的区间,输出y=x,在所有区间都不是导数。 其优缺点如下
优点: 1、与sigmoid函数和Tanh函数相比,当输入为正时,Relu函数不存在饱和问题,即解决了梯度问题,可以训练深层网络;
2、计算速度非常快,只需判断输入是否大于0即可
3、收敛速度远快于sigmoid及Tanh函数;
4、Relu输出使部分神经元为0,在造成网络稀疏的同时,减少了参数之间的相关性,在一定程度上缓解了过拟合问题
缺点: 1、Relu函数的输出也不是以0为平均的函数
2、读结果探测器存在。 也就是说,部分神经元可能永远不被激活,导致相应的参数一直不更新。 造成该问题的主要原因是参数初始化问题和学习率设置过大的问题;
3、当输入为正值且导数为1时,“链式反应”不会发生梯度消失,但梯度下降的强度完全取决于权的乘积,可能会引起梯度爆炸问题
Leaky Relu函数
上图即为Leaky Relu函数的示意图,在x大于等于0时,y=x,x小于0时,y=α*x,图中选择的α值为0.1;其优缺点总结给如下:
优点:1、针对Relu函数中存在的Dead Relu Problem,Leaky Relu函数在输入为负值时,给予输入值一个很小的斜率,在解决了负输入情况下的0梯度问题的基础上,也很好的缓解了Dead Relu问题;
2、该函数的输出为负无穷到正无穷,即leaky扩大了Relu函数的范围,其中α的值一般设置为一个较小值,如0.01;
缺点:1、理论上来说,该函数具有比Relu函数更好的效果,但是大量的实践证明,其效果不稳定,故实际中该函数的应用并不多。
2、由于在不同区间应用的不同的函数所带来的不一致结果,将导致无法为正负输入值提供一致的关系预测。
ELU函数
图中所示即为ELU函数,其也是Relu函数的一种变体,x大于0时,y=x,x小于等于0时,y=α(exp(x)-1),可看作介于Relu与Leaky Relu之间的函数;其优缺点总结如下:
优点:1、ELU具有Relu的大多数优点,不存在Dead Relu问题,输出的均值也接近为0值;
2、该函数通过减少偏置偏移的影响,使正常梯度更接近于单位自然梯度,从而使均值向0加速学习;
3、该函数在负数域存在饱和区域,从而对噪声具有一定的鲁棒性;
缺点:1、计算强度较高,含有幂运算;
2、在实践中同样没有较Relu更突出的效果,故应用不多。