激励函数是神经网络中一个很重要的组成部分,它将神经网络中的线性加权和转化为非线性输出,帮助神经网络更好地逼近复杂函数。在误差反传算法中,激励函数的作用主要是通过反向传播误差信号来更新神经网络中的权值。如果选择一个合适的激励函数,可以有效地提高神经网络的学习效率和泛化能力。
在误差反传算法中,激励函数需要满足以下几个要求:
(1)可导性。因为误差反传算法是基于梯度下降的思想,需要计算梯度更新权值。所以激励函数必须是可导的。
(2)非线性。如果使用线性激励函数,那么神经网络将失去非线性函数逼近能力,无法提高学习效率。
(3)单调性。如果使用有多个极值点的激励函数,会导致优化过程中梯度下降陷入局部极小值,从而不能收敛到全局最优解。
(4)饱和性。如果激励函数在输入一定范围内输出饱和或饱和区域太小,那么神经网络将得不到足够的梯度更新,从而导致学习变慢或停滞。
下面介绍几种常用的激励函数:
(1)sigmoid函数。sigmoid函数是一个典型的多层神经网络激励函数。它具有平滑的、可导的非线性特性,但在输入比较大或比较小的情况下,会出现饱和问题。
(2)ReLU函数。ReLU函数在输入大于0时输出等于输入,否则输出0。它具有收敛快、计算方便等特点,但在输入小于等于0时梯度为0,容易出现“神经元死亡”问题。
(3)tanh函数。tanh函数是一个双曲正切函数,具有相对平滑的非线性特性。相比于sigmoid函数,它的输出值在-1到1之间,更容易让神经网络学习到中心化的特征。
在误差反传算法bp中,合适的激励函数可以提高神经网络的学习效率和泛化能力。我们需要根据具体问题选择合适的激励函数,满足可导性、非线性、单调性和饱和性等要求。