1

我正在尝试训练一个 ANN(我使用这个库: http: //leenissen.dk/fann/),结果有些令人费解——基本上,如果我在用于训练的相同数据上运行经过训练的网络,输出是不是训练集中指定的,而是一些随机数。

例如,训练文件中的第一个条目类似于

88.757004 88.757004 104.487999 138.156006 100.556000 86.309998 86.788002 
1

第一行是输入值,第二行是所需的输出神经元的值。但是当我将完全相同的数据提供给经过训练的网络时,每次训练尝试都会得到不同的结果,并且它们与 1 完全不同,例如:

Max epochs   500000. Desired error: 0.0010000000.
Epochs            1. Current error: 0.0686412785. Bit fail 24.
Epochs          842. Current error: 0.0008697828. Bit fail 0.
my test result -4052122560819626000.000000

然后再次尝试:

Max epochs   500000. Desired error: 0.0010000000.
Epochs            1. Current error: 0.0610717005. Bit fail 24.
Epochs          472. Current error: 0.0009952184. Bit fail 0.
my test result -0.001642

我意识到训练集的大小可能不足(到目前为止我只有大约 100 个输入/输出对),但至少训练数据不应该触发正确的输出值吗?相同的代码适用于 FANN 网站上描述的“入门”XOR 函数(我已经用完了我的 1 个链接限制)

4

2 回答 2

3

简短的回答:没有

更长的答案(但可能不是正确的):

第一个:训练运行仅将神经元的权重移动到它们影响输出的位置,就像在测试数据中一样。经过一些/多次迭代后,输出应该接近预期的输出。如果神经网络能胜任这项任务,这让我

第二:并非每个神经网络都适用于所有问题。对于单个神经元,很容易想出一个无法由单个神经元逼近的简单函数。虽然不那么容易看到,但相同的限制适用于每个神经网络。在这种情况下,您的结果很可能看起来像随机数。评论后编辑:在许多情况下,这可以通过向网络中添加神经元来解决。

第三:实际上第一点是神经网络的优势,因为它允许网络很好地处理异常值。

4th:我责怪3我对音乐缺乏理解。它只是不适合我的大脑;-)

于 2009-09-02T18:16:38.447 回答
2

不,如果你让你的 ANN 在训练数据上完美地工作,你要么有一个非常简单的问题,要么就是过度拟合。

于 2009-09-02T18:29:33.927 回答