QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

谷歌发布强化学习算法 SimPLe,学习效率提升两倍

  • 2019-03-26
  • 本文字数:1322 字

    阅读完需:约 4 分钟

谷歌发布强化学习算法SimPLe,学习效率提升两倍

深度强化学习(Deep reinforcement learning)利用奖励来推动软件政策朝着目标发展。该技术已被用于模拟社会规范的影响,创造出特别擅长玩游戏的人工智能,并为机器人编写程序,使其能够从恶劣的溢出中恢复过来。尽管强化学习功能多样,它也有一个明显的缺点:效率低下。训练策略需要在模拟的或真实的环境中进行大量的交互——远远超过普通人学习任务的需要。


为了在视频游戏领域有所弥补,谷歌的研究人员最近提出了一种新的算法——模拟策略学习,简称 SimPLe,该算法通过游戏模型学习用于选择动作的质量策略。谷歌在一篇新发表的预印本论文(“Atari 基于模型的强化学习”)和随开源代码一起发布的文档中对此进行了描述。


论文链接:https://arxiv.org/abs/1903.00374


开源代码:https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/rl/README.md


根据谷歌官方的介绍:


在高层次上,SimPLe 背后的想法是在学习游戏行为的 world 模型和在模拟游戏环境中使用该模型优化策略(使用无模型强化学习)之间进行交替。该算法的基本原理已经很好地建立起来,并应用于许多最近的基于模型的强化学习方法中。



SimPLe 的主循环。1)代理开始与真实环境交互;2)收集的观测结果用于更新当前的 world 模型;3)代理通过在 world 模型内学习来更新策略。


如果成功地训练这样一个模型(如视频预测),一个本质上学会了模拟器的游戏环境,可以用来生成轨迹训练游戏代理的好策略,即选择一个操作序列,这样可以使代理的长期回报最大化。


在每次迭代中,在 world 模型被训练之后,就可以使用这个学习的模拟器来生成滚动(即动作、观察和结果的样本序列),这些滚动被用来使用近似策略优化(PPO)算法来改进游戏策略。滚动的采样从实际的数据集帧开始。由于预测错误通常会随着时间的推移而增加,使长期预测变得非常困难,SimPLe 只使用中等长度的滚动。幸运的是,PPO 算法也可以从其内部价值函数中学习动作和奖励之间的长期效果,因此有限长度的滚动对于像《highway》这样奖励稀疏的游戏来说也是足够的。


从效率方面来说,衡量成功的一个标准是证明该模型是高效的。为此,谷歌的研发人员在与环境进行了 10 万次交互之后评估了策略的输出,将 SimPLe 与两种最先进的无模型 RL 方法 Rainbow 和 PPO 进行了比较。在大多数情况下,SimPLe 的样本效率比其他方法高出两倍以上。



相应的无模型算法(左 - Rainbow;右 - PPO)所需的交互次数与 SimPLe 训练方法获得的得分相匹配。红线表示 SimPLe 使用的交互次数。


然而,SimPLe 并不总是完美的。最常见的故障是:world 模型不能准确地捕获或预测体积很小但相关度很高的对象。比如某些训练中,由于游戏中子弹的体积太小以至于几乎很难被模型捕捉到。


谷歌的研究人员认为:“基于模型的强化学习方法的主要前景是在交互成本高、速度慢或需要人工标记的环境中,例如许多机器人任务中。在这样的环境下,学习的模拟器可以更好地理解代理的环境,并可以为更多的任务强化学习提供新的,更好的和更快的方法。虽然 SimPLe 还没有达到标准无模型 RL 方法的性能,但它的效率要高得多,我们期望未来的工作能够进一步提高基于模型的性能。”


原文链接:


https://ai.googleblog.com/2019/03/simulated-policy-learning-in-video.html


2019-03-26 15:163839
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 282.4 次阅读, 收获喜欢 1303 次。

关注

评论

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

BS-GX-016基于SSM实现教材管理系统,unixlinux编程实践教程

Java 程序员 后端

CentOS8安装Docker,经典实战教程

Java 程序员 后端

Ceph实战(三)-块设备的创建与映射,netty架构原理图

Java 程序员 后端

Chrome上的这些灵魂插件太猛了,碾压其他同款,美团二面惜败

Java 程序员 后端

disruptor笔记之二:Disruptor类分析,java的学习网站

Java 程序员 后端

BATJ互联网公司面试必问知识点:Spring全家桶全解,java分布式框架技术方案

Java 程序员 后端

CAS之ABA问题的解决方法,深入理解Nginx及使用Nginx实现负载均衡

Java 程序员 后端

disruptor笔记之四:事件消费知识点小结,kalilinux教程pdf

Java 程序员 后端

BATJ互联网公司必问知识点:Spring十个面试专题及答案,java技术面试总结评语

Java 程序员 后端

CentOS7环境部署kubenetes1,数据库mysql面试题

Java 程序员 后端

CentOS安装Redis,java程序员进阶路线

Java 程序员 后端

CompletableFuture异步编程,高级java开发笔试题

Java 程序员 后端

C语言AES算法实现(基于Mbedtls),java中高级面试题最新

Java 程序员 后端

Choreographer机制和卡顿优化,mysql基础入门

Java 程序员 后端

详解低延时高音质:编解码篇

声网

编解码 音频体验 Opus

案例推荐|Apache Pulsar 助力金山云日志服务,日处理 200TB 数据

Apache Pulsar

开源 云原生 日志 中间件 Apache Pulsar 消息系统

Docker Swarm从部署到基本操作,Java程序员进大厂面试必备基础技能

Java 程序员 后端

一文了解 PG PITR 即时恢复

青云技术社区

数据库 postgresql 云计算

BATJ互联网公司必问知识点:Spring十个面试专题及答案(1)

Java 程序员 后端

在线文本去空行工具

入门小站

工具

BS-GX-018 基于SSM实现在校学生考试系统,linux系统架构和应用技巧pdf

Java 程序员 后端

B站,牛逼!,字节跳动算法工程师面试总

Java 程序员 后端

【Java 原理剖析系列】深度分析 Semaphore工作原理分析

洛神灬殇

Java 并发编程 Semaphore 11月日更

APP性能优化系列-自定义启动器(三),阿里巴巴java面试几轮

Java 程序员 后端

Class文件结构介绍[字段表集合和方法表集合],kafka基础原理

Java 程序员 后端

ConcurrentHashMap扩容?lastRun到底是个啥?,理解透彻

Java 程序员 后端

BATJ互联网月薪45K的Java岗面试题首次曝光,掌握这些Offer指定跑不了

Java 程序员 后端

BAT面试必考Java面试题100+:Kafka,mysql连接查询原理

Java 程序员 后端

Go语言,协程的深入剖析

微客鸟窝

Go 语言 11月日更

CentOS中VMware tools的安装以及安装失败的解决办法,java程序设计教程pdf

Java 程序员 后端

DL4J实战之一:准备,工业互联网架构师

Java 程序员 后端

谷歌发布强化学习算法SimPLe,学习效率提升两倍_AI&大模型_Łukasz Kaiser_InfoQ精选文章