神经激活函数 - 逻辑/坦/等之间的区别



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

特别是乙状结肠、

物流双极乙状结肠tanh 等。

sigmoid 是否只是简单地描述函数的形状而不考虑范围?如果是这样,那么tanh是"sigmoid函数"吗?

我在一篇论文中看到过"双极 sigmoid"与"tanh"的比较,但是我看到这两个函数(在各种库中)都使用相同的代码实现:

( 2/(1 + Exp(-2 * n))) - 1)。它们是一回事吗?

同样,我已经看到使用相同代码实现的逻辑sigmoid 激活:

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

最后,在实践中有那么重要吗?我在 wiki 上看到一个非常相似的 sigmoid 函数图——可以使用其中任何一个吗?有些看起来它们的计算速度可能比其他的快得多。

逻辑函数:e x/(ex + ec

物流功能的特殊("标准")情况:1/(1 + e-x

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

Tanh: (e x-e-x)

/(e x + e-x

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

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

通常最重要的区别是A.平滑连续可微分,如TANH和Logistic与步进或截断B. 竞争与转让C. 乙状结肠与径向D. 对称 (-1,+1) 与非对称 (0,1)

通常,

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

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

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

这个词

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

    逻辑
  1. 上接近 Y = 0 的输出乘以权重w产生接近 0 的值,该值对它影响的上层没有太大影响(尽管缺席也会影响),但是接近 Y = -1 的值比权重w的倍数可能会产生具有更多数值效应的大数字。
  2. tanh1 - y^2)的导数产生的值大于逻辑y (1 -y) = y - y^2)。例如,当z = 0时,逻辑函数产生 y = 0.5y' = 0.25 ,对于 tanh y = 0y' = 1(通常你可以通过查看图表看到这一点)。这意味着由于梯度的大小,tanh层可能比逻辑层学习得更快。
双极 sigmoid = (1-e^(-x))

/(1 + e^(-x))

详细的解释可以在这里找到

最新更新