1 什么是激活函数

激活函数(Activation Function)在人工神经网络的神经元上运行,负责将神经元的输入映射到输出端。

如图,在神经元中,输入的 inputs 通过加权求和后,还被作用了一个函数,这个函数就是激活函数,引入激活函数是为了使神经网络模型具有非线性特性。
在这里插入图片描述

2 为什么使用激活函数

如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这种情况就是最原始的感知机。

而激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。

3 常用激活函数

1 Sigmoid

Sigmoid函数由于其单增以及反函数单增等性质,常被用作神经网络的阈值函数,将变量映射到(0,1),可以用来做二分类。

缺点:

  1. 当输入非常大或者非常小的时候,这些神经元的梯度是接近于0的,从图中可以看出梯度的趋势。
  2. Sigmoid 的 输出不是0均值,这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。

在这里插入图片描述
在这里插入图片描述

2 Tanh

双曲正切,将变量映射到(-1,1)。Tanh是Sigmoid的变形,与 sigmoid 不同的是,tanh 是0均值的。因此,实际应用中,tanh 会比 sigmoid 更好。

在这里插入图片描述
在这里插入图片描述

3 Relu

修正线性单元,它的作用是如果计算出的值小于0,就让它等于0,否则保持原来的值不变,克服了前两个激活函数会出现的梯度消失问题。

通常用于隐层神经元输出。

在这里插入图片描述
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐