我需要什么知识才能编写一个简单的 AI 程序来玩游戏?

数据挖掘 机器学习 算法 初学者 强化学习 训练
2021-09-25 08:03:45

我是本科毕业生。我的一门课程是“机器学习简介”,我一直想在这个主题上做一个个人项目。

我最近听说过不同的 AI 训练来玩马里奥、围棋等游戏。

为了训练一个简单的 AI 程序玩游戏,我需要获得哪些知识?您向初学者推荐什么游戏?

到目前为止,这就是我在机器学习中所知道的——

  • 课程和机器学习简介。K-Nearest Neighbor 算法和 K-means 算法
  • 统计推断
  • 高斯混合模型 (GMM) 和期望最大化 (EM)
  • 可能近似正确 (PAC) 模型,包括泛化界限和模型选择
  • 基本超平面算法:感知器和 Winnow。
  • 支持向量机 (SVM)
  • 内核
  • 将弱学习者提升为强学习者:AdaBoost
  • 边距感知器
  • 回归
  • 主成分分析
  • 决策树
  • 决策树修剪和随机森林
3个回答

有多种方法可以解决游戏问题。例如,一些游戏可以通过搜索算法来解决。这适用于具有一定复杂性的纸牌和棋盘游戏。例如,IBM 的 Deep Blue本质上是一种快速的启发式搜索,以寻找最佳动作。

然而,用于训练代理以最佳方式执行任务的最通用的机器学习算法可能是强化学习从技术上讲,它不是一种算法,而是相关算法的扩展系列,它们都解决了学习问题的特定形式化。

非正式地,强化学习 (RL) 是关于找到问题的最佳解决方案,该解决方案是根据代理定义的,该代理可以观察环境状态,在该环境中采取行动并体验与状态和行动以某种方式相关的奖励。需要设计 RL 求解器来应对奖励收到晚于采取重要行动的情况,这通常是通过算法学习与状态和/或状态-行动对相关的后期奖励的内部期望来实现的。

以下是学习强化学习的一些资源:

你会发现这个主题本身是相当大的,因为随着要解决的问题变得越来越难,算法的越来越复杂的变化是必要的。

开始学习强化学习的游戏可能包括:

  • Tik-tac-toe(又名 Noughts 和 crosses)——这可以使用搜索轻松解决,但它可以使用基本的 RL 技术解决一个简单的玩具问题。

  • 迷宫——在强化学习文献中,有许多“网格世界”游戏的例子,其中代理在单个 N、E、S、W 中移动,踩在一个小板上,可以填充危险和目标。

  • 二十一点(又名 21)

如果您想与代理一起玩视频游戏,您还需要了解神经网络,并且可能需要了解一些细节——您需要深度卷积神经网络来处理屏幕图形。

RL 的一个相对较新的资源是OpenAI Universe他们做了很多工作来打包准备训练代理的环境,这意味着你可以专注于学习学习算法,而不是设置环境的工作。


关于您当前的技能列表:它们都与强化学习没有直接关系。然而:

  • 如果你能理解之前课程的数学和理论,那么你也应该能够理解强化学习理论。

  • 如果您研究过任何在线或批量监督学习技术,那么这些可以用作 RL 框架内的组件。通常,它们可用于根据迄今为止成功和失败的反馈来近似游戏状态的价值函数。

这在很大程度上取决于游戏的类型以及您的 AI 可用的有关游戏状态的信息。

过去几年中一些最著名的游戏 AI 是基于深度强化学习(例如Playing Atari with Deep Reinforcement Learning),这是一种以深度神经网络作为奖励值函数近似的普通强化学习(例如 Q-learning)。这些方法接收游戏的原始像素加上玩家的点,并像人类一样输出游戏手柄的动作。为了做这样的事情,你需要掌握强化学习(参见Sutton 和 Barto 的开创性著作)和深度学习(参见Ian Goodfellow 等人的著作),然后如何将它们融合到深度强化学习中(搜索“强化学习”在像这样的深度学习论文的任何精选列表中)。

但是,如果您的 AI 可用的游戏信息比这些信息更结构化(例如玩家的位置、环境描述),您可以使用更经典的方法做得很好,将游戏分解为易于处理的问题并解决每个算法,例如通过搜索A*

您正在寻找的是所谓的强化学习在我的大学里,有一门完整的课程(153h=45h) 只是为了向学生介绍这个话题。这是我(主要是德语)关于概率规划的讲义我会说这绝对是机器学习的高级主题。

要了解的 Topcis

  • 马尔可夫决策过程 (MDP)
    • 政策与价值迭代
    • 项目:石头剪刀布/井字游戏
  • 部分可观察马尔可夫决策过程
    • 项目:黑杰克
  • 强化学习
    • Q-学习
    • 非典

其他简单游戏

其他资源