激活函数的性质要求
- 连续并可导(允许少数点不可导)的非线性函数,可导的激活函数。可导的激活函数可以直接利用数值优化的方法来学习网络参数
- 激活函数及其导函数要尽可能的简单,还有利于提高网络计算效率。
- 激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太小,否则会影响训练的效率和稳定性
- Sigmoid型函数
- Hard-Logistic函数
- max(min(0.25x+0.5,1),0)
- Hard-Tanh函数
- max(min(x,1),-1)
- 这两个函数是对Logistic和Tanh函数的分段近似,与Logistic和Tanh函数相比,降低了计算开销
- Hard-Logistic函数图像
- Hard-Logistic函数导数图像
- Hard-Tanh函数图像
- Hard-Tanh函数导数图像
- 整流线性单元(ReLU)函数
- ReLU
- max(0,x)
- 是目前最常用的激活函数,具有单侧抑制、宽兴奋边界的生物学合理性,可缓解梯度消失问题
- 缺点:有可能导致神经元的死亡
- 带泄露的ReLU(Leaky ReLU)
- max(0,x)+γmin(0,x)
- 在x<0时也保持一个很小的梯度,避免永远不能被激活的情况,γ为超参
- ReLU函数图像
- ReLU函数导数图像
- Leaky ReLU函数图像
- Leaky ReLU函数导数图像
- 指数线性单元ELU
- max(0,x)+min(0,γ(exp(x)-1))
- 近似零中心化,γ为超参
- Softplus
- log(1+exp(x))
- 可以看成ReLU的平滑版本,其导数刚好为Logistic函数,具有单侧抑制、宽兴奋边界的特征,但不具有稀疏性
- 指数线性单元ELU函数图像
- 指数线性单元ELU函数导数图像
- Softplus函数图像
- Softplus函数导数图像
- 其他激活函数
- Swish函数
- x/(1+exp(-βx))
- 当β=0时为线性函数,当β=1时在x>0为近似线性,当β->∞时近似ReLU函数,可看成线性函数和ReLU之间的非线性插值函数
- 高斯误差线性单元(GELU)
- xσ(1.702x)
- P(X≤x)为高斯分布的累积分布函数,可使用Logistic或者Tanh来近似计算,当使用Logistic近似时,相当于一种特殊的Swish函数
- Swish函数图像
- Swish函数的导数图像
- GELU函数图像
- GELU函数的导数图像
- Maxout单元
- Maxout是对整流线性单元的进一步扩展,Maxout将神经元的净输入z分为k组,每一组均为一个线性函数,Maxout可以看作任意凸函数的分段线性近似
- 输出单元
- 线性输出单元
- 线性输出单元经常用于产生条件高斯分布的均值,适合连续值预测(回归)问题,基于高斯分布,最大化似然(最小化负对数似然)等价于最小化均方误差,因此线性输出单元可采用均方误差损失函数
- Sigmoid单元
- 1/(1+exp(−w^Th-b))
- Sigmoid输出单元常用于输出Bernoulli分布,适合二分类问题,Sigmoid输出单元可采用交叉熵损失函数
- Softmax单元
- Softmax输出单元常用于输出Multinoulli分布,适合多分类问题,Softmax输出单元可采用交叉熵损失函数