【发布时间】:2015-04-18 20:29:48
【问题描述】:
我一直在尝试实施反向传播神经网络一段时间,但我一次又一次地面临问题。到目前为止的进展是我的神经网络可以很好地处理 XOR、AND 和 OR。
下图显示了我的神经网络对超过 100000 次迭代的 XOR 训练,它似乎收敛得很好。为此,我有 2 个输入神经元和一个带有隐藏层的输出神经元和 2 个神经元 [虽然 1 就足够了]
现在继续前进,我训练了相同的网络,将 XY 平面上的两个坐标区分为具有相同结构的两个类,即 2 个输入神经元和 1 个输出神经元以及具有两个神经元的单个隐藏层:
接下来我只训练了两个类,但有 2 个输出神经元并保持结构的其余部分相同,这次收敛确实需要很长时间,但确实如此。 但现在我增加到了三个班级; A 类为 100,B 类为 010,C 类为 001,但现在当我训练它时,它永远不会收敛,并为我提供以下数据的以下结果:
它似乎永远不会收敛。而且我已经观察到这种模式,如果我增加输出层中的神经元数量,错误率会像任何东西一样增加?谁能告诉我哪里出错了?
【问题讨论】:
-
什么是逻辑输出神经元级别?绿色0-0.3,蓝色0.3-0.7,红色0.7-1.0?
-
不!实际上我的输出层有 3 个神经元,所以如果它被归类为 A 类,那么应该触发输出层的第一个神经元,并且该层的完整输出将为 100,同样,如果 B 类则完整输出将为 010,依此类推
-
这些输出的总和是多少?
-
输出的总和??.. 我只将上述那个作为我的最终输出.. 就像我的输出将是 [1.0,0.0,0.0] 或 [0.0,1.0,0.0 ] 或 [0.0,0.0,1.0] 在理想情况下.. 我希望这让我的问题更清楚
-
只是出于兴趣,我注意到了 Java 标记。您为此使用了什么 NN 库?
标签: java neural-network backpropagation