我在编写一些基本的神经网络方法,特别是激活函数时,遇到了数学知识的极限。我理解各自的范围(-1/1)(0/1)等,但不同的描述和实现让我感到困惑。
具体来说是 sigmoid、 logistic、 bipolar sigmoid、 tanh 等。
sigmoid 是否仅仅描述了函数的形状而不考虑范围?如果是这样,那么 tanh 是否是一个“sigmoid 函数”?
我在一篇论文中看到“bipolar sigmoid”与“tanh”进行了比较,然而我看到这两个函数在各种库中使用相同的代码实现:
(( 2/ (1 + Exp(-2 * n))) – 1)。它们完全相同吗?
同样,我看到logistic和sigmoid激活函数使用相同的代码实现:
( 1/ (1 + Exp(-1 * n)))。这些也是等价的吗?
最后,在实践中这是否真的很重要?我在维基百科上看到一个非常相似的 sigmoid 函数图 – 这些都可以使用吗?有些看起来计算速度可能比其他要快得多。
回答:
Logistic 函数:ex/(ex + ec)
Logistic 函数的特殊(“标准”)情况:1/(1 + e-x)
Bipolar sigmoid:从未听说过。
Tanh:(ex-e-x)/(ex + e-x)
Sigmoid 通常指的是形状(和极限),所以是的,tanh 是一个 sigmoid 函数。但在某些情况下,它特指标准的 logistic 函数,所以你需要小心。是的,你可以使用任何 sigmoid 函数,并且可能会做得很好。
(( 2/ (1 + Exp(-2 * x))) – 1) 等同于 tanh(x)。