sigmod:
优点:
①能将输出限制在(0,1)之间,便于完成分类任务;
缺点:
①非零中心:输出值不是以零为中心,从而随着前向传播很可能导致后面的神经元的输出要么全为正数,要么全为负数,最终导致梯度下降时出现Z字型下降;
②梯度饱和、梯度消失:sigmod函数的两侧形状趋近于水平,梯度逐渐无穷接近于0,这些地方就会出现梯度饱和,导致梯度始终很小,无法让权重集发生有效的改变;而sigmod函数的导数的输出值区间为(0,0.25),随着神经网络层数增加,在反向传播中,梯度值不断地乘1个小于1/4的数,会让梯度逐渐变得逐渐趋近于0,同样无法让权重集发生有效的改变。
③非线性:sigmod的函数表达式是包含了指数运算,在计算时消耗资源更多。
tanh:
优点:
①能将输出限制在(-1,1)之间,便于完成分类任务;
②零中心
缺点:
①梯度饱和、梯度消失
②非线性
ReLU:
优点:
①线性:解决计算资源,缩短收敛时间
缺点:
①单元死亡:ReLU函数的左侧是完全水平的,当神经元z值为负值时,输出α值为0,梯度也为0,无法通过梯度改变权重值w,w值固定不变,称之为“ReLU单元死亡”
Leaky ReLU:
优点:
①线性:
②梯度不饱和,无单元死亡:
Maxout:
(可以视为ReLU、Leaky ReLU的一般化,增加单元参数来引入比较值)
优点:
①线性:
②梯度不饱和
缺点:
①参数量倍增:由于引入了新单元来做比较值,导致参数量增加,消耗计算资源。
结论:
排除sigmod选择,优先选择ReLU;如果遇到棘手的“单元死亡”问题,则使用Leaky ReLU或者Maxout。
tanh可以尝试使用,但效果应该会比ReLU、Leaky ReLU和Maxout差一些。
网友评论