秀秀科技|智能体并行性加强,DeepMind最新力作:分布式强化学习框架Acme

选自DeepMind博客
机器之心编译
参与:蛋酱、杜伟
近日 , DeepMind发布了一种新型分布式强化学习框架「Acme」 , 通过促使AI驱动的智能体在不同规模的环境中运行 , 该框架可以简化强化学习算法开发进程 。 此外 , 与先前方法相比 , 研究人员可以使用该框架创建并行性更强的智能体 。
秀秀科技|智能体并行性加强,DeepMind最新力作:分布式强化学习框架Acme
文章图片
近年来 , 在深度学习技术和算力提升的双重加持下 , 强化学习已经在众多复杂的AI挑战中取得了辉煌战绩 。 无论是象棋、围棋、麻将 , 还是王者荣耀以及各类雅达利经典游戏 , 强化学习的表现都足以令人叹服 。
但深度强化学习在带来开创性进展的同时 , 也带来了一些「挑战」:这些进步常常以底层强化学习算法的规模及复杂性为代价 , 复杂性的增加反过来又使得已公开的强化学习算法或者idea变得难以复现 。
为了解决强化学习算法由单进程原型到分布式系统扩展过程中智能体的重新部署问题 , DeepMind推出了一种新的分布式强化学习框架「Acme」 。
目前 , 由研究者和工程人员共同完成的论文也已正式公布 。
秀秀科技|智能体并行性加强,DeepMind最新力作:分布式强化学习框架Acme
文章图片
项目地址:https://github.com/deepmind/acme
论文地址:https://arxiv.org/abs/2006.00979
Acme是一款用于构建可读、高效、研究型强化学习算法的框架 , 核心理念在于实现对强化学习智能体的简单描述 , 使得智能体在各种规模下运行 , 包括分布式智能体 。 研究者在设计Acme的过程中也充分考虑到了不同规模智能体之间的差异 , 并弥合了大中小型实验之间的差别 。
DeepMind研究者表示:「我们的目标是使得学界和工业界开发的各种强化学习算法更轻松地复制和推广到整个机器学习社区 。 」
Acme框架具体是怎样的
从最高层次来说的话 , 我们可以将Acme视为一个经典的强化学习接口(在任何入门级的强化学习文本中都可以找到) , 它的作用是将actor(比如一个动作选择智能体)连接到环境 。
actor是一个具有动作选择能力、观察能力和自我更新能力的简单接口 。 在内部 , 学习智能体可以拆分为「执行」和「从数据中学习」两部分 。 从表面上看 , 这使得在很多不同智能体之间重复使用actingportion 。
但更重要的是 , 这提供了一个让学习过程可划分和并行化的关键边界:使用者甚至可以在此处按比例缩小规模 , 并无缝地攻击不存在环境且只有固定数据集的批强化学习设置(batchRLsetting) 。
下图展示了不同级别复杂度的情况:
秀秀科技|智能体并行性加强,DeepMind最新力作:分布式强化学习框架Acme
文章图片
这种设计使得研究者在扩展之前可以轻松地在小规模场景中创建、测试和调试新型智能体 , 并且所有这些都使用相同的动作和学习代码 。 从检查点技术到快照技术 , Acme框架还为低水平计算机辅助提供大量有用的实用工具 。 这些工具常常在强化学习算法中发挥不可或缺的重要作用 , 在Acme框架 , DeepMind力图使它们更简单且更易理解 。
为了实现这种设计 , Acme框架还使用了「Reverb」 , 一种针对机器学习(包括强化学习)数据创建的新型高效数据存储系统 。 Reverb在分布式强化学习算法中主要用作经验回放(experiencereplay)系统 , 但也支持FIFO和优先级队列等其他数据结构表示 , 这样可以无缝地用于在线和离线策略算法(on-andoff-policyalgorithm) 。
Acme框架下智能体的性能变化
除了基础架构之外 , DeepMind还发布了使用Acme框架所创建的大量智能体的单进程实例化 , 它们可以运行连续控制(如D4PG和MPO)、离散Q学习(DQN和R2D2)以及更多其他强化学习算法 。 此外 , 通过跨动作/学习边界分割这样的小改变 , 我们即可以分布式地运行这些智能体 。 Acme框架首个版本主要针对学生和研究人员使用最多的单进程智能体 。