0

最初我在 Matlab 中实现了一个反向传播网络,并在 XOR 上使用它。但是,现在我使用以下输入/目标组合使用相同的网络。

输入 = [0 0; 0 1; 1000 0; 1 1], 目标 =[0; 1000; 1; 0]

我得到的输出为[1;1;1;1]

网络根本无法学习网络。谁能解释一下为什么会这样?如果我构建一个可以学习这么小的 I/O 网络的网络,我该怎么办?

任何解释都受到高度赞赏。

问候马克斯

4

1 回答 1

0

这看起来像一个缩放问题。在您最初的 XOR 问题中,输入和输出都在可比较的范围内,即 [0,1]。在您修改后的问题中,一些输入似乎是 [0,1] 和一些 [0,1000]。

解决方案是将输入标准化为相似的比例:通常使用 [0,1] 或 [-1,1]。在您的情况下,将输入除以 1000 以将您的范围放入 [0,1] 可能就足够了。不要忘记对输出进行非规范化(即在您的情况下乘以 1000)以返回原始比例。

于 2012-01-02T22:08:24.543 回答