2020-12-23 03:27:51
1. Sigmoid函数
输出范围在0到1之间,适合作为概率输出。
易于理解和实现。
梯度消失:当输入值非常大或非常小时,Sigmoid函数的导数接近于0,导致梯度消失,影响神经网络的训练效果。
不以零为中心:Sigmoid函数的输出恒大于0,这会导致下一层神经元的输入发生偏置偏移,影响梯度下降的收敛速度。
计算成本高:由于使用了指数函数,计算相对复杂,计算成本较高。

2. Tanh函数
输出是0均值,有助于改善梯度消失问题(相对于Sigmoid函数)。
相比Sigmoid函数,Tanh函数在隐藏层中的表现通常更好。
梯度消失:尽管Tanh函数在输出范围上有所改进,但在输入值非常大或非常小时,其导数仍然接近于0,存在梯度消失问题。
计算成本:与Sigmoid函数类似,Tanh函数也使用了指数函数,计算成本较高。

3. ReLU函数
梯度消失问题改善:当输入为正时,ReLU函数的导数为1,有效避免了梯度消失问题。
计算速度快:ReLU函数只涉及简单的比较和乘法操作,计算速度非常快。
生物学合理性:ReLU函数具有单侧抑制和宽兴奋边界的特性,与生物神经元的激活机制相似。
Dead ReLU问题:当输入为负时,ReLU函数完全失效,导致梯度为0,影响神经网络的训练。
不以零为中心:ReLU函数的输出为0或正数,同样会给下一层神经元引入偏置偏移。

4. Leaky ReLU函数
缓解Dead ReLU问题:通过给负输入值一个小的梯度(如0.01),Leaky ReLU函数缓解了ReLU函数在负输入值时的失效问题。
扩大ReLU函数的范围:Leaky ReLU函数保留了ReLU函数的所有优点,如计算高效、快速收敛等,并扩大了其应用范围。
尽管Leaky ReLU函数在理论上优于ReLU函数,但在实际操作中,其性能提升并不总是显著的,需要根据具体问题进行调整。

综上所述,不同的激活函数各有优缺点,选择哪种激活函数取决于具体的应用场景和神经网络的结构。在实际应用中,通常需要根据实验结果和性能表现来选择最合适的激活函数。