激活函数的特点
- 非线性。引入非线性能提升模型的表达能力
- 可微分。如果激活函数不可微,那就无法使用梯度下降方法更新参数
- 非饱和性。饱和指在某些区间上激活函数的梯度接近于零,使参数无法更新
- 取值范围有界。这样可以使网络更稳定,即使有很大的输入,激活函数的输出也不会太大
- 计算简单。复杂的激活函数会降低训练速度
常用激活函数
1、Sigmoid
公式
优点
- 适用于将预测概率作为输出的模型
- 梯度平滑
- 可微
缺点
- 存在饱和区间,在该区间内,梯度可能会消失
- 指数运算,计算量较大
- 函数输出不以零为均值,模型收敛较慢
2、Tanh
公式
优点
- 解决了非零均值问题
缺点
- 存在饱和区间,且饱和区间比sigmoid的更大
- 指数运算,计算量较大
3、ReLU
公式
优点
- 在正区间解决了梯度消失问题
- 计算速度快
- 将小于0的输入置零,从某种程度上防止过拟合
缺点
- 非零均值
- 当输入为负时,ReLU完全失效
- 某些神经元可能永远不会被激活
4、Leaky ReLU
公式
优点
- 针对Relu函数中存在的Dead Relu Problem,Leaky Relu函数在输入为负值时,给予输入值一个很小的斜率,在解决了负输入情况下的0梯度问题的基础上,也很好的缓解了Dead Relu问题
- 该函数的输出为负无穷到正无穷,即leaky扩大了Relu函数的范围
缺点
- 理论上来说,该函数具有比Relu函数更好的效果,但是大量的实践证明,其效果不稳定,故实际中该函数的应用并不多
5、ELU
公式
优点
- 解决了Dead ReLU Problem问题
- 该函数在负数域存在饱和区域,从而对噪声具有一定的鲁棒性
缺点
- 计算量较大
- 在实践中同样没有较ReLU更突出的效果,故应用不多
6、Softplus
公式
优点
- 类似于ReLU
缺点
- 导数小于1,可能存在梯度消失的问题
- 计算量较大
7、SiLU
公式
优点
- 继承了ReLU无上界和有下界的特点
- 相比ReLU又增加了平滑和非单调的特点
缺点
- 引入了指数函数,增加了计算量
8、ReLU6
公式
出现原因
- ReLU6就是把ReLU的最大输出为限制为6(变成有上、下界),这使得模型在移动端设备(dtype=float16/int8,低精度)应用时也能有很好的数值分辨率。如果对ReLU激活范围不加限制,当激活值非常大时,低精度的设备无法很好地描述如此大范围的数值,从而带来精度损失
9、Mish
公式
优点
- 无上界、有下界
- 增加了平滑和非单调的特点
缺点
- 引入了指数函数,增加了计算量