人工神经网络中的**函数
写一篇文章介绍下人工神经网络中常用的几种**函数
1、Sigmoid函数
维基百科定义:A sigmoid function is a bounded, differentiable, real function that is defined for all real input values and has a non-negative derivative at each point. sigmoid函数是一个有界的、可微的、实函数,它是为所有实输入值定义的,并且在每个点上都有一个非负的导数。它把可能在较大范围内变化的输入值挤压到(0,1)输出值范围内,因此有时也称为“挤压函数”(squashing function).
缺点:
(1)容易出现梯度消失;
(2)幂运算复杂度高,耗时;
(3)输出不是0均值(zero-centered),这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入;
2、tanh函数
Tanh是Sigmoid的变形,但tanh函数是0均值的。实际应用中,tanh 会比 sigmoid 更好。
梯度消失问题和幂运算复杂的问题依然存在。
3、ReLU
ReLU=max(0,x)
ReLU是目前最常用的**函数。
优点:
(1)与sigmoid相比,很少有梯度消失问题。
(2)计算过程简单;
缺点:
(1)非零均值;
(2)并不是全区间可导的;
4、ELU (Exponential Linear Units) 函数
5、Leaky ReLU函数
f(x)=max(0.01x,x)
本文部分内容参考了知乎专栏:https://zhuanlan.zhihu.com/p/25110450