一、如何选择激活函数
# 激活函数应该是非线性的、可微分的(需要梯度下降更新参数)、最好是输入和输出近似恒等(更稳定) # 激活函数是单调函数时能保证单层神经网络损失函数为凸函数 # 激活函数输出为有限值时会更加稳定,而输出为无限值时,建议调小学习率
二、常用激活函数
# sigmoid激活函数:深层神经网络参数更新可能导致梯度消失、输出都是大于零的值收敛速度慢、计算复杂度高:
# tanh激活函数:有梯度消失问题、计算复杂度高
# relu激活函数:计算复杂度低、不会梯度消失、输出值的平均值不是零、收敛快于sigmoid但任然很慢、输入是负数时梯度为零可能有一些神经元永远不会被激活(就有一些参数永远不会更新,这是由于负数特征太多导致,可以采取随机初始参数中心化、减小学习率进行改进)
# leaky relu激活函数:解决了relu的缺点问题,相比relu在输入为负时,输出不为零,但并未证明比relu更好。
三、总结
# 总结:首选relu激活函数、选择较小学习率lr、输入值应该满足以零为均值的正态分布、采用随机初始参数中心化的方法去改进激活函数。
参考链接: