【问题标题】:How to implement an artificial neural network in Delphi? [closed]如何在 Delphi 中实现人工神经网络? [关闭]
【发布时间】:2011-01-18 23:06:23
【问题描述】:

我想要一个人工神经网络:

  • 42 个输入神经元
  • 168 个隐藏神经元
  • 7 个输出神经元

这个网络是玩“连接四”的游戏。在每场比赛结束时,网络会获得反馈(比赛结果/胜利?)。

学习应该通过时间差异学习来完成。

我的问题:

  • 我的奖励数组中应该包含哪些值?
  • 最后:我现在如何将它应用到我的游戏中?

非常感谢您!

【问题讨论】:

  • “怎么了”是什么意思?你告诉我们。这有什么问题?它不编译吗?它是否可以编译,但运行时会出错?它只是没有给出正确的输出吗?当您为我们提供一些帮助时,帮助解决此类问题会容易得多。
  • 它在 Delphi 2010 中编译得很好!
  • @user89818,在回答了 Mason 的问题并修复了 Sertac 发现的错误后:从小处开始,你不能用总共 217 个神经元进行测试,将数量减少到小得多;设置一个漂亮的 Excel 工作表,在调试器中运行您的程序,并为每一步手动更新 Excel 工作表,并将值与您在 Delphi 中看到的值进行比较。这将有助于发现任何逻辑错误。

标签: delphi artificial-intelligence implementation neural-network


【解决方案1】:

第一个命中是:你在'main'中将'0'分配给t,但是你的数组的下限是'1',所以你在循环中访问一个不存在的元素,因此AV。

如果您在编译器选项中启用了范围检查,则会收到范围检查错误,并且您可能会更早找到原因。

顺便说一句,由于我不知道代码在做什么,所以此时我可能不会注意到任何其他错误..

【讨论】:

    【解决方案2】:

    如果您有兴趣使用第三方库(非商业产品免费,我对这家公司的一些工具感到非常满意http://www.mitov.com/html/intelligencelab.html(虽然我从未使用过他们的智能实验室,只是视频工具。)

    【讨论】:

      【解决方案3】:

      Fast Artificial Neural Network (FANN) 是一个很好的开源库,它已被大型社区优化和使用,具有大量支持和 delphi 绑定。

      如果您不完全了解自己在做什么,建议在此区域使用依赖项,最小的细节可能会对神经网络的执行方式产生重大影响;所以最好把时间花在网络的实施上,然后再花在其他任何事情上。

      【讨论】:

        【解决方案4】:

        其他可能对您有帮助的链接:

        http://delphimagic.blogspot.com.ar/2012/12/red-neuronal-backpropagation.html (包括源代码) 编码具有两个输入神经元、两个输出和一个隐藏层的反向传播神经网络。 该示例提供了两组数据,可以训练网络并查看学习如何准确地最小化图表中显示的错误。 修改程序可以改变网络用测试数据训练的次数(epochs)

        【讨论】:

          猜你喜欢
          • 2011-04-11
          • 1970-01-01
          • 2013-10-01
          • 2011-11-19
          • 2010-10-20
          • 1970-01-01
          • 2018-12-02
          • 1970-01-01
          相关资源
          最近更新 更多