神经激活函数 - Logistic/Tanh /等之间的差异

Sat*_*ite 11 math statistics function machine-learning neural-network

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

特别是sigmoid,logistic,bipolar sigmoid,tanh等.

sigmoid是否只是描述函数的形状而不管范围如何?如果是这样,那么tanh是一个'sigmoid函数'吗?

我在论文中看到'双极sigmoid'与'tanh'进行了比较,但是我已经看到两个函数在不同的库中实现了相同的代码:

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

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

(1 /(1 + Exp(-1*n))).这些也相同吗?

最后,它在实践中是否有重要意义?我在wiki上看到了一个非常相似的sigmoid函数的图 - 可以使用其中任何一个吗?有些看起来可能比其他人计算速度快得多.

Bet*_*eta 9

逻辑函数:e x /(e x + e c)

物流功能的特殊("标准")情况: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).


Dav*_*ers 5

一般来说,最重要的差异是a.平滑连续可微分,如tanh和logistic vs step或truncated b.竞争与转移c.sigmoid vs radial d.对称(-1,+ 1)与非对称(0,1)

通常,隐藏层需要可区分的要求,并且通常建议将tanh更平衡.tanh的0是最快的点(最高的梯度或增益)而不是陷阱,而logistic 0是最低点,是任何深入负区域的陷阱.径向(基础)函数与典型原型的距离有关,对于神经元有利于凸圆形区域,而S形函数关于线性分离和半空间有利 - 并且它需要很多才能很好地逼近凸区域,圆形/球形区域对于sigmoids是最差的并且最适合于径向.

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

因此,我建议输入层(可能与SVD数据减少),在隐藏层的tanh,以及阈值函数,逻辑函数或竞争性功能在输出用于分类上无偏实例正常化或偏置图案标准化或两者,但与线性非标准化目标或者可能是具有归一化回归目标的logig.