激活函数是构成神经元的重要部件之一,它衔接了神经元净输入z和神经元净输出a
可以分为以下几种:
一、Logistic函数
可以视为一个挤压函数,输出区间[0,1],输入越小越接近0,输入越大越接近1。连续可导;可以作为软性门
Hard-Logistic函数
其中 实质为在0出的泰勒展开
最终形式为:
二、Tanh函数
可视为变换后的Logistic函数 ,值域为[-1,1]
Hard-Tanh函数
最终形式为:
上述激活函数的图像如下图:
!!!Hard型函数用于解决Logistic函数和Tanh函数计算开销过大的问题。采用分段函数进行模拟近似(其在0附近都具有近似性),近0点采用导数进行近似
三、ReLU函数
神经网络中较为常用的一种激活函数,实际为一个斜坡函数
优点:具有生物合理性(单侧抑制,宽兴奋边界),同时具有良好的稀疏性(50%左右的神经元处于激活状态,而Sigmoid型激活函数会导致一个非稀疏型神经网络)
缺点:其为非零中心化(会给下一层引入偏置偏移,影响梯度下降的效率)可能出现ReLU死亡现象。
为避免ReLU死亡问题,出现以下几种变种函数
1.带泄露的ReLU
在x<0时,保持一个较小的梯度
当时,可以写作
2.带参数的ReLU
引入一个可以学习的参数,对于第 i 个神经元
若则会退化为ReLU
若非常小,这可以视为LeakyReLU
允许一组神经元共享一个参数,也可以是不同的参数
3.ELU函数
是一个近似的零中心非线性函数
其中为超参数,决定 x≤0时的饱和曲线,并调整输出均值在0附近
4.Softplus函数
可以视为Rectifier函数的平滑版本
其导数刚好为Logistic函数,虽然具有单侧抑制、宽兴奋边界;但没有稀疏激活性。
四、Swish函数
自门控激活函数
其中可以视为Logistic函数,是一个可以学习的参数/固定的超参数。
当接近1时,门处于开的状态;接近-时,门处于关闭状态
其形态由控制
时,Swish函数变为
时,Swish在x >0时近似线性,在x <0时近似饱和,同时具有非单调性
时,Swish函数可以近似为ReLU函数
五、GELU函数
高斯误差线性单元,也是通过门控机制来调整输出值的激活函数,类似Swish
其中为高斯分布的累积分布函数,一般设
高斯分布即为正态分布,常用的形式为标准正态分布
GELU函数可以由Tanh或Logistic近似
六、MaxOut单元
一种分段线性函数,不同于上面的激活函数只能处理净输入值z(标量),其可以直接处理上层的全部原始输入(向量)
每个MaxOut单元有K个权重向量,可以得到K个净输入
MaxOut单元的非线性定义为