ReLU比Sigmoid效果好的理由:
https://blog.csdn.net/ljyljyok/article/details/88394212
Relu的gradient大多数情况下是常数,有助于解决深层网络的收敛问题。Relu的另一个优势是在生物上的合理性,它是单边的,相比sigmoid和tanh,更符合生物神经元的特征。
sigmoid和tanh的gradient在饱和区域非常平缓,接近于0,很容易造成vanishing gradient的问题,减缓收敛速度。vanishing gradient在网络层数多的时候尤其明显,是加深网络结构的主要障碍之一。ReLU更容易学习优化。因为其分段线性性质,导致其前传,后传,求导都是分段线性。而传统的sigmoid函数,由于两端饱和,在传播过程中容易丢弃信息。对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失,参见 @Haofeng Li 答案的第三点),从而无法完成深层网络的训练。
还有表达区间问题,sigmoid和tanh区间是0到1,或着-1到1,在表达上,尤其是输出层的表达上有优势。
采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。
ReLu的另一个优势是稀疏度(Sparsity),因为当a<=0时,输出总是0, 每一层的神经元越多,结果就会越稀疏;另一方面Sigmoid总是会产生非零值,从而生成稠密表示(Dense Representations)。 稀疏表示(Sparse Representations )是学习变得更简单和快捷。
Sigmoid优势:
https://www.zhihu.com/question/342749179
sigmoid和tanh,它们全程可导。