立即领取|华润集团、宁德核电、东风岚图等 20+ 标杆企业数字化人才培养实践案例 了解详情
写点什么

DeepMind 发布 Acme 框架,可简化强化学习算法开发

  • 2020-06-24
  • 本文字数:1276 字

    阅读完需:约 4 分钟

DeepMind 发布Acme框架,可简化强化学习算法开发

本文最初发表在 WIRED 网站,由 InfoQ 中文站翻译并分享。


近日,DeepMind 发布了 Acme,该框架旨在通过使人工智能驱动的智能体能够在不同的执行规模下运行,从而简化强化学习(Reinforcement learning,RL)算法的开发。Acme 背后的工程师和研究人员共同撰写了一篇关于该项工作的技术论文,根据这篇论文的说法,Acme 可以用来创建比以前的方法更具并行性的智能体。


强化学习涉及到智能体与环境交互以生成自己的训练数据,它已经在电子游戏、机器人技术、自动驾驶机器人出租车等领域取得了突破。最近取得的进展,在一定程度上要归因于所使用的训练数据量的增加,这激发了智能体与环境实例交互以快速积累经验的系统的设计。DeepMind 曾断言,这种从算法的单进程原型到分布式系统的扩展通常需要重新实现相关的智能体,这正是 Acme 框架的用武之地。


Acme 是一个用于训练强化学习智能体的开发套件,它试图解决复杂性和规模化的问题,其组件用于构建从算法和策略到学习者的不同抽象层次的智能体。我们的思路是,这样可以对想法进行迅速迭代,并在生产中对这些想法进行评估,主要是通过训练循环、强制日志记录和检查点。


在 Acme 中,行为者(actor)与环境密切互动,对环境进行观察,并采取行动,而这些行动又反过来反馈到环境中。在观察到随之而来的过渡后,行为者有机会更新它们的状态;这通常与它们的行动选择政策有关,这些政策决定了它们为应对环境采取哪些行动。一种特殊类型的 Acme actor 包括行为和学习组件,它们被称为“智能体”,它们的状态更新是由学习者(learner)组件中的一些步骤触发的。也就是说,智能体在大多数情况下都会将它们的行动选择权交给它们自己的行为组件。


Acme 提供了一个位于行为者和学习者组件之间的数据集模块,该模块由一个名为 Reverb 的低级存储系统提供支持,DeepMind 日前也发布了这个系统。此外,该框架还建立了一个用于插入 Reverb 的通用接口,从而实现了不同风格的预处理和观测数据的持续聚合。


行为组件、学习组件和存储组件被划分到 Acme 内部的不同线程或进程中,这带了两个好处:环境交互和学习过程异步发生,以及数据生成得到加速。在其他地方,Acme 的速率限制允许执行从学习到执行的理想速率,只要进程保持在某个定义的容忍度内,进程就可以畅通运行。例如,如果其中一个进程由于网络问题或资源不足而开始落后于另一个进程,速率限制器将阻止落后的进程,而另一个进程则迎头赶上。


除了这些工具和资源之外,Acme 还附带了一套示例智能体,作为各自强化学习算法的参考实现,以及强大的研究基线。DeepMind 表示,未来可能会有更多的产品问世。“通过提供这些……我们希望 Acme 将有助于改善强化学习中的可重复性问题,并赋予学术研究界用简单的构建模块来创建新智能体的能力,”研究人员写道,“此外,我们的基线应该提供额外的标准,以衡量该领域的进展。”

作者介绍:

Kyle Wiggers,技术记者,现居美国纽约市,为 VentureBeat 撰写有关人工智能的文章。


原文链接:


https://venturebeat.com/2020/06/03/deepmind-releases-acme-a-distributed-framework-for-reinforcement-learning-algorithm-development/


2020-06-24 14:241895
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 530.4 次阅读, 收获喜欢 1975 次。

关注

评论

发布
暂无评论
发现更多内容

MySQL 千万数据量深分页优化(1)

Java 程序员 后端

MyCat教程【安装及配置介绍】

Java 程序员 后端

Mybatis开发要点-resultType和resultMap的区别?

Java 程序员 后端

MyCat:第四章:Mycat中的概念(1)

Java 程序员 后端

MySQL基础学习手册

Java 程序员 后端

MyBatis常用标签和注解(绝对经典)

Java 程序员 后端

MyBatis逆向工程Generator和IDE Plugin

Java 程序员 后端

MySql数据引擎简介与选择方法

Java 程序员 后端

MySQL没有RowNum,那我该怎么按“行”查询或删除数据?(1)

Java 程序员 后端

MyBatis官方文档-XML 配置

Java 程序员 后端

MyBatis详解(二):mybatis开发dao

Java 程序员 后端

MySQL 数据库开发入门(四):MySQL 的数据引擎

Java 程序员 后端

mysql-排它锁之行锁、间隙锁、后码锁

Java 程序员 后端

MYSQL-连接查询算法:JOIN语句在-MYSQL-内部到底是怎么执行的

Java 程序员 后端

mysql分表spring拦截器进行日志采集

Java 程序员 后端

MySQL原理 - InnoDB引擎 - 行记录存储 - Off-page 列

Java 程序员 后端

MyBatis的Mapper接口以及Example的实例函数及详解

Java 程序员 后端

MySQL最全整理,1200页文档笔记,从高级到实战讲的太清楚了

Java 程序员 后端

MySQL没有RowNum,那我该怎么按“行”查询或删除数据?

Java 程序员 后端

mysql用户&权限总结

Java 程序员 后端

mybatis映射器组件

Java 程序员 后端

MyCat:第四章:Mycat中的概念

Java 程序员 后端

MySQL 事务隔离级别

Java 程序员 后端

MySQL基础总结

Java 程序员 后端

mysql常用函数,mysql进阶

Java 程序员 后端

MyCat1

Java 程序员 后端

MYSQL 分组排名

Java 程序员 后端

MySQL 千万数据量深分页优化

Java 程序员 后端

MySQL入门篇

Java 程序员 后端

MySQL 5

Java 程序员 后端

mybatis常用注解(绝对经典)

Java 程序员 后端

DeepMind 发布Acme框架,可简化强化学习算法开发_AI&大模型_KYLE WIGGERS_InfoQ精选文章