我想知道我做错了什么,或者结果真的那么差。让我们假设最简单的NN示例,如文档中所示:
>>>net = buildNetwork(2, 3, 1, bias=True)
>>> ds = SupervisedDataSet(2, 1)
>>> ds.addSample((0, 0), (0,))
>>> ds.addSample((0, 1), (1,))
>>> ds.addSample((1, 0), (1,))
>>> ds.addSample((1, 1), (0,))
>>> trainer = BackpropTrainer(net, ds)
>>> trainer.trainUntilConvergence()
>>> print net.activate((0,0))
>>> print net.activate((0, 1))
>>> print net.activate((1, 0))
>>> print net.activate((1, 1))
e.g
>>> print net.activate((1,0))
[ 0.37855891]
>>> print net.activate((1,1))
[ 0.6592548]
预计是0.我知道我可以明显地圆但仍然我希望网络对于这样一个简单的例子更精确。它可以被称为“工作”在这里,但我怀疑我错过了一些重要的原因,因为这是非常无法使用...
问题是,如果您将verbose=True
设置为您的教练,您可以看到相当小的错误(如总错误:0.0532936260399)
我认为网络的误差是5%,那么之后激活功能怎么样呢?
我使用pybrain显然更复杂,但我有同样的问题。即使网络说错误大约是0.09左右,我也会得到大约50%的测试样本错误。
有任何帮助吗?