激活函数是深度学习中的一个关键概念,它对神经网络的输出进行非线性转换,使得网络能够学习复杂的模式和表示。在本文中,我们将介绍激活函数的作用和常见的几种类型,并提供相应的源代码示例。
激活函数的作用
在神经网络中,激活函数被应用于每个神经元的输出,以引入非线性性质。这对于处理非线性问题非常重要,因为线性函数的组合仍然是线性的。通过引入非线性激活函数,神经网络可以学习复杂的函数映射,从而提高模型的表达能力和性能。
常见的激活函数
以下是几种常见的激活函数及其代码实现:
- Sigmoid函数(Logistic函数)
Sigmoid函数将输入映射到一个范围在0到1之间的连续值。它的数学表达式为:
def sigmoid(x):
return 1 / (1 + np.exp(-x))
Sigmoid函数在早期的神经网络中经常使用,但它的主要缺点是当输入较大或较小时,梯度会接近于零,导致梯度消失的问题。
- 双曲正切函数(Tanh函数)
Tanh函数是Sigmoid函数的变体,将输入映射到范围在-1到1之间的连续值。它的数学表达式为:
def tanh(x):
return (np.exp(x) - np.exp(-x)) / (