DeepMind重磅开源强化学习框架!覆盖28款游戏,24个算法
乾明 边策 一璞 发自 凹非寺
量子位 报道 | 公众号 QbitAI
没有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、复制/演化动力学。
其中,只有短期价值调整(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、协作推箱子、六贯棋、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 clone https://github.com/deepmind/open_spiel.git cd open_spiel ./install.sh # Install various dependencies (note: assumes Debian-based distro!) pip3 install --upgrade -r requirements.txt # Install Python dependencies mkdir build cd build # 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. export PYTHONPATH=$PYTHONPATH:/<path_to_open_spiel> # For the Python bindings of Pyspiel export PYTHONPATH=$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一股脑将成果开源,更是烧自己的钱,为全人类研究。
这份诚意和姿态,是不是足够堵上质疑者的嘴了?
你说呢?
- 滴滴副总裁叶杰平离职,他是出行巨头的AI掌门人,战胜Uber中国的关键科学家2020-09-07
- 董明珠的格力空调卖不动了:上半年营收同比腰斩,24年来首次被美的反超2020-09-01
- 手机配件市场上的“隐形巨头”:80后长沙夫妻创办,IPO首日市值逼近600亿2020-08-31
- 寒武纪半年报:每天亏百万,销售力度提升营收反降11%,上市高峰市值跌去40%2020-08-30