DeepMind一次性开源3个新框架!深度强化学习应用落地即将迎来春天?
深度强化学习(Deep Reinforcement Learning,DRL)一直是近年来人工智能的一些重大突破的核心。然而,尽管 DRL 有了很大的进步,但由于缺乏工具和库,DRL 方法在主流解决方案中仍然难以应用。
- 作者:杨鲤萍来源:雷锋网|2019-09-20 09:38
本文转自雷锋网,如需转载请至雷锋网官网申请授权。
深度强化学习(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
【编辑推荐】
点赞 0
- 大家都在看
- 猜你喜欢
编辑推荐
- 24H热文
- 一周话题
- 本月获赞
- 年薪百万的阿里P8,每天都在干些啥?熊孩子乱敲键盘攻破Linux桌面,大神:17年前我就警告过了常见线上故障的最优解法,运维老司机也未必都懂大一新生开发的小工具火了!可视化Python编程体验了解一下休息时间!哪些业余活动能提升开发人员的技能?5nm芯片集体“翻车”,先进制程的尴尬程序员美女说:建模一点都不难!做3D模型,这一步才是最难的年度重磅发布:《人工智能发展报告2020》
- 年薪百万的阿里P8,每天都在干些啥?为什么我不要求996,公司还能做到市值1万多亿?Windows 10X:微软新款操作系统先睹为快又双叒删库:程序员怒删9TB数据,被判7年!熊孩子乱敲键盘攻破Linux桌面,大神:17年前我就警告过了大一新生开发的小工具火了!可视化Python编程体验了解一下超牛!第一份程序员考公指南居然在Github上被我扒出来 最新研究发现超级人工智能,从理论上就无法控制
- 又双叒删库:程序员怒删9TB数据,被判7年!为什么我不要求996,公司还能做到市值1万多亿?5个开源的Java项目快速开发脚手架,项目经验有了GPT-3今年首次升级,吴恩达、Keras之父等大佬纷纷叫好数据分析师必备的9大技能,大多数人只知道一半年薪百万的阿里P8,每天都在干些啥?超牛!第一份程序员考公指南居然在Github上被我扒出来 2021年需要关注的10个IT趋势
订阅专栏+更多
-
用Python玩转excel
让重复操作傻瓜化共3章 | DE8UG187人订阅学习
-
AI入门级算法
算法常识共22章 | 周萝卜123164人订阅学习
-
这就是5G
5G那些事儿共15章 | armmay132人订阅学习
视频课程+更多
-
Centos7-Linux云计算集群架构师基础学习
讲师:申建明130254人学习过
-
AD活动目录管理 - 从理论到实战
讲师:杰森洋46182人学习过
-
Yeslab_Hans华为数通HCNA/HCNP/HCIE经典系列
讲师:韩士良(Hans)5276人学习过
专题推荐+更多
- 精选博文
- 论坛热帖
读 书 +更多
Linux环境下C编程指南
本书系统地介绍了在Linux平台下用C语言进行程序开发的过程,通过列举大量的程序实例,使读者很快掌握在Linux平台下进行C程序开发的方法和技...
-
订阅51CTO邮刊
点击这里查看样刊

51CTO服务号

51CTO官微