赞
踩
(1)sigmoid函数
公式:
曲线:
sigmoid函数也叫 Logistic 函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。
sigmoid缺点:
激活函数计算量大,反向传播求误差梯度时,求导涉及除法。
反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练。
Sigmoids函数饱和且kill掉梯度。
Sigmoids函数收敛缓慢。
函数的输出不是以0为均值,将不便于下层的计算
下面解释为何会出现梯度消失:
反向传播算法中,要对激活函数求导,sigmoid 的导数表达式为:
sigmoid 原函数及导数图形如下:
由图可知,导数从 0 开始很快就又趋近于 0 了,易造成“梯度消失”现象。
所以,sigmoid函数可用在网络最后一层,作为输出层进行二分类,尽量不要使用在隐藏层。
(2) Tanh函数
公式:
曲线:
也称为双切正切函数,取值范围为[-1,1]。
tanh在特征相差明显时的效果会很好,在循环过程中会不断扩大特征效果。
与 sigmoid 的区别是,tanh 是 0 均值的,弥补了sigmoid函数均值为0.5的缺点,因此实际应用中 tanh 会比 sigmoid 更好。
tanh的导数表达式:
tanh函数的缺点同sigmoid函数的第一个缺点一样,当z很大或很小时,导数都接近于0,会导致梯度很小,权重更新缓慢,即梯度消失现象。
(3)ReLU
公式:
曲线:
求导表达式:
ReLU函数的优点:
(1)在输入为正数的时候(对于大多数输入z空间来说),不存在梯度消失问题。
(2) 计算速度要快很多。ReLU函数只有线性关系,不管是前向传播还是反向传播,都比sigmod和tanh要快很多。(sigmod和tanh要计算指数,计算速度会比较慢)
ReLU函数的缺点:
(1)当输入为负时,梯度为0,会产生梯度消失问题。
(4) Leaky ReLU
Leaky ReLU函数解决了ReLU函数在输入为负的情况下产生的梯度消失问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。