雷锋网AI开发者按:深度强化学习(DeepReinforcementLearning,DRL)一直是近年来人工智能的一些重大突破的核心。然而,尽管DRL有了很大的进步,但由于缺乏工具和库,DRL方法在主流解决方案中仍然难以应用。因此,DRL仍然主要是以研究形式存在,并没有在现实世界看到许多采用机器学习的应用方案;而解决这个问题就需要更好的工具和框架。
就在最近,DeepMind发布了一系列新的开源技术,包括三种DRL框架:OpenSpiel、SpriteWorld和Bsuite,这些技术将有助于简化DRL方法的应用。
DRL框架概述
作为一种新的深度学习技术,DRL的采用面临着简单实现算法以外的挑战。例如:用以简化DRL技术应用的训练数据集、环境、监控优化工具以及精心设计的实验等。
考虑到DRL的机制不同于大多数传统的机器学习方法,尤其对于DRL的情况,这种差异更甚。DRL智能体试图在给定的环境中通过反复试验来实现对任务的掌握。在这种情况下,环境和实验的稳健性在DRL智能体开发的知识中起着重要的作用。
为了实现DRL的重大突破,将其更好的应用于重大人工智能挑战中,DeepMind构建了许多专有工具和框架,以大规模简化DRL智能体的训练、实验和管理。并且开放了三种DRL框架,包括:OpenSpiel、SpriteWorld和bsuite,以便其他研究人员可以使用它们来推进DRL方法的现状。
下面是三种框架的介绍,并附有对应的开源地址。
OpenSpiel
与其他数据集不同,游戏本质上基于试验和奖励机制,可以用来训练DRL智能体。然而,正如我们所看到的,游戏环境远不是简单的组装。
OpenSpiel是一系列环境和算法的集合,用于研究一般强化学习和游戏中的搜索/规划。OpenSpiel的目的是在许多不同的游戏类型中促进通用多智能体的强化学习,其方式与通用游戏类似,但它重点是强调学习而不是竞争形式。当前版本的OpenSpiel包含20多种不同类型的游戏的实现,例如:完全信息、同步移动、不完全信息、网格世界游戏、博弈游戏和一些普通形式/矩阵游戏。
OpenSpiel的核心实现是基于C++和Python绑定,便于在不同的深度学习框架中采用。该框架包含了一系列游戏组合,允许DRL智能体掌握合作和竞争行为。类似地,OpenSpiel包含了多种DRL算法组合,例如:搜索、优化和单一智能体等。OpenSpiel还包括分析学习动态和其他常见评估指标的工具。
OpenSpiel支持游戏类型
单人和多人游戏完全可观测(通过观测)和不完全信息博弈(通过信息状态和观测)随机性(尽管部分支持隐式随机性,但主要为不确定事件)n人普通形式的“一杆”游戏和(2人)矩阵游戏序贯和同时动作游戏零和、一般和和合作(相同收益)博弈OpenSpiel支持语言类型
C++11Python3swift中提供的部分语言游戏和实用程序功能(例如:计算)是用C++编写的。这些也可以使用pybind11python(2.7和3)绑定。方法名称位于C++中的CamelCase和Python中的SnaKeKY情况(例如,在C++中的Apple动作将是Python中的Stest.Apple)。有关名称之间的完整映射,请参见open_spiel/python/pybind11/pyspel.cc中的pybind11定义。
OpenSpiel已经在linux上进行了测试(debian10和ubuntu19.04),但它还未在MacOS或Windows上进行测试,由于代码使用了MacOS和Windows上也提供的免费工具,因此DeepMind预计在这些平台下编译和运行不会出现任何(重大)问题。
GitHub