激活函数的选择

深度学习神经网络有四种常用激活函数,分别为sigmod,tanh,softmax,relu.下面总结了他们的优缺点以及如何选择。

sigmod函数

函数形式

δ(x)=11+ex δ ( x ) = 1 1 + e − x

函数图像如下
激活函数的选择_第1张图片

对其求导有

δ(x)=δ(x)(1δ(x)) δ ′ ( x ) = δ ( x ) ( 1 − δ ( x ) )

tanh

函数形式:

g(x)=tanh(x)=exexex+ex g ( x ) = t a n h ( x ) = e x − e − x e x + e − x

图形为

激活函数的选择_第2张图片

其导函数为:
这里写图片描述

在隐藏层使用的效果优于sigmod
相同的缺点在x特别大或者特别小的时候,函数梯度会接近0,使得梯度下降的速度变慢。一般用在二分问题输出层,不在隐藏层中使用。

relu

公式

f(x)=max(0,x) f ( x ) = m a x ( 0 , x )

图形:
激活函数的选择_第3张图片
优点:

  • 计算量小,速度快,相对于sigmod和tanh求导比较复杂,反向求导时会出现问题。
  • Relu对SGD的训练有加速作用。
  • Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生。

缺点:
学习率设计得过大会造成梯度为0,导致神经元死亡,并且是不可逆的。

PRelu

解决relu的缺点

f(x)=max(0,ax) f ( x ) = m a x ( 0 , a x )

softmax

激活函数的选择_第4张图片

小结:关于几个函数的特点以及使用在实际面试过程中很容易被问到,所以这里做一个总结。

你可能感兴趣的:(deep,learning)