雷锋网 AI 开发者按: 深度强化学习 (Deep Reinforcement Learning,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++ 11
Python 3
swift 中提供的部分语言
游戏和实用程序功能 (例如: 计算) 是用 C++ 编写的. 这些也可以使用 pybind11 python(2.7 和 3)绑定. 方法名称位于 C++ 中的 CamelCase 和 Python 中的 SnaKeKY 情况(例如, 在 C++ 中的 Apple 动作将是 Python 中的 Stest.Apple). 有关名称之间的完整映射, 请参见 open_spiel/python/pybind11/pyspel.cc 中的 pybind11 定义.
OpenSpiel 已经在 Linux 上进行了测试 (debian 10 和 Ubuntu 19.04), 但它还未在 MacOS 或 Windows 上进行测试, 由于代码使用了 MacOS 和 Windows 上也提供的免费工具, 因此 DeepMind 预计在这些平台下编译和运行不会出现任何(重大) 问题.
GitHub 地址: https://github.com/deepmind/open_spiel
pybind11 地址: https://pybind11.readthedocs.io/en/stable/
SpriteWorld
几个月前, DeepMind 发表了一篇论文, 介绍了一种基于无监督式目标搜索和好奇心驱动的强化学习模型(Curious Object-Based seaRch Agent,COBRA), 它通过使用强化学习来识别给定环境中的对象(相关论文可参考: https://arxiv.org/abs/1905.09275 ).
该模型使用了一系列二维游戏进行训练, 在这些游戏中数字可以自由移动. 用来训练 COBRA 模型的环境就是最近 deepmind 开源 DRL 三大框架之一, SpriteWorld.
SpriteWorld 是一个基于 python 的强化学习环境, 它由一个可以自由移动的简单形状的二维竞技场组成. 更具体地说, SpriteWorld 是一个二维方形竞技场, 有不同数量的彩色 Sprites, 可以自由放置和渲染, 但不会发生碰撞. SpriteWorld 环境基于一系列关键特征:
多目标的竞技场反映了真实世界的组成, 杂乱的物体场景可以用于共享特征, 同时也可以独立移动. 这也提供了测试与任务无关的特征 / 目标的稳健性和组合泛化的方法.
连续点击和推动动作空间的结构反映了世界空间和运动的结构. 它还允许智能体在任何方向上移动任何可见对象.
目标的概念并非以任何特权方式所提供(例如: 操作空间中没有特定目标的组件), 并且完全可以由智能体发现.
SpriteWorld 为每个 DRL 智能体提供三项主要的训练任务:
目标搜索. 智能体必须将一组目标 (可通过某些功能识别, 例如: 绿色的目标) 带到屏幕上的隐藏位置, 忽略干扰对象(例如: 非绿色的目标);
排序. 智能体必须根据目标的颜色将每个目标带到规定的位置;
聚类. 智能体必须根据目标的颜色将其分组排列在群集中.
SpriteWorld 也可以用于强化学习以外的其他目的. 例如: 它被用于生成具有控制因子分布的图像数据集, 如论文「Spatial Broadcast Decoder: A Simple Architecture for Learning Disentangled Representations in VAEs」(watters 等人, 2019, https://arxiv.org/abs/1901.07017 ).
它还可以很容易地扩展到生成与简单物理力 (如弹簧, 重力等) 相互作用的物体的数据集, 这对于视觉动力学的无监督学习研究是有用的.
GitHub 地址: https://github.com/deepmind/spriteworld
bsuite
我们试图将 bsuite(Behaviour Suite for Reinforcement Learning, 强化学习行为套件)打造成为强化学习领域 的 MNIST.
具体而言, bsuite 是一系列实验, 旨在突出智能体可扩展性的关键点. 这些实验都体现了一些基本的问题, 例如「探索」或「记忆」, 其实验方式可以很容易地进行测试和迭代. bsuite 有两个主要目标:
收集清晰, 信息量丰富且可扩展的问题, 这些问题捕获了高效和通用学习算法设计中的关键问题;
通过在这些共享基准上的表现来研究智能体的行为.
bsuite 的当前实现可以在不同环境中自动执行手实验, 并收集了相应的指标, 这些指标可以简化 DRL 智能体的训练. 同时, 因为 bsuite 是一系列实验的集合, 所以它在实验子目录中定义. 每个子目录对应一个实验, 包含:
定义强化学习环境的一种文件, 它可以配置为提供不同的难度等级或不同的随机种子(for example);
此环境的关键字参数序列, 在实验的 sweep.py 文件中的 settings 变量中定义;
一个 analysis.py 文件, 用于定义所提供的 jupyter 计算机中使用的绘图;
当通过加载和记录 * 函数加载环境时, bsuite 通过记录每个环境中的结果来工作. 这意味着任何实验都将自动输出正确格式的数据, 以便使用计算机进行分析, 而不受任何智能体或算法结构的限制.
GitHub 地址: https://github.com/deepmind/bsuite
雷锋网 AI 开发者 雷锋网 (公众号: 雷锋网)
雷锋网原创文章, 未经授权禁止转载. 详情见 转载须知 http://dwz.cn/4ErMxZ .
来源: http://www.tuicool.com/articles/RfQZNvY