反向传播能否一次训练两个问题?

时间:2013-04-26 03:15:21

标签: algorithm machine-learning artificial-intelligence neural-network backpropagation

假设我有一个这样的数据集:

[   [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(偏置节点除外)。

或者代码有问题吗?

1 个答案:

答案 0 :(得分:1)

可以很容易地为此训练(2,2,2)神经网络。我刚刚在Encog中尝试了这个,并且它在与单个输出版本相同的时间内进行了训练。实际上你所拥有的是网络配置为一个n分类。也就是说,每个预期值都有一个输出神经元。

我不是真正精通Python,但我猜想在代码的改编中它是一个问题。它不是人工神经网络的固有限制。