如果不用激励函数,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机(Perceptron)了。
1. sigmoid
公式:
导数:
特点:输出 0 至 1之间
2. tanh
公式:
导数:
特点:输出 -1 至1之间
3. relu
公式:
导数: 时,; 当 时,
4. 为什么引入Relu呢?
- 速度快。采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。
- 解决梯度消失。对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失,从而无法完成深层网络的训练。
- 网络稀疏性。 Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生(以及一些人的生物解释balabala)。
5. GELU
Gaussian Error Linear Unit 高斯误差线性单元,2016年论文提出的,在transformer中得到应用。
与ReLU的不同:GELU为其按照输入的magnitude(等级)为inputs加权值的;ReLUs是根据inputs的sign(正负)来gate(加门限)的。
论文实验证明GELU在多项计算机视觉, 自然语言处理,语音任务上效果优于ReLU, ELU。
image.png
网友评论