【问题标题】:Neural Activation Functions - Difference between Logistic / Tanh / etc神经激活函数 - Logistic / Tanh / 等之间的区别
【发布时间】:2016-01-05 11:17:54
【问题描述】:

我正在编写一些基本的神经网络方法 - 特别是激活函数 - 并且已经达到了我垃圾数学知识的极限。我了解各自的范围 (-1/1) (0/1) 等,但不同的描述和实现让我感到困惑。

具体来说sigmoidlogisticbipolar sigmoidtanh

sigmoid 是否简单地描述了函数的形状而与范围无关?如果是这样,那么 tanh 是“sigmoid 函数”吗?

我在一篇论文中看到了“bipolar sigmoid”与“tanh”的比较,但是我看到两个函数(在各种库中)使用相同的代码实现:

(( 2/ (1 + Exp(-2 * n))) - 1)。它们完全一样吗?

同样,我看到 logisticsigmoid 激活使用相同的代码实现:

( 1/ (1 + Exp(-1 * n)))。这些也是等价的吗?

最后,在实践中它甚至有那么重要吗?我在 wiki 上看到 plot of very similar sigmoid functions - 可以使用其中的任何一个吗?有些看起来它们的计算速度可能比其他的快得多。

【问题讨论】:

标签: function math machine-learning statistics neural-network


【解决方案1】:

逻辑函数:ex/(ex + ec)

逻辑函数的特殊(“标准”)情况:1/(1 + e-x)

双极乙状结肠:从未听说过。

Tanh: (ex-e-x)/(ex + e-x)

Sigmoid 通常指的是形状(和限制),所以是的,tanh 是一个 sigmoid 函数。但在某些情况下,它专门指标准逻辑函数,因此您必须小心。是的,你可以使用任何 sigmoid 函数,并且可能做得很好。

(( 2/ (1 + Exp(-2 * x))) - 1) 等价于 tanh(x)。

【讨论】:

  • 很好的答案,谢谢!我检查了“双极 sigmoid”函数,在我面前的论文中,他们将其实现为:(( 2/ (1 + Exp(-1 * x))) - 1) = tanh(x /2)
  • 实际上你需要小心你使用哪个 sigmoid - 例如至少匹配输出范围(或重新调整输出)。此外,使用反向传播 tanh/tansig 往往比对隐藏层的 logig 工作得更好。这是因为它介于 -1 和 +1(双极)而不是 0 和 +1(单极)之间,并保持更好的平衡。
【解决方案2】:

通常最重要的区别是 一个。平滑连续可微分,如 tanh 和logistic vs step 或 truncated 湾。竞争与转移 C。 sigmoid 与径向 d。对称 (-1,+1) 与非对称 (0,1)

通常隐藏层需要可微分要求,通常建议使用更平衡的 tanh。 tanh 的 0 位于最快点(最高梯度或增益)而不是陷阱,而逻辑 0 是最低点,是任何深入负区域的陷阱。径向(基)函数与典型原型的距离有关,适用于神经元周围的凸圆形区域,而 sigmoid 函数是关于线性分离并适用于半空间 - 并且需要很多才能很好地逼近凸区域,其中圆形/球形区域最适合 sigmoid,最适合径向。

一般来说,建议在中间层使用 tanh 以实现 +/- 平衡,并使输出层适合任务(具有阈值、逻辑或竞争输出的布尔/二分类决策(例如 softmax,一种自归一化多类逻辑的泛化);回归任务甚至可以是线性的)。输出层不需要连续可微。输入层应该以某种方式归一化,要么是 [0,1],要么是更好的标准化或归一化,贬低为 [-1,+1]。如果您包含 1 的虚拟输入,则归一化,因此 ||x||p = 1 您将除以总和或长度,并且此幅度信息保留在虚拟偏置输入中,而不是丢失。如果您对示例进行规范化,那么如果您查看它们,这在技术上会干扰您的测试数据,或者如果您不这样做,它们可能超出范围。但是通过 ||2 归一化,如果这些变化或误差是自然分布或误差的影响,它们应该接近正态分布。这意味着它们极有可能不会超出原始范围(可能约为 2 个标准偏差)超过一个很小的因素(即此类超范围值被视为异常值且不显着)。

所以我建议在输入层使用无偏实例归一化或有偏模式标准化或两者兼而有之(可能使用 SVD 进行数据缩减),在隐藏层使用 tanh,在输出层使用阈值函数、逻辑函数或竞争函数进行分类,但与未归一化的目标呈线性关系,或者可能与归一化的回归目标呈对数。

【讨论】:

    【解决方案3】:

    这个词是(我已经测试过)在某些情况下使用 tanh 可能比使用 logistic 更好,因为

    1. logistic 上接近 Y = 0 的输出乘以权重 w 产生接近 0 的值,对上层影响不大它会影响(尽管缺席也会影响),但是 tahn 上接近 Y = -1 的值乘以权重 w 可能会产生一个具有更多数值影响的大数字。
    2. tanh (1 - y^2) 的导数产生的值大于 logistic (y (1 -y) = y - y^2)。例如,当 z = 0 时,logistic 函数产生 y = 0.5y' = 0.25,对于 tanh y = 0y' = 1(你可以看到一般只是通过查看图表)。 意思,由于梯度的大小,tanh 层可能比 logistic 层学习得更快。

    【讨论】:

      【解决方案4】:

      双极 sigmoid = (1-e^(-x))/(1 + e^(-x))

      详细解释可以在here找到

      【讨论】:

        猜你喜欢
        • 2017-01-14
        • 2012-01-07
        • 2023-03-12
        • 2017-03-30
        • 2014-01-18
        • 2017-12-08
        • 2013-08-20
        • 2020-12-05
        相关资源
        最近更新 更多