5

我实现了一个二元逻辑回归分类器。只是为了玩,我用 tanh 替换了 sigmoid 函数 (1 / 1 + exp(-z))。结果完全相同,分类阈值为相同的 0.5,即使 tanh 在 {-1,1} 范围内,而 sigmoid 在 {0,1} 范围内。

我们使用 sigmoid 函数真的很重要吗,或者像 tanh 这样的任何可微的非线性函数都可以工作吗?

谢谢。

4

2 回答 2

5

是不是在训练的时候也改了函数,还是只是用了同样的训练方法,然后把sigmoid改成了tanh?

我认为很可能发生的情况如下。看一下 sigmoid 和 tanh 的图表:

sigmoid:http ://www.wolframalpha.com/input/?i=plot+sigmoid%28x%29+for+x%3D%28-1%2C+1%29 tanh:http://www.wolframalpha。 com/input/?i=plot+tanh%28x%29+for+x%3D%28-1%2C+1%29

我们可以看到,在 tanh 情况下,y = 0.5 的值在 x = 0.5 左右。在 sigmoid 中,x = 0.5 使我们得到大约 y = 0.62。因此,我认为现在可能发生的是您的数据不包含任何落在此范围内的点,因此您得到完全相同的结果。尝试为您的数据打印 sigmoid 值,看看是否有介于 0.5 和 0.62 之间的值。

使用 sigmoid 函数背后的原因是它源自概率和最大似然。尽管其他函数的工作方式可能非常相似,但它们将缺乏这种概率理论背景。有关详细信息,请参见例如http://luna.cas.usf.edu/~mbrannic/files/regression/Logistic.htmlhttp://www.cs.cmu.edu/~tom/mlbook/NBayesLogReg.pdf

于 2014-02-02T11:52:59.423 回答
0

函数的范围应为 {0,1},因为它表示结果的概率。

于 2014-02-02T10:30:54.603 回答