1

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

[   [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),这似乎一点也不奇怪。

使用 Wikipedia 中提供的代码,它是用 Python 编写的,训练错误似乎没有收敛。

为什么会这样?这个数据集是否不可能用 (2, 2, 2) BP 网络进行训练?(2, 2, 2) 表示输入层节点数、隐藏层节点数和输出层节点数都是2(偏置节点除外)。

还是代码有问题?

4

1 回答 1

1

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

我对 Python 不是很流利,但我猜想这是代码改编中的某个问题。这不是 ANN 的固有限制。

于 2013-04-26T13:16:04.760 回答