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