神经网络对训练数据的反应是否得到保证?

时间:2009-09-02 18:00:55

标签: artificial-intelligence neural-network training-data

我正在尝试训练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个链接限制)

2 个答案:

答案 0 :(得分:3)

简答:否

答案较长(但可能不正确):

1st:训练运行仅将神经元的权重移动到它们影响输出的位置,如同在testdata中一样。经过一些/多次迭代后,输出应该接近预期的输出。 Iff神经网络完成任务,这让我

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

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

第四:我因为对音乐缺乏了解而责备3。它只是不适合我的大脑; - )

答案 1 :(得分:2)

不,如果你让你的人工神经网络在训练数据上完美运作,你要么有一个非常简单的问题,要么你过度拟合。