对于一个 ai 类项目,我需要实现一个强化学习算法,它可以击败一个简单的俄罗斯方块游戏。游戏是用 Java 编写的,我们有源代码。我知道强化学习理论的基础知识,但想知道 SO 社区中是否有人亲身体验过这类事情。
- 对于在俄罗斯方块游戏中实施强化学习,您推荐的阅读材料是什么?
- 有没有什么好的开源项目可以完成类似的事情,值得一试?
编辑:越具体越好,但欢迎使用有关该主题的一般资源。
跟进:
认为如果我发布后续内容会很好。
这是我为任何未来的学生提供的解决方案(代码和文章):)。
对于一个 ai 类项目,我需要实现一个强化学习算法,它可以击败一个简单的俄罗斯方块游戏。游戏是用 Java 编写的,我们有源代码。我知道强化学习理论的基础知识,但想知道 SO 社区中是否有人亲身体验过这类事情。
编辑:越具体越好,但欢迎使用有关该主题的一般资源。
跟进:
认为如果我发布后续内容会很好。
这是我为任何未来的学生提供的解决方案(代码和文章):)。
Heaton Research电子书非常擅长解释神经网络概念(带有代码)。第 4 章专门介绍机器学习和网络的各种训练方法。有一个可下载的库和示例应用程序供您查看。
这个问题确实很老,但对于 2018 年阅读此问题的任何人,如果您对现有 RL 算法的可靠参考感兴趣,我强烈建议您使用 OpenAI Baselines。这些算法是由 OpenAI 的一群真正了解这些东西的员工实现的,并且已经过广泛的微调和调试。
公平地说,俄罗斯方块不需要这些,但现在我怀疑家庭作业问题可能涉及一些更复杂的环境。
https://github.com/openai/baselines
更新:
2019年,我也推荐rlpyt:
这并不特定于强化学习,但斯坦福大学在 Youtube和 iTunes上有一系列关于机器学习的精彩讲座。
该链接指向第一个讲座,大约需要 30 分钟才能深入了解内容。
Burlap是一个最新的 Java 库,它提供了许多常见强化学习算法以及一些环境和有用工具的实现。
我建议学习基于 Java 的 RL4J。我正在使用它,我很惊讶事情的顺利进行,你甚至可以在带有 Actor Critic 算法(称为 A3C)的强化学习算法中学习 LSTM 网络
这是链接: https ://github.com/deeplearning4j/dl4j-examples/blob/master/rl4j-examples/
我注意到这个问题已经过时了(已有 10 年历史了),并且现代 RL 框架和环境的集合在这里可能很有用。我为此创建了 GitHub 存储库,并打算定期更新它。