假设我有一个这样的数据集:
[ [0, 0], [0, 1]
[0, 1], [1, 0]
[1, 0], [1, 0]
[1, 1], [0, 1] ]
实际上,y1 = x1 XOR x2,y2 = not(x1 XOR x2),这看起来并不奇怪。
使用维基百科中提供的code编写的是Python,训练错误似乎并未收敛。
为什么会这样?是否有可能使用(2,2,2)BP网络训练此数据集? (2,2,2)表示输入层节点编号,隐藏层节点编号和输出层节点编号均为2(偏置节点除外)。
或者代码有问题吗?
答案 0 :(得分:1)
可以很容易地为此训练(2,2,2)神经网络。我刚刚在Encog中尝试了这个,并且它在与单个输出版本相同的时间内进行了训练。实际上你所拥有的是网络配置为一个n分类。也就是说,每个预期值都有一个输出神经元。
我不是真正精通Python,但我猜想在代码的改编中它是一个问题。它不是人工神经网络的固有限制。