深度学习(一)~常见激活函数
常见激活函数
为了增强网络的表示能力和学习能力,激活函数须具备以下性质:
(1) 连续并可导(允许少数点不可导)的非线性函数。可导的激活函数可以直接利用数值优化的方法来学习网络参数;
(2) 激活函数及其导函数要尽可能简单,有利于提高网络计算效率;
(3) 激活函数的导函数的值域要在合适的区间内,不可过大过小,否则影响训练的效率和稳定性。
1. Sigmoid型函数
指一类S型曲线函数,为两端饱和函数
常用的Sigmoid型函数有Logistic函数和Tanh函数
(1). Logistic函数
值域:(0,1)
**输出特点:**非零中心化
非零中心化的输出会使得其后一层神经元的输入发生偏置偏移(Bias Shift),并进一步使得梯度下降的收敛速度变慢。
性质: 1.其输出直接可看作概率分布;
2.可以看作一个软性门(Soft Gate),用来控制其他神经元输出信息的数量
(2). Tanh函数
值域:(-1,1)
**输出特点:**零中心化
(3). Hard-Logistic函数和Hard-Tanh函数
Logistic函数可以用Hard-Logistic函数来近似
Tanh函数可以用Hard-Tanh函数来近似
2. ReLU函数
优点:
(1). 采用ReLU的神经元只需要加、乘和比较的操作,计算上更高效;
(2). 生物合理性,单侧抑制、宽兴奋边界;
(3). 具有很好的稀疏性;相比于Sigmoid型函数的两端饱和,ReLU函数为左饱和函数,且x>0时导数为1,这一定程度上缓解了梯度消失问题,加速梯度下降的收敛速度
缺点:
(1). 非零中心化的输出会使得其后一层神经元的输入发生偏置偏移,影响梯度下降效率;
(2). 死亡ReLU问题
(1). Leaky ReLU
在输入x<0时,保持一个很小的梯度γ,所以非激活状态也可以更新参数,避免死亡ReLU问题
γ是个很小的常数,当γ<1时,Leaky ReLU也可写成
(2). 带参数的ReLU(即PReLU)
当γi=0:ReLU
当γi为一个很小的常数,可看作Leaky ReLU
PReLU允许不同神经元有不同参数,也可一组神经元共享一个参数
(3). ELU函数
其中γ≥0是一个超参数,决定x≤0时的饱和曲线,并调整输出均值在0附近