目录
- 1 什么是激活函数
- 2 为什么使用激活函数
- 3 常用激活函数
-
- 1 Sigmoid
- 2 Tanh
- 3 Relu
1 什么是激活函数
激活函数(Activation Function)在人工神经网络的神经元上运行,负责将神经元的输入映射到输出端。
如图,在神经元中,输入的 inputs 通过加权求和后,还被作用了一个函数,这个函数就是激活函数,引入激活函数是为了使神经网络模型具有非线性特性。
2 为什么使用激活函数
如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这种情况就是最原始的感知机。
而激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。
3 常用激活函数
1 Sigmoid
Sigmoid函数由于其单增以及反函数单增等性质,常被用作神经网络的阈值函数,将变量映射到(0,1),可以用来做二分类。
缺点:
- 当输入非常大或者非常小的时候,这些神经元的梯度是接近于0的,从图中可以看出梯度的趋势。
- Sigmoid 的 输出不是0均值,这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。
2 Tanh
双曲正切,将变量映射到(-1,1)。Tanh是Sigmoid的变形,与 sigmoid 不同的是,tanh 是0均值的。因此,实际应用中,tanh 会比 sigmoid 更好。
3 Relu
修正线性单元,它的作用是如果计算出的值小于0,就让它等于0,否则保持原来的值不变,克服了前两个激活函数会出现的梯度消失问题。
通常用于隐层神经元输出。