几种激活函数比较
为什么用激活函数
如果不用激励函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。
如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。
激活函数比较
a=sigmoid(z)
优点:输出为(0,1)
缺点:z足够大或者足够小时导数趋于零,使得梯度下降太慢;函数不是以0为中心。
适用于:输出层,二分分类
a=tanh(z)
优点:数据平均值接近于0;
缺点:容易产生梯度消失。
a=ReLU(z)
f(x ) = max(0,x)
rectified linear unit 修正线性函数
优点:ReLU有效的缓解了梯度消失的问题
缺点:z小于0时,导数为0,在梯度下降过程中可能会出现神经元死亡。
适用于:常用
a=max(0.01z,z)
leaky ReLU