DeepMind重磅开源强化学习框架!覆盖28款游戏,24多个算法
发布时间:2019-09-04 17:37

原标题:云顶娱乐场网址DeepMind重磅开源强化学习框架!覆盖28款游戏,24多个算法

乾明 边策 一璞 发自 凹非寺

没有DeepMind的命,烧不起DeepMind一样的研发投入,但你现在可以有DeepMind苦心多年研究出的算法和代码。

刚刚,这家背靠谷歌,烧了数十亿元的全球顶尖AI研究机构,开源了史上最全强化学习框架OpenSpiel

在这个框架中,实现了28款可用于研究强化学习的棋牌类游戏和24个强化学习中常用的算法,DeepMind的成名作AlphaGo的基础算法也在其列。

此外,还包括用于分析学习动态和其他常见评估指标的工具。

更关键的是,OpenSpiel适用人群也非常广泛。

它的核心API和游戏用C++实现,并提供了Python API,可用于更高级别的机器学习,优化和强化学习。这些语言也可以很容易地组合在一起。

而且,代码的一个子集也已经使用Swift for Tensorflow直接移植到了Swift进行学习和推理,不需要跨语言操作。

开源消息放出后不久,就在Twitter上引起了数百转发和点赞。

史上最全强化学习框架

进一步说,OpenSpiel,是一个强化学习环境和算法的集合。在这个框架中,DeepMind对大部分环境和算法也都已经进行了全面测试。

目前,在OpenSpiel中实现的算法一共有24种,分别是:

极小化极大(Alpha-beta剪枝)搜索、蒙特卡洛树搜索、序列形式线性规划、虚拟遗憾最小化(CFR)、Exploitability

外部抽样蒙特卡洛CFR、结果抽样蒙特卡洛CFR、Q-learning、价值迭代、优势动作评论算法(Advantage Actor Critic,A2C)、Deep Q-networks (DQN)

短期价值调整(EVA)、Deep CFR、Exploitability 下降(ED) 、(扩展形式)虚拟博弈(XFP)、神经虚拟自博弈(NFSP)、Neural Replicator Dynamics(NeuRD)

遗憾策略梯度(RPG, RMPG)、策略空间回应oracle(PSRO)、基于Q的所有行动策略梯度(QPG)、回归CFR (RCFR)、PSROrN、α-Rank、复制/演化动力学。

极小化极大(Alpha-beta剪枝)搜索、蒙特卡洛树搜索、序列形式线性规划、虚拟遗憾最小化(CFR)、Exploitability

外部抽样蒙特卡洛CFR、结果抽样蒙特卡洛CFR、Q-learning、价值迭代、优势动作评论算法(Advantage Actor Critic,A2C)、Deep Q-networks (DQN)

展开全文

短期价值调整(EVA)、Deep CFR、Exploitability 下降(ED) 、(扩展形式)虚拟博弈(XFP)、神经虚拟自博弈(NFSP)、Neural Replicator Dynamics(NeuRD)

遗憾策略梯度(RPG, RMPG)、策略空间回应oracle(PSRO)、基于Q的所有行动策略梯度(QPG)、回归CFR (RCFR)、PSROrN、α-Rank、复制/演化动力学。

其中,只有短期价值调整(EVA)、Deep CFR和PSROrN等算法只是进行了初步测试,其他算法都经过了全面的测试。

Spiel意指桌面游戏。因此,OpenSpiel中的环境就是相关棋牌类游戏。一共有28款:

双陆棋、突围棋、定约桥牌、Coin Game、屏风式四子棋、协作推箱子、国际象棋、第一价格密封拍卖、围棋、Goofspiel(一种多玩家纸牌游戏)

三宝棋、六贯棋、Kuhn扑克、Leduc扑克、大话骰、Markov Soccer、配对硬币(3人游戏)、矩阵游戏、Oshi-Zumo、西非播棋、转盘五子棋、Phantom三连棋

Pig游戏、三连棋、Tiny Bridge、Y(一种棋类游戏)、Catch(仅支持Python)、Cliff-Walking在悬崖边走的醉汉(仅支持Python)。

双陆棋、突围棋、定约桥牌、Coin Game、屏风式四子棋、协作推箱子、国际象棋、第一价格密封拍卖、围棋、Goofspiel(一种多玩家纸牌游戏)

三宝棋、六贯棋、Kuhn扑克、Leduc扑克、大话骰、Markov Soccer、配对硬币(3人游戏)、矩阵游戏、Oshi-Zumo、西非播棋、转盘五子棋、Phantom三连棋

Pig游戏、三连棋、Tiny Bridge、Y(一种棋类游戏)、Catch(仅支持Python)、Cliff-Walking在悬崖边走的醉汉(仅支持Python)。

在上述游戏中,只有Coin Game、协作推箱子、六贯棋、Markov Soccer和Phantom三连棋只是进行了初步测试,其余的游戏都经过了全面的测试。

基于上述的游戏和算法,可用OpenSpiel研究通用强化学习和游戏中的搜索 / 规划。

OpenSpiel怎么样?

OpenSpiel提供了一个带有C++基础的通用API ,它通过Python绑定(经由pybind11)公开。

游戏用C++编写,是因为可以用快速和内存效率更高的方法实现基本算法。一些自定义RL环境也会在Python中实现。

最重要的是,OpenSpiel的设计易于安装和使用、易于理解、易于扩展并且通用。OpenSpiel按照以下两个重要设计标准构建:

1、简单。代码应该是非编程语言专家可读、可用、可扩展的,特别是来自不同领域的研究人员。

OpenSpiel提供了用于学习和原型化的参考实现,而不是需要额外假设(缩小范围)或高级(或低级)语言特性的完全优化或高性能代码。

2、轻量。对于长期兼容、维护和易用性,依赖项可能会有问题。除非有充分的理由,否则倾向于避免引入依赖关系来保持便携性和易于安装。

支持的博弈类型

在OpenSpiel的游戏可以表示为各种广泛形式的博弈:

  • 常和博弈
  • 零和博弈
  • 协调博弈
  • 一般博弈

其中,常和博弈中智能体之间是严格的竞争关系,协调博弈中智能体之间是严格的竞争关系,一般博弈则介于两者之间。

另外,根据智能体能否获得博弈过程中的所有信息,又可以将博弈分为:

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

象棋和围棋是没有偶然事件的完美信息博弈,双陆棋是有偶然事件的完美信息博弈,而像石头剪刀布、扑克这样的游戏属于不完美信息博弈。

可视化工具和评估方法

OpenSpiel有一些用于可视化和评估的工具,尽管有些工具也被认为是算法(例如下面要介绍的α-rank)。OpenSpiel中提到的所有工具和评估都包含在代码库的egt子目录下。

1、演化和策略学习动力学的可视化

在多智能体强化学习的文献中,一种常见的可视化工具是相图,它显示了描述特定动力学下策略局部变化的矢量场或粒子轨迹。

下面展示了OpenSpiel为四种常见的bimatrix游戏生成的相图。

2、评估工具α-rank

α-Rank是一种算法,利用进化博弈论对多人游戏中的智能体进行交互排名。α-Rank定义了马尔可夫转移矩阵,其状态对应于玩家使用的智能体的元组,以及通过特定的进化模型通知的转换。该进化模型确定了排名与博弈论中马尔可夫-康利链解决方案概念的对应关系。

其主要的优点是,它可以在不涉及智能体关系的场景中对智能体进行排名(例如石头剪刀布),这与Elo(等级分)评级系统不同。

α-Rank还有一个优点是,在一般游戏中的计算也是容易处理的,不像依赖于纳什均衡的排序系统。

安装方法

目前DeepMind已经在Debian和Ubuntu两个Linux系统上测试了OpenSpiel,具体安装方法如下:

git clonehttps://github.com/deepmind/open_spiel.git

cdopen_spiel

./install.sh # Install various dependencies (note:assumes Debian-based distro!)

pip3 install --upgrade -r requirements.txt # Install Python dependencies

mkdir build

cdbuild

# Note:Python version installed should be >= Python_TARGET_VERSION specified here

CXX=g++ cmake -DPython_TARGET_VERSION=3.6 -DCMAKE_CXX_COMPILER=g++ ../open_spiel

make -j12 # The 12 here is the number of parallel processes used to build

ctest -j12 # Run the tests to verify that the installation succeeded

需要注意的是install.sh中安装依赖项的命令是基于Ubuntu的,如果使用的是其他Linux发行版,依赖项仍然可用,但安装命令需根据情况自行修改。

为了能够从任何位置导入Python代码,需要将根目录和open_spiel目录添加到PYTHONPATH。使用virtualenv时,应添加路径 /bin/activate。

# For the python modules in open_spiel.

exportPYTHONPATH=$PYTHONPATH:/<path_to_open_spiel>

# For the Python bindings of Pyspiel

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

然后你就可以运行自己的第一个游戏了!

examples/example --game=tic_tac_toe

27名作者、豪华阵容背景

OpenSpiel可是个大项目,为此,DeepMind动用了一个巨大的团队——DeepMind以及Google的27人,光是共同一作,就有4位之多。

四位共同一作都来自DeepMind。

第一位Marc Lanctot,是DeepMind的研究科学家,他此前博士毕业于阿尔伯塔大学,是哲学&AI双料博士,之后去了马斯特里赫特大学做博士后研究员,自此开始他就一直在研究多智能体决策问题。

第二位Edward Lockhart,DeepMind研究工程师,此前是剑桥大学的数学硕士,曾在Morgan Stanley、花旗银行、瑞银这些金融机构做IT相关的事情,后来跳槽到DeepMind。他在语音合成、强化学习等方向做过不少研究。

第三位Jean-Baptiste Lespiau,也是DeepMind研究工程师,是个法国人,目前在DeepMind巴黎分部,他是巴黎综合理工学院的系统工程硕士。

第四位Vinicius Zambaldi,DeepMind高级研究工程师,巴西人,米纳斯吉拉斯联邦大学计算机硕士,加入DeepMind之前已经是创业公司CTO了。

开玩笑说,虽然一作中有三位不是博士加持,但现在这份研究,应该足够被授予地球上任一名校的博士学位了吧?

另外,在作者团队的单位中,除了DeepMind和Google,还有AlphaGo打造者David Silver母校阿尔伯塔大学(黄士杰也是该校校友)。

烧自己的钱,为全人类研究

当然,这一次重磅开源,或许也能让DeepMind近来形象扭转很多。

因为纵使DeepMind曾经捧红AlphaGo,几乎一手推起了AI热潮,但这家公司自己,依旧处在日复一日的烧钱当中。

光2018年就几乎烧掉了40亿元人民币。

而累计之前的投入,2016年亏损1.54亿美元,2017年亏损3.41亿美元,2018年亏损5.72亿美元,三年累计起来,已经亏掉了超过10亿美元。

并且按照公开披露信息,可能还会接着烧掉同等规模的钱,才能进一步产生他们追求的AI境界和回报——但母公司谷歌已实名支持,表示会撑到底。

而这十亿美元的投入,几乎都被DeepMind押注在了一件事上:

强化学习

正是借助强化学习,DeepMind逐步攻克围棋、《星际》和雅达利游戏等一系列难题,最终的目的,是创造出目前只在科幻小说电影里存在的通用人工智能(AGI)

而这次的OpenSpiel,集中了游戏竞技领域中的大量场景和算法,可以说是过去长线投入的集大成者。

现在,DeepMind将多年苦心、巨额投入研发的成果悉数开源,真可谓业界良心

此前在DeepMind年报出炉,披露亏损40亿并人均年薪高达400多万的时候,就有评论说,对于DeepMind这样顶级AI研究机构的投入,实际是人类对最前沿技术的支持。

更有甚者,认为这些投入和薪资,与DeepMind带来的成果相比,简直不能更还算了。

而如今,DeepMind一股脑将成果开源,更是烧自己的钱,为全人类研究。

这份诚意和姿态,是不是足够堵上质疑者的嘴了?

你说呢?