我正在创建一个工具,用于基于过去的数据预测软件项目的时间和成本。该工具使用神经网络来做到这一点,到目前为止,结果是有希望的,但我认为我可以通过改变网络的属性来做更多的优化。当涉及到这些设置时,似乎没有任何规则或甚至许多最佳实践,所以如果有经验的人可以帮助我,我将不胜感激。用于快速培训的神经网络设置
输入数据由一系列整数组成,可以按照用户想要去的那样高,但大多数会低于100,000我会想到的。有些将低至1.它们的详细信息包括项目中的人员数量和项目成本,以及有关数据库实体和用例的详细信息。
总共有10个输入和2个输出(时间和成本)。我正在使用Resilient Propagation来训练网络。目前它具有:10个输入节点,1个隐藏层,5个节点和2个输出节点。我正在接受5%的错误率训练。
该算法必须在网络服务器上运行,所以我已经采取措施停止培训,看起来它不会在任何地方。这被设置为10,000次训练迭代。目前,当我尝试使用一些有点多变的数据进行训练时,但在我们预期用户投入的范围内时,训练需要很长时间,达到10,000次迭代限制并重新开始。
这是我第一次使用神经网络,我真的不知道会发生什么。如果你能给我一些关于我应该用于网络和迭代限制的设置的提示,我将不胜感激。
谢谢!
感谢您的所有信息! 1.我想过对输入进行归一化处理,但是当一个数值没有最大值并且某些数值可能差别很大时我不知道该怎么做。 2.我尝试了20个隐藏的神经元,它需要5个多小时而不是几秒钟的数据。好像超过10个并不好。 4.数据集的数量取决于用户投入的数量。我们一直在使用5个左右。 5.我们使用一个名为Encog的神经网络框架,我将研究改变势头,但我不知道如果可能。 – danpalmer 2010-05-23 20:42:19
6.同样,我不知道框架如何处理在线培训,我会研究这一点。 7.数据是连续的,我已经设置了线性激活,因为我会想象结果应该如何随输出而变化。 8.和第2点一样,我发现有2层的时候,它实现了我强加的限制,并且运行时间更长。 – danpalmer 2010-05-23 20:44:26
大声笑。我也应该上床,明天上大学。我已经添加了一些标准化。它不是很好,但所有数据集的值都在0到1之间,预测也不会那么高。一方面,我的训练速度提高了18000%。我会继续测试并尝试实施其他一些措施,但现在它是一个很好的结果。非常感谢您的帮助! – danpalmer 2010-05-23 21:48:36