DeepMind开源强化学习游戏框架,25款线上游戏等你来挑战

2019 年 8 月 28 日 机器之心

选自GitHub

机器之心编译
参与:一鸣、思
强化学习算法没有游戏训练?DeepMind 开源 OpenSpiel 平台了。研究者可在线部署游戏环境,快速开始实验。



强化学习算法广为人知的一个应用场景便是游戏了,通过智能体在多玩家游戏中的表现,研究者可以更好地调整算法和参数细节,实现更好的算法性能。 近日,DeepMind 开源了一款多玩家游戏平台「Open-Spiel」,支持多种策略和游戏环境,以及相关的分析工具。 支持的游戏数量达到了 25 款,绝大多数都和棋牌、博弈相关。

  • 项目地址:https://github.com/deepmind/open_spiel


什么是 OpenSpiel


OpenSpiel 是一个综合性的强化学习游戏测试平台,包括了多种游戏环境和算法,用于强化学习研究或搜索策略的研究。


OpenSpiel 亮点


OpenSpiel 可以帮助研究者解决很多强化学习研究中需要设置实验的问题,它支持:


  • 单人或多人博弈;

  • 完美信息或不完美信息博弈;

  • 带有随机性的博弈;

  • 普通的多玩家「一步」或二人玩家的多步博弈;

  • 交替行动(如下棋)或同时行动的游戏;

  • 零和博弈和非零和博弈(如需要合作的博弈等)。


OpenSpiel 平台也支持多种编程语言:


  • C++11

  • Python 3

  • 以及一个支持 Swift 语言的缩减版


支持平台


目前 OpenSpiel 已经在 Linux 系统上进行了测试(Debian 10 和 Ubuntu 19.04),但是没有在 MacOS 或 Windows 上测试过。 但是因为后两个平台都可以自由使用代码,因此作者认为不太可能出现大的问题。


支持游戏


OpenSpiel 目前支持以下游戏,共 25 款,包括国际象棋、围棋、双陆棋、翻转棋等游戏:


OpenSpiel 怎么用


首先,我们先要明确,在 OpenSpiel 中 Game 对象包含了对某个游戏非常高层次的描述,例如游戏的方式、参与人数、最大分数等。 而 State 对象描述了更加具体的游戏局,例如象棋中特定的棋子状态、扑克中特定的手牌组合。 通过这两个对象,整个游戏都是通过树来表示的。


OpenSpiel 首先需要加载游戏,配置游戏进行方式,然后就可以直接运行了。 如下所示为玩 trajectory 游戏的 Python 代码:


import random
import pyspiel

game = pyspiel.load_game("kuhn_poker")
state = game.new_initial_state()

while not state.is_terminal():
  legal_actions = state.legal_actions()
  if state.is_chance_node():
    # Sample a chance event outcome.
    outcomes_with_probs = state.chance_outcomes()
    action_list, prob_list = zip(*outcomes_with_probs)
    action = np.random.choice(action_list, p=prob_list)
    state.apply_action(action)
  else:
    # The algorithm can pick an action based on an observation (fully observable
    # games) or an information state (information available for that player)
    # We arbitrarily select the first available action as an example.
    action = legal_actions[0]
    state.apply_action(action)


如上展示了 OpenSpiel 比较核心的 API,它的使用还是很简洁的。


安装方法


安装整个平台的方法比较简单。 首先运行 ./install.sh 一次,安装系统包,并下载一些依赖。 安装 Python 的相关依赖,需要使用 Pyhton3 和 virtualenv。


virtualenc -p python3 venv
source venv/bin/activate
pip3 install -r requirements.txt


保证环境有效的情况下,编译并运行


mkdir build
cd build
CXX=g++ cmake -DPython_TARGET_VERSION=3.6 -DCMAKE_CXX_COMPILER=${CXX} ../open_spiel
make -j$(nproc)
ctest -j$(nproc)

./open_spiel/scripts/build_and_run_tests.sh

将文件加入系统路径,以便系统全局都能够导入相关包。


export PYTHONPATH=$PYTHONPATH:/<path_to_open_spiel>
export PYTHONPATH=$PYTHONPATH:/<path_to_open_spiel>/build/python


文为机器之心编译,转载请联系本公众号获得授权
✄------------------------------------------------
加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com
投稿或寻求报道:content@jiqizhixin.com
广告 & 商务合作:bd@jiqizhixin.com
登录查看更多
9

相关内容

多智能体深度强化学习的若干关键科学问题
专知会员服务
186+阅读 · 2020年5月24日
【综述】自动驾驶领域中的强化学习,附18页论文下载
专知会员服务
172+阅读 · 2020年2月8日
专知会员服务
234+阅读 · 2020年1月23日
2019必读的十大深度强化学习论文
专知会员服务
57+阅读 · 2020年1月16日
【强化学习资源集合】Awesome Reinforcement Learning
专知会员服务
93+阅读 · 2019年12月23日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
DeepMind发布《星际争霸 II》深度学习环境
人工智能学家
8+阅读 · 2017年9月22日
强化学习 cartpole_a3c
CreateAMind
9+阅读 · 2017年7月21日
A Survey on Edge Intelligence
Arxiv
50+阅读 · 2020年3月26日
Relational Deep Reinforcement Learning
Arxiv
10+阅读 · 2018年6月28日
Arxiv
7+阅读 · 2018年1月24日
VIP会员
相关VIP内容
多智能体深度强化学习的若干关键科学问题
专知会员服务
186+阅读 · 2020年5月24日
【综述】自动驾驶领域中的强化学习,附18页论文下载
专知会员服务
172+阅读 · 2020年2月8日
专知会员服务
234+阅读 · 2020年1月23日
2019必读的十大深度强化学习论文
专知会员服务
57+阅读 · 2020年1月16日
【强化学习资源集合】Awesome Reinforcement Learning
专知会员服务
93+阅读 · 2019年12月23日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
Top
微信扫码咨询专知VIP会员