0.引言
激活函数的作用没啥说的,就是在神经元的线性计算之后进行的一个非线性映射。通过下面这个图就可以了解到。本文仅对几个激活函数进行梳理对比,只作为速查和备忘,而不讲解具体原理。
- sigmoid
- tanh
- ReLU
- Leaky ReLU
请先到原文https://zhuanlan.zhihu.com/p/25110450看看,我只是简单摘录了一些内容过来,
这里先对Sigmoid,Tanh,ReLU,Leaky ReLU.
1. Sigmoid函数
优点:
1.Sigmoid函数的输出映射在(0,1)之间,单调连续,输出范围有限,优化稳定,可以用作输出层。
2.导函数具有较好的数学性质,求导容易。
缺点:
- 容易出现gradient vanishing
- 函数输出并不是zero-centered,会导致收敛速度变慢
- 幂运算相对来讲比较耗时
2. Tanh函数
优点:
- 解决了zero-centered的输出问题,可以提高收敛速度
缺点:
1.gradient vanishing的问题
2.幂运算的问题仍然存在
3. ReLU函数
优点:
1.解决了gradient vanishing问题 (在正区间)
2.没有sigmoid和tanh的指数运算,计算速度非常快,只需要判断输入是否大于0
3.收敛速度远快于sigmoid和tanh
缺点:
1.随着训练的进行,可能会出现神经元死亡,权重无法更新的情况。神经元的梯度从这一时刻开始将永远是0。
4. Leaky ReLU函数
优点:
1.解决了神经元不可逆死亡的问题
缺点:
1.理论可解释性不强,在实践中不见得效果好于经典ReLU
本文参考:
https://zhuanlan.zhihu.com/p/25110450
https://blog.csdn.net/piaodexin/article/details/77162766