针对当下几种神经网络中的激活函数进行比较对比。
sigmoid激活函数
表达式为
σ(x)=1(1+e−x)
,其值域为(0,1),如下图所示
其优点为:
求导方便, σ′(x)=σ(x)(1−σ(x)) ;
结果具有很好的解释性,因为其值域范围只在0到1之间,因此可以解释为概率。
缺点为:
- 太容易饱和了,因为在 σ(x) 接近0或1时,导数几乎为0。因此会导致收敛速度较慢。特别地,当初始化权值过大时,在开始阶段就会饱和,从而无法迭代更新;
- 当输入为0时,结果不为0。我们更希望当输入为0时,输出也为0。
tanh激活函数
表达式为
tanh(x)=2σ(2x)−1
,实际上就是对sigmoid函数进行变换得到的,其值域为(-1,1),如下图所示
其优点为:
- 求导也相对容易, tanh′(x)=1−tanh2(x) ;
- 是奇函数,也就是当输入为0时,输出也为0。
缺点为:
- 存在和sigmoid函数同样的饱和问题。
ReLU函数
表达式为
f(x)=max(0,x)
,值域为
(0,+∞)
,如下图所示:
其优点为:
- 函数表达式求导都特别简单, f′(x)=