上图展示常用的几个激活函数,各有优缺点
1. Sigmoid当神经元的激活在接近0或1的时候会饱和,也就是说当x继续变大,函数值不会有什么改变,也就是梯度消失。并且Sigmoid函数的输出不是以0为中心的,所以输出的要么都是正数要么都是负数,这将会导致Z字型梯度下降。
2.ReLU对于随机梯度下降的收敛有巨大的加速作用,而且几乎没有计算量。但是ReLU的单元比较脆弱且容易“死掉”,因为一旦是负数就是0所以神经元就没有贡献。
3.LeakyReLU则解决了ReLU“死掉”的问题
4.ELU在x<0时具有负指数的特性,可以避免死亡神经元问题,相对于LeakyReLU在负值计算时间更长。
5.SELU是在ELU函数的基础上提出的改进方法,目的是通过对网络的初始化和激活函数进行约束来解决深层神经网络的梯度消失和梯度爆炸等问题。