目录
一、前言
什么是激活函数?
神经网络中的每个神经元节点接受上一层神经元的输出值作为本神经元的输入值,并将输入值传递给下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐层或输出层)。在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数。
为什么要激活?
线性函数具有局限性——线性叠加的结果依旧是线性,多层线性神经元可以合并为一个神经元,而线性模型的能解决的问题有限,无法很好的拟合真实情况。
二、常用的激活函数及优缺点
2.1 sigmod函数
优点:将输入映射到(0,1)之间
缺点:(1)反向传播时出现梯度爆炸和梯度消失问题,尤其是梯度消失问题有较大的概率
(2)输出不是0均值。
(3)幂函数运算,耗时更久。
2.2 tanh函数
优点:解决了sigmod函数输出不是0均值的问题。
2.3 ReLu函数
优点:(1)解决梯度消失问题
(2)计算速度更快
(3)收敛更快
缺点:(1)非0均值
(2)dead relu problem。——部分权重未使用,相当于死机状态;采用Xavier初始化方法
2.4 Leaky ReLu函数
优点:解决了ReLu的dead relu problem问题
2.5 ELU函数
优点:解决了ReLu所有缺点
缺点:计算量变大