激活函数是神经网络中的一种非线性变换,它在神经元的输出上引入了非线性性质,使神经网络能够更好地学习和适应复杂的数据模式。以下是一些常见的激活函数:
Sigmoid 函数将输入映射到(0,1)之间,常用于输出层的二分类问题。然而,它在深度神经网络中的梯度消失问题(vanishing gradient problem)使得在隐藏层中的使用逐渐减少。
tanh 函数将输入映射到 (-1,1) 之间,相比 Sigmoid 函数,tanh 的输出范围更广,有助于缓解梯度消失问题。
ReLU 是一种简单而广泛使用的激活函数,对正值保持不变,负值置零。它在许多情况下表现良好,但可能存在“死亡 ReLU”问题,即某些神经元可能永远不会被激活。
Leaky ReLU 在负值部分引入一个小的斜率 αα,以解决死亡 ReLU 问题,使得负值时仍然有些梯度。
PReLU 是 Leaky ReLU 的一种扩展,不同之处在于它引入了一个可学习的参数 αα。
ELU 是一种类似于 Leaky ReLU 的激活函数,但在负值时具有更平滑的曲线,并且可以接近于负无穷,有助于缓解梯度消失问题。
这些激活函数各有优劣,选择适当的激活函数通常取决于具体的问题和网络架构。ReLU 及其变体是目前深度学习中最常用的激活函数之一。