我打算构建一个能够学习玩俄罗斯方块的AI引擎,即一个能够通过调整其启发式方法等来提高性能的引擎。假设我已经解决了GUI的问题——我应该从哪里开始构建引擎呢?作为初学者,我应该使用哪些资源来理解涉及的机器学习概念?
特别是,我正在寻找基于代码
和实际示例的解释性材料,而不是数学处理的主题。
回答:
对于这类事情(即创建一个玩视频游戏的机器人),标准的机器学习方法是强化学习。这是一个包含许多不同技术/算法的广泛领域;对于你的项目来说,可能更相关的是Q学习。
强化学习的标准论述之一是《强化学习:导论》,作者是Richard Sutton和Andrew Barto。提供的链接会带你到书的首页,那里包括了书的公共访问在线版本的链接,以及免费PDF版本的链接。
这里有一个YouTube上的演示,展示了一个基于RL的机器人学会玩《吃豆人小姐》游戏的过程。
博客Mechanistician有一个完整的教程,介绍如何使用强化学习(用Python语言)构建一个玩《吃豆人》的机器人。我认为这无疑是一个很好的起点。
我还建议在你选择的语言中安装一个好的RL库。查看源代码并试验库的API。在Python中,至少有两个非常好的RL库:PyBrain和Maja(也称为MMLF)。
使用这些库中的任何一个,你都可以构建一个玩俄罗斯方块的机器人;事实上,PyBrain包括一个基于类似于俄罗斯方块的环境的教程。