开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情
总结:此文为12月更文计划第一天第一篇。
激活函数总结
为什么需要激活函数,改为 selu 后,可以缓解梯度消失。
激活函数(Activation Function)是一种添加到人工神经网络中的函数。
1.sigmoid函数
在什么情况下适合使用Sigmoid 激活函数呢?
Sigmoid 函数的输出范围是 0 到 1。由于输出值限定在 0 到 1。
用于将预测概率作为输出的模型。由于概率的取值范围是 0 到 1,因此 Sigmoid 函数非常合适。
比如计算概率:90%? 或者80%?以上,就可以使用sigmoid激活函数来进行。
缺点:效果最差的的一个激活函数,运行很慢,有梯度消失的可能性。
2.tanh函数
tanh 是一个双曲正切函数。tanh 函数和 sigmoid 函数的曲线相对相似。但是它比 sigmoid 函数更有一些优势
tanh 的输出间隔为 1,并且整个函数以 0 为中心,比 sigmoid 函数更好。
在 tanh 图中,负输入将被强映射为负,而零输入被映射为接近零。
tanh与sigmoid函数之间的比较:
3.Relu函数
当输入为正时,不存在梯度饱和问题。
计算速度快得多。ReLU 函数中只存在线性关系,因此它的计算速度比 sigmoid 和 tanh 更快。
ReLU 问:输入为负时,ReLU 完全失效,在正向传播过程中,这不是问题。有些区域很敏感,有些则不敏感。但是在反向传播过程中,如果输入负数,则梯度将完全为零。
我们发现 ReLU 函数的输出为 0 或正数,这意味着 ReLU 函数不是以 0 为中心的函数。
4. Leaky ReLU
它是一种专门设计用于解决 Dead ReLU 问题的激活函数。
Leaky ReLU 通过把 x 的非常小的线性分量给予负输入(0.01x)来调整负值的零梯度(zero gradients)问题;
leak 有助于扩大 ReLU 函数的范围。
5. ELU
ELU 的提出也解决了 ReLU 的问题。与 ReLU 相比,ELU 有负值,这会使激活的平均值接近零。均值激活接近于零可以使学习更快,因为它们使梯度更接近自然梯度。