来自具有非常随机输入网络的 ANN 的结果
最初,我在 Matlab 中实现了一个反向传播网络,并将其用于 XOR。但是,现在我使用以下输入/目标组合来使用同一网络。
输入 = <代码>[0 0; 0 1; 1000 0; 1 1],目标 = [0; 1000; 1; 0]
我得到的输出为 [1;1;1;1]
该网络根本无法学习网络。谁能解释一下为什么会这样吗?如果我要构建一个可以学习如此小的 I/O 网络的网络,我该怎么办?
任何解释都将受到高度赞赏。
问候 最大限度
Initially I implemented a Backpropagation network in Matlab and used it on XOR. However, now I am using to the same network using the following input/target combination.
Inputs = [0 0; 0 1; 1000 0; 1 1]
, Targets = [0; 1000; 1; 0]
And I get output as [1;1;1;1]
The network wasn't able to learn the network at all. Could anyone please explain why it is so? And what can I do if I to build a network that can learn such small I/O networks?
Any explanation is highly appreciated.
Regards
Max
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这看起来像是一个缩放问题。在您最初的 XOR 问题中,输入和输出都处于可比较的范围内,即 [0,1]。在您修改后的问题中,一些输入显示为 [0,1],一些输入显示为 [0,1000]。
解决方案是将输入标准化为相似的比例:通常使用 [0,1] 或 [-1,1]。
对于您的情况,将输入除以 1000 即可将范围置于 [0,1] 中。不要忘记对输出进行非标准化(即在您的情况下乘以 1000)以返回到原始比例。
It's looks like a scaling problem. In your original XOR problems, the inputs and outputs were all on comparable scales, namely [0,1]. In your revised problem, some inputs appear to be [0,1] and some [0,1000].
The solution is to normalize the inputs to similar scales: [0,1] or [-1,1] are commonly used.
In your case, it may be sufficient to divide the inputs by 1000 to place your range into [0,1]. Don't forget to denormalize the outputs (i.e. multiply by 1000 in your case) to return to the original scale.