【发布时间】:2011-01-12 05:31:40
【问题描述】:
在使用神经网络处理输入数据时,我见过几次使用-1 而不是0 的人。这如何更好,它是否影响任何数学来实现它?
编辑:使用前馈和后退道具
编辑 2: 我试了一下,但网络停止了学习,所以我认为数学必须在某个地方改变?
编辑3:终于找到了答案。二进制的数学不同于双极。请看下面我的回答。
【问题讨论】:
标签: math neural-network
在使用神经网络处理输入数据时,我见过几次使用-1 而不是0 的人。这如何更好,它是否影响任何数学来实现它?
编辑:使用前馈和后退道具
编辑 2: 我试了一下,但网络停止了学习,所以我认为数学必须在某个地方改变?
编辑3:终于找到了答案。二进制的数学不同于双极。请看下面我的回答。
【问题讨论】:
标签: math neural-network
已经很长时间了,但我记得,它对实现网络所需的数学没有影响(假设您没有使用由于某种原因限制任何网络类型的网络类型)非负值的过程的一部分)。优点之一是它在输入之间做出了更大的区分,并有助于放大学习信号。对于输出也是如此。
最近这样做的人可能有更多话要说(比如关于 0 交叉是否有影响;我认为确实如此)。实际上,其中一些取决于您使用的是哪种类型的神经网络。我假设您正在谈论反向传播或其变体。
【讨论】:
与使用 0/1 相比,使用 -1/1 输入的网络可以快速学习。此外,如果您使用 -1/1 输入,则 0 表示“未知条目/噪声/无关紧要”。我会使用 -1/1 作为我的神经网络的输入。
【讨论】:
最近发现如果使用bipolar over binary,sigmoid和sigmoid导数公式需要改变。
双极 Sigmoid 函数:f(x) = -1 + 2 / (1 + e^-x)
双极 Sigmoid 导数:f’(x) = 0.5 * (1 + f(x)) * (1 – f(x) )
【讨论】:
f(x)=sigmoid 扩展到[a,b] sigmoid(在我们的例子中是[-1,+1]),取g(x) = (b-a)f(x) + a(在我们的例子中变成2f(x) - 1)