强化学习的良好实施?

时间:2009-04-11 16:32:19

标签: language-agnostic artificial-intelligence machine-learning reinforcement-learning

对于一个ai级项目,我需要实现强化学习算法,该算法击败了一个简单的俄罗斯方块游戏。游戏是用Java编写的,我们有源代码。我知道强化学习理论的基础知识,但想知道SO社区中是否有人亲身体验过这类事情。

  1. 在俄罗斯方块游戏中实施强化学习的建议读数是什么?
  2. 是否有任何良好的开源项目可以完成类似的事情,值得一试?
  3. 编辑:越具体越好,但欢迎关于该主题的一般资源。

    跟进:

    如果我发布了一个后续内容,那就太好了。

    以下是我为未来的学生提供的解决方案(代码和写作):)。

    Paper / Code

9 个答案:

答案 0 :(得分:13)

看看2009 RL-competition。其中一个问题域是tetris game。前一年也有一个俄罗斯方块问题。这是当年第五名决赛选手的52-page final report,其中详细介绍了代理人的工作方式。

答案 1 :(得分:3)

Heaton Research电子书非常擅长解释神经网络概念(带代码)。第4章专门介绍机器学习和网络的各种培训方法。有一个可下载的库和示例应用程序供您查看。

答案 2 :(得分:3)

这是一本关于这个主题的好书:

Machine Learning and Data Mining: Introduction to Principles and Algorithms
作者:Igor Kononenko,Matjaz Kukar(2007年6月)

另请参阅这些开源项目:

答案 3 :(得分:2)

TD-Gammon,gnubackgammon或任何其他类似项目在游戏中取得了巨大的成功。

萨顿&巴托的着作“强化学习:简介”也有其他一些Case Studies

答案 4 :(得分:1)

这不是强化学习的具体内容,但斯坦福大学在machine learning on Youtube和iTunes上有很多讲座。

链接是第一个讲座,大约需要30分钟才能深入了解内容。

答案 5 :(得分:1)

Burlap是最近的Java库,它提供了许多常见强化学习算法的实现,以及一些环境和有用的工具。

答案 6 :(得分:1)

这个问题真的很老了,但对于2018年阅读本文的人来说,如果您对现有RL算法的实体参考感兴趣,我强烈建议您使用OpenAI Baselines。这些算法由OpenAI的一群员工实施,他们真正了解这些内容,并经过了广泛的微调和调试。

公平地说,你不需要这些用于俄罗斯方块,但现在我怀疑家庭作业问题可能涉及一些更复杂的环境。

https://github.com/openai/baselines

答案 7 :(得分:0)

我建议学习基于Java的RL4J。 我一直在使用它,我惊讶于事情如何顺利进行,您甚至可以使用Actor Critic算法(称为A3C)在强化学习算法中学习LSTM网络

这里是链接: https://github.com/maxim-saplin/CrossPlatformDiskTest

答案 8 :(得分:-1)

我注意到这个问题已经过时了(已有10年的历史了),现代RL框架和环境的集合在这里可能会有用。我为此创建了GitHub存储库,并打算定期对其进行更新。

https://github.com/TheMTank/RL-code-resources