gpt4 book ai didi

backpropagation - 用于快速训练的神经网络设置

转载 作者:行者123 更新时间:2023-12-04 11:16:52 26 4
gpt4 key购买 nike

我正在创建一个工具,用于根据过去的数据预测软件项目的时间和成本。该工具使用神经网络来做到这一点,到目前为止,结果很有希望,但我认为我可以通过改变网络的属性来做更多的优化。当涉及到这些设置时,似乎没有任何规则甚至许多最佳实践,所以如果有经验的人可以帮助我,我将不胜感激。

输入数据由一系列整数组成,这些整数可以上升到用户想要的高度,但大多数将低于我原以为的 100,000。有些会低至 1。它们是诸如项目人数和项目成本之类的详细信息,以及有关数据库实体和用例的详细信息。

总共有 10 个输入和 2 个输出(时间和成本)。我正在使用弹性传播来训练网络。目前它有:10 个输入节点,1 个隐藏层,5 个节点和 2 个输出节点。我正在训练以将错误率控制在 5% 以下。

该算法必须在网络服务器上运行,所以我采取了一种措施,当它看起来无处可去时停止训练。这设置为 10,000 次训练迭代。

目前,当我尝试用一​​些有点变化但在我们期望用户输入的范围内的数据来训练它时,需要很长时间来训练,一次又一次地达到 10,000 次迭代的限制。

这是我第一次使用神经网络,我真的不知道会发生什么。如果你能给我一些关于我应该为网络和迭代限制使用什么样的设置的提示,我将不胜感激。

谢谢!

最佳答案

首先,感谢您提供有关您的网络的这么多信息!这里有一些提示,可以让您更清楚地了解情况。

  • 您需要标准化您的输入。如果一个节点的平均值为 100,000,而另一个节点的平均值仅为 0.5,则您将不会看到两个输入的相同影响。这就是为什么你需要对它们进行标准化。
  • 10 个输入节点只有 5 个隐藏神经元?我记得在某处读到您至少需要两倍的输入数量;尝试 20 多个隐藏神经元。这将为您的神经网络模型提供开发更复杂模型的能力。然而,太多的神经元和你的网络只会记住训练数据集。
  • 弹性反向传播很好。请记住,还有其他训练算法,例如 Levenberg-Marquardt。
  • 你有多少训练集?神经网络通常需要大型数据集才能做出有用的预测。
  • 如果您还没有这样做,请考虑在您的重量训练算法中添加一个动量因子以加快速度。
  • 在线训练往往比批量训练更适合进行广义预测。前者在通过网络运行每个训练集后更新权重,而后者在通过每个数据集后更新网络。这是你的电话。
  • 你的数据是离散的还是连续的?使用 0 神经网络往往会做得更好s 和 1 s 比连续函数。如果是前者,我建议使用 sigmoid 激活函数。 tanh的组合和 linear隐藏层和输出层的激活函数往往能很好地处理不断变化的数据。
  • 你需要另一个隐藏层吗?如果您的网络处理复杂的输入-输出表面映射,这可能会有所帮助。
  • 关于backpropagation - 用于快速训练的神经网络设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2893241/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com