sigmoid函数由于其自身特点,容易造成几个问题

1、当sigmoid在输出层时容易造成loss较大时学习速度慢的情况(或者说是代价函数学习速度衰退问题)

原因:神经网络的学习方式是通过求代价函数对各参数的偏导,找到负梯度方向,来优化各参数。而在loss较大时,sigmoid的偏导较小。

解决办法之一是在有sigmoid层的时候使用cross-entropy loss

cross-entropy:https://hit-scir.gitbooks.io/neural-networks-and-deep-learning-zh_cn/content/chap3/c3s1.html

解决办法之二是使用softmax替代sigmoid

softmax:https://hit-scir.gitbooks.io/neural-networks-and-deep-learning-zh_cn/content/chap3/c3s4.html

2、当sigmoid在中间层时,容易造成梯度弥散

解决办法是用relu替代sigmoid

05-18 06:47