如何为一次具有多个复杂动作的游戏设计强化学习模型?

人工智能 强化学习 游戏-ai 蒙特卡罗树搜索 行动空间 分层rl
2021-10-25 12:51:16

我有一个稳定的六角地图和回合制战争游戏,以二战航母战斗为特色。

在给定的回合中,玩家可以选择执行大量动作。动作可以有许多不同的类型,有些动作可以相互独立地执行,而另一些则具有依赖关系。例如,玩家可能决定移动一两个海军单位,然后将任务分配给或不分配给空军单位,然后调整或不调整一些战斗参数,然后重组或不重组海军特遣部队。


通常,棋盘游戏允许玩家每回合只执行一个动作(例如围棋或国际象棋)或一些非常相似的动作(双陆棋)。

在这里玩家可以选择

  • 几个动作
  • 动作性质不同
  • 每个动作都可能有玩家必须设置的参数(例如强度、有效载荷、目的地)

我如何通过强化学习来解决这个问题?我将如何指定模型或有效地训练它来玩这样的游戏?

这是游戏的截图。

在此处输入图像描述

这是另一个。

在此处输入图像描述

2个回答

硕士论文Action space representation in combinatorial multi-armed bandits (2015) 似乎为我的问题提供了答案。

可以使用几种算法

  • 朴素蒙特卡罗抽样 (NMC)
  • 线性边信息 (LSI)
  • 具有层次扩展的蒙特卡洛树搜索 (MCTS-HE)
  • 具有维度扩展的 MCTS

这个想法是分而治之。

这是第 4.2 节中 HE 算法的屏幕截图

在此处输入图像描述

一种非常流行的能够同时预测多个动作输出的 RL 算法是近端策略优化在那个算法中,一个或多个,说n,输出元组,(μ,σ),可以一次预测(有2n输出节点),其中每个元组用于参数化高斯分布,从中采样相应的动作值。然后将如此采样的动作值应用到模拟/游戏中。通过稍微修改这个过程,这当然也可以同样很好地应用于离散动作空间。

为了帮助您入门,PPO 的多个高质量实现可用于快速原型制作,例如OpenAI 基线稳定基线