tanh 激活函数与 sigmoid 激活函数

机器算法验证 机器学习 神经网络 优化
2022-02-11 14:49:45

tanh 激活函数为:

tanh(x)=2σ(2x)1

在哪里σ(x)sigmoid 函数定义为:

σ(x)=ex1+ex
.

问题:

  • 使用这两个激活函数(tanh vs. sigma)真的很重要吗?
  • 在哪种情况下哪个功能更好?
2个回答

是的,出于技术原因,这很重要。基本上是为了优化。LeCun 等人的Efficient Backprop值得一读。

这种选择有两个原因(假设您已经对数据进行了标准化,这非常重要):

  1. 具有更强的梯度:由于数据以 0 为中心,因此导数更高。要看到这一点,请计算 tanh 函数的导数并注意其范围(输出值)为 [0,1]。

tanh函数的范围是[-1,1],sigmoid函数的范围是[0,1]

  1. 避免梯度偏差。这在论文中解释得很好,值得一读以了解这些问题。

非常感谢@jpmuc!受您的回答启发,我分别计算并绘制了 tanh 函数和标准 sigmoid 函数的导数。我想和大家分享。这是我得到的。这是 tanh 函数的导数。对于 [-1,1] 之间的输入,我们有 [0.42, 1] 之间的导数。 在此处输入图像描述

这是标准 sigmoid 函数 f(x)= 1/(1+exp(-x)) 的导数。对于 [0,1] 之间的输入,我们有 [0.20, 0.25] 之间的导数。 在此处输入图像描述

显然 tanh 函数提供了更强的梯度。