线性模型的表达能力不够,无法解决非线性问题,激活函数的作用是加入非线性因素。
1.Sigmoid函数,函数表达式如下:
优点:Sigmoid函数的输出范围是0到1,对每个神经元的输出进行了归一化;相比于sgn函数,其梯度平滑,没有跳跃的输出值;
缺点:但Sigmoid函数倾向于梯度消失;且函数输出不是以0为中心,会降低权重更新效率;指数运算较慢。
2.Tanh函数,函数表达式如下:
Tanh函数是由Sigmoid函数作线性变换得来,关系如下:
Tanh函数优缺点同Sigmoid相似,但其以0为中心,比Sigmoid函数略好。
3.ReLU函数,函数表达式如下:
优点:缓解了梯度消失问题;计算速度比Sigmoid快得多;
缺点:当输入为负时,ReLU梯度为0,会导致神经元“坏死”,永远不会被激活。
4.Leaky ReLU函数,函数表达式如下:
解决了ReLU函数会导致神经元“坏死”的问题。
5.PReLU函数,函数表达式如下:
PReLU同Leaky ReLU的区别是其参数α是一个可学习的参数。
6.ELU函数,函数表达式如下:
没有Dead ReLU问题,使正常梯度更接近于单位自然梯度,但计算量更大。
ReLU的各种变体理论上都比ReLU要好,但在实践中没有充分证据可以证明这一点。
7.Softmax函数,函数表达式如下:
Softmax是用于多分类问题的激活函数。
8.Maxout函数:Maxout函数是一个可学习的激活函数,可以看做深度神经网络中加入一层激活函数层,假设w是二维的,则函数表达式如下:
Maxout的拟合能力非常强,可以拟合任意的凸函数。
激活函数多种多样,按照自己的需要进行选择,目前深度学习中常用的就是ReLU函数。