Xit*_*rum 2 neural-network encog
由于我是神经网络的新手,所以我想问几个问题以更清楚地理解它。
我的训练数据:
1,2,3,4 Pattern1
6,7,8,9 Pattern1
Run Code Online (Sandbox Code Playgroud)
我的测试数据:
4,3,2,1 Pattern2
Run Code Online (Sandbox Code Playgroud)
这是我从 encog 得到的结果:神经网络结果:
0.0,0.0, actual=-0.05972914453206861,ideal=1.0
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我我错在哪里吗?
非常感谢。
如果你只需要一个真/假响应,你的输出层应该只有一个神经元。如果那个神经元处于活动状态,则将其视为正确。如果它不活动,则将其视为错误。
如果您的训练数据只有真实值,那么它就是坏数据,并没有真正的帮助。您将最终训练您的网络始终以 true 响应。也许您应该找出一些会导致错误结果的数据并将其添加到训练数据中。
如果你的训练数据只有两种情况,而且它们都是正确的,那么你的网络真的不会学到任何东西。您需要更多数据才能使模式清晰。
去问一个聪明人(我们拥有的最好的神经网络)以下问题:
1,2,3,4 is true; 6,7,8,9 is true. Is 4,3,2,1 true?
Run Code Online (Sandbox Code Playgroud)
他们不知道。我不知道。没人知道。我不知道标准是什么。可以是任意数量的事物来确定序列是否为真。包含:
我不知道哪些是要求,哪些不是。不知道。而你正在制作的神经网络的想法甚至更少。
主要问题是您需要更多数据。
最后一点。人们常说神经网络擅长“模式匹配”。这是真的。然而,数字序列通常不是“模式匹配”的意思。任何需要算术的东西都不会被神经网络很好地服务。它们对于算术来说不够精确。因此,您永远无法将神经网络训练得特别好,例如,识别一系列加倍数字。