【问题标题】:Neural Network 0 vs -1神经网络 0 vs -1
【发布时间】:2011-01-12 05:31:40
【问题描述】:

在使用神经网络处理输入数据时,我见过几次使用-1 而不是0 的人。这如何更好,它是否影响任何数学来实现它?

编辑:使用前馈和后退道具

编辑 2: 我试了一下,但网络停止了学习,所以我认为数学必须在某个地方改变?

编辑3:终于找到了答案。二进制的数学不同于双极。请看下面我的回答。

【问题讨论】:

    标签: math neural-network


    【解决方案1】:

    已经很长时间了,但我记得,它对实现网络所需的数学没有影响(假设您没有使用由于某种原因限制任何网络类型的网络类型)非负值的过程的一部分)。优点之一是它在输入之间做出了更大的区分,并有助于放大学习信号。对于输出也是如此。

    最近这样做的人可能有更多话要说(比如关于 0 交叉是否有影响;我认为确实如此)。实际上,其中一些取决于您使用的是哪种类型的神经网络。我假设您正在谈论反向传播或其变体。

    【讨论】:

    • 是的,使用反向传播。我可以理解加权输入会有所不同(即,如果权重为 1.84,则输入 0 会导致 0 和 -1 会导致 -1.84),但我不知道它是否更好或为什么。跨度>
    • 它确实对数学有影响。
    【解决方案2】:

    与使用 0/1 相比,使用 -1/1 输入的网络可以快速学习。此外,如果您使用 -1/1 输入,则 0 表示“未知条目/噪声/无关紧要”。我会使用 -1/1 作为我的神经网络的输入。

    【讨论】:

    • 但是我是否必须更改任何内容,或者是否只需将 0 替换为 -1 即可。正如我所说,我试了一下,但结果很奇怪。 MSE 在每个 epoch 中不断输出相同的数字。
    【解决方案3】:

    最近发现如果使用bipolar over binary,sigmoid和sigmoid导数公式需要改变。

    双极 Sigmoid 函数:f(x) = -1 + 2 / (1 + e^-x)

    双极 Sigmoid 导数:f’(x) = 0.5 * (1 + f(x)) * (1 – f(x) )

    【讨论】:

    • 查看此链接以供参考:aforgenet.com/framework/docs/html/…
    • 感谢正在寻找为什么我的网络无法使用双极目标进行训练,意识到 signoid 不是双极但无法找到导数,现在工作得很好。
    • 为了完成:从普通的f(x)=sigmoid 扩展到[a,b] sigmoid(在我们的例子中是[-1,+1]),取g(x) = (b-a)f(x) + a(在我们的例子中变成2f(x) - 1)
    猜你喜欢
    • 2020-01-26
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2020-06-25
    • 2017-02-19
    • 2012-11-09
    • 1970-01-01
    相关资源
    最近更新 更多