双曲正切和S形神经元有什么区别?

人工智能 神经网络 机器学习 深度神经网络 比较 隐藏层
2021-11-07 22:46:22

深度学习中常用的两个激活函数是双曲正切函数和 sigmoid 激活函数。我知道双曲正切只是 sigmoid 函数的重新缩放和平移:

tanh(z)=2σ(z)1.

这两个激活函数之间是否存在显着差异,特别是什么时候一个比另一个更可取

我意识到在某些情况下(例如在估计概率时)输出范围为[0,1]比输出范围更方便[1,1]. 我想知道除了方便之外是否还有区别这两种激活功能的区别。

2个回答

Sigmoid > 双曲正切:

正如您所提到的,在我们需要输出概率值的情况下,Sigmoid 的应用可能比双曲正切更方便(正如@matthew-graves 所说,我们可以通过简单的映射/校准步骤来解决这个问题)。在其他层,这没有任何意义。

双曲正切 > Sigmoid:

双曲正切具有称为“近似原点附近的恒等”的属性,这意味着tanh(0)=0,tanh(0)=1, 和tanh(z)周围是连续的z=0(相对于 σ(0)=0.5σ(0)=0.25)。这个特性(也存在于许多其他激活函数中,例如identityarctansinusoid)让网络即使在其权重初始化为小值时也能有效地学习。在其他情况下(例如SigmoidReLU),这些小的初始值可能是有问题的。

延伸阅读:

用于训练非常深的前馈网络的随机游走初始化

我认为根据输出的所需属性来决定激活函数是没有意义的。您可以轻松插入一个校准步骤,将“神经网络分数”映射到您实际想要使用的任何单位(美元、概率等)。

所以我认为不同激活函数之间的偏好主要归结为这些激活函数的不同属性(比如它们是否连续可微)。因为两者之间只是线性转换,我认为这意味着它们之间没有有意义的差异。