超有趣!LSTM之父团队最新力作:将强化学习“颠倒”过来

简介: 超有趣!LSTM之父团队最新力作:将强化学习“颠倒”过来

近日,LSTM 的发明人、著名深度学习专家 Jürgen Schmidhuber 发表的一篇技术报告引起机器学习社区关注,论文题为“颠倒强化学习:不要预测奖励——把它们映射到行为上”。


image.png论文地址:

https://arxiv.org/pdf/1912.02875.pdf


与技术报告同时发表的是包括Jürgen Schmidhuber在内,来自NNAISENSE和The Swiss AI Lab IDSIA的新研究“使用颠倒强化学习来训练智能体”(Training Agents using Upside-Down Reinforcement Learning)。


RL算法要么使用价值函数预测奖励,要么使用策略搜索使其最大化。该研究提出一种替代方法:颠倒RL(Upside-Down RL),主要使用监督学习来解决RL问题


这个新颖的想法立即引起研究社区关注,有人认为它是一个超级有趣的idea。


image.png


但也有Reddit用户表示,虽然它看起来是个有趣的想法,但考虑到RainBow、Sac等其他研究,将其与DQN和A2C相比较并不十分合适尽管论文没有提到任何的SOTA,但摘要中提到它打败了传统的baseline


接下来,让我们来看 Jürgen Schmidhuber 撰写的技术报告的关键想法,以及论文中描述的具体实现。


颠倒RL:不要预测奖励,将奖励作为输入


Jürgen Schmidhuber的技术报告摘要:


我们将强化学习(RL)转变为一种监督学习(SL)的形式,方法是将传统RL颠倒过来,称之为或颠倒RL (Upside Down RL, UDRL)。标准RL预测奖励,而UDRL使用奖励作为任务定义的输入,以及时间范围的表示和历史数据以及可期的未来数据的其他可计算函数。
UDRL学会将这些输入观察结果解释为命令,并根据过去(可能是偶然的)经历通过SL将它们映射为行为(或行为概率)。UDRL一般通过输入命令来实现高奖励或其他目标,例如:在一定时间内获得大量奖励!另一篇关于UDRL的首个实验的论文(Training agents with upside-down reinforcement learning)表明,UDRL在某些具有挑战性的RL问题上可以胜过传统的baseline算法。


我们还提出了一种相关的简单而且通用的方法来教机器人模仿人类。首先,对人模仿机器人当前的行为进行录像,然后让机器人通过监督学习将视频(作为输入命令)映射到这些行为上,然后让其概括和模仿先前未知的人类行为。这种Imitate-Imitator的概念实际上可以解释为什么生物进化导致父母会模仿婴儿的咿呀学语。


基本想法


传统的RL系统学习根据给定的先前行为和观察结果来预测奖励,并学习将这些预测转变为奖励行动。我们的新方法UDRL或是完全不同的。它根本不预测奖励。相反,它将奖励作为输入。更准确地说,
系统以期望奖励和时间范围的形式执行命令,例如:“在这么长的时间内获得这么多的奖励。”通过与环境进行简单交互,它能通过梯度下降来学习,将这种类型的自生成命令映射到相应的动作概率。从这种自学的知识可以推断出解决新问题的方法,例如:“用更少的时间获得更多的奖励。”

image.png图1:传统RL中的action-value function(Q)(如Q-learning)与中的行为函数(B)之间的一个关键区别是,行为和回报的角色是反过来的。此外,B可以有其他的命令输入,如所需的状态或实现所需回报的时间范围。


让我们更详细地概述一下这个新原则。一个agent可以在一次终身试验中与其环境交互。在给定的时间内,行为的历史和向量值的成本(例如,时间、精力、痛苦和奖励信号)和其他到目前为止的观察结果包含了agent可以知道的有关其自身和环境当前状态的所有信息。现在,它要展望未来的极限,试图在到达极限之前获得大量回报。


对于所有过去的时间对(time1 < time2),它可以回溯性地为自己创建额外的、一致的、向量值的命令输入,从而指示任务,例如:在time1和time2之间实现已经观察到的奖励/成本。或者:获得一半以上的奖励,等等。


现在,它可以简单地使用基于梯度的SL来训练可微分的通用计算机C,例如递归神经网络(RNN)来将随时间变化的感官输入映射到已知的相应动作序列,并通过定义时间范围和所需累积奖励的特殊命令输入进行增强。


如果到目前为止的经验包括从某个起点到某个目标的、不同但成本相同的动作序列,那么C将学习在给定命令和其他输入的情况下,近似估计适当动作的条件期望值(或概率,取决于设置)。


到目前为止,该方法可能会产生大量关于如何用有限的资源(如时间/精力/其他成本)解决各种问题的知识。然而,我们通常希望C解决用户给定的问题,特别是快速获得大量奖励,例如,通过快速到达避免撞到障碍物、快速到达充电站而避免电池快用完引起的饥饿(负奖励)。可以将这种需求编码为用户定义的类型命令(较小的期望痛苦、较小的期望时间),C将根据到目前为止通过SL掌握的关于开始、目标、痛苦和时间的知识进行归纳和处理。这将延长C的终身经验;所有新的观察结果立即成为C的成长训练集的一部分,以持续地改进C的行为。


出于教学目的,本技术报告首先正式介绍确定性环境的RL基础,以及控制器与环境之间的Markovian接口,然后讨论更复杂的情况。


在论文Training Agents using Upside-Down Reinforcement Learning中,我们描述了第一次实验中的具体实现,并给出了显著的实验结果。

image.png

论文地址:https://arxiv.org/pdf/1912.02877v1.pdf


实验和结果:特定任务轻松超越传统RL算法DQN、A2C


本实验的目的是确定的实际可行性,并将其与两个著名的传统RL算法:Deep Q-Networks (DQN)Advantage Actor-Critic (A2C)进行比较。


环境


image.png

LunarLander-v2(图3a)是Gym RL库中提供的一个简单的Markovian环境,目标是通过控制主引擎和侧引擎将航天器降落在着陆台上。在整个过程中,agent在每个时间步长都得到负的奖励,随着它在位置和方向上越接近最优着陆位置,奖励的幅度也会减小。最后结束时,如果agent坠机,奖励是-100;如果agent成功着陆,奖励是+100。
image.png图3(b)

TakeCover-v0(图3b)环境是用于可视化RL研究的VizDoom库的一部分。agent在一个矩形房间的中心附近,面向对面的墙壁,怪物随机出现并向agent开枪射击。agent必须学会向左或向右移动来避免被击中,尽可能地延长生存时间。对于agent生存的每个时间步长,奖励都是+1。


从技术上讲,agent与环境的界面都是非Markovian的,因为它始终无法看到对面墙的全局。为了降低部分可观测度,我们将最近的8个视觉帧叠加在一起产生agent观测。帧也被转换成灰度,并从原始分辨率160×120下采样到32×32。


结果

最后20次运行的结果如图4所示,实线表示平均评估回报,阴影区域表示1000个bootstrap样本的95%置信区间。

image.png

图4:LunarLander-v2和TakeCover-v0的评估结果。实线表示使用调优超参数和实验种子1-20进行20次以上运行的评估得分的平均值。阴影区域表示使用1000个 bootstrap samples的95%置信区间。每个评估分数是100 episode返回的平均值。


image.png图5:LunarLanderSparse的结果,这是LunarLander-v2的一个稀疏奖励版本,其中累积奖励延迟到每个episode的结尾。与DQN和A2C相比,的学习速度更快、更一致。


对于LunarLander-v2,返回100-140表示成功着陆,返回200以上表示接近最佳策略。在这项任务的表现比DQN和A2C要差。但对单个agent的检查表明,它能够持续地训练成功着陆的agent,但是有些agent能快速学习并获得类似于A2C/DQN的回报时,其他agent则较低回报时停滞不前。我们推测这种环境比较适合TD学习,因为它的奖励结构比较密集,最后奖励信号比较大。


对于TakeCover-v0,由于时间限制,最大可能的回报是2100。但是,由于环境的困难性(怪物的数量随时间增加)和部分的可观察性,如果超过100 episodes的平均奖励大于750,就可以认为任务已经解决。在这项任务中,轻松地超越了DQN和A2C,证明了它对高维控制问题的适用性

相关文章
|
机器学习/深度学习 编解码 BI
RegNet架构复现--CVPR2020
在这项工作中,我们**提出了一种新的网络设计范式**。我们的目标是帮助促进对网络设计的理解,并发现跨环境通用的设计原则。我们不是专注于设计单个网络实例,而是设计参数化网络群体的网络设计空间。整个过程类似于经典的网络手动设计,但提升到了设计空间级别。使用我们的方法,我们探索了网络设计的结构方面,并**得出了一个由简单、规则的网络组成的低维设计空间,我们称之为** ==RegNet==。
2719 0
RegNet架构复现--CVPR2020
|
7月前
|
存储 数据采集 搜索推荐
Python+淘宝API:3步爬取10万条商品评论(附反爬破解技巧)
本文介绍淘宝商品评论爬取技术,涵盖环境配置、接口分析、反爬破解及数据存储。使用Python模拟请求,动态代理与签名绕过风控,结合Flask中转降低封禁风险,实现高效合规的数据采集,适用于竞品分析与用户画像构建。(238字)
1426 1
|
编解码 搜索推荐 数据安全/隐私保护
创作高质量网页内容时,怎样使用图片和视频等多媒体元素?
在创作高质量网页内容时,合理使用图片、视频等多媒体元素能够显著增强内容的吸引力、可读性和分享性
|
安全 JavaScript Java
社区老人健康信息管理系统|基于springboot社区老人健康信息管理系统设计与实现(源码+数据库+文档)
社区老人健康信息管理系统|基于springboot社区老人健康信息管理系统设计与实现(源码+数据库+文档)
591 1
|
监控 数据可视化 测试技术
Apifox 如何进行 API 自动化测试?经验之谈
选择 Apifox 来进行 API 自动化测试能够确保每次迭代的质量,避免引入新的 bug,还要实现自动化测试、定时测试、产品监控、可视化测试、持续集成等,帮助提高效率,通过设计和执行有针对性的测试用例,来全面验证产品功能,确保软件系统能够正常运行,减少上线后的问题。
Apifox 如何进行 API 自动化测试?经验之谈
|
网络安全 云计算
在哪找出来阿里云服务器代码
本文介绍了在阿里云上查找服务器代码的方法,包括通过控制台搜索实例并进入详情页查找相关信息,利用 `ssh` 和 `cat` 等命令行工具远程访问和查看文件,以及联系阿里云技术支持获得进一步帮助,助您轻松定位和操作服务器代码。
420 2
|
缓存 负载均衡 Java
Nacos 集群部署时性能优化配置
Nacos 集群部署时性能优化配置
780 2
|
监控 小程序 Java
《优化接口设计的思路》系列:第五篇—接口发生异常如何统一处理
大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
1218 0
《优化接口设计的思路》系列:第五篇—接口发生异常如何统一处理
|
机器学习/深度学习 数据采集 算法
深度强化学习中深度Q网络(Q-Learning+CNN)的讲解以及在Atari游戏中的实战(超详细 附源码)
深度强化学习中深度Q网络(Q-Learning+CNN)的讲解以及在Atari游戏中的实战(超详细 附源码)
882 0

热门文章

最新文章