摘要:

Standard deep reinforcement learning algorithms use a shared representation for the policy and value function, especially when training directly from images. However, we argue that more information is needed to accurately estimate the value function than to learn the optimal policy. Consequently, the use of a shared representation for the policy and value function can lead to overfitting. To alleviate this problem, we propose two approaches which are combined to create IDAAC: Invariant Decoupled Advantage Actor-Critic. First, IDAAC decouples the optimization of the policy and value function, using separate networks to model them. Second, it introduces an auxiliary loss which encourages the representation to be invariant to task-irrelevant properties of the environment. IDAAC shows good generalization to unseen environments, achieving a new state-of-the-art on the Procgen benchmark and outperforming popular methods on DeepMind Control tasks with distractors. Our implementation is available at https://github.com/rraileanu/idaac.

标准的深度强化学习算法使用策略和值函数的共享表示,特别是在直接从图像进行训练时。然而,我们认为,与学习最优策略相比,需要更多的信息来准确估计价值函数。因此,对策略和价值函数使用共享表示可能会导致过度匹配。为了缓解这一问题,我们提出了两种方法相结合来创建IDAAC:不变解耦优势ActorCritic。首先,IDAAC将政策函数和价值函数的优化解耦,使用单独的网络对它们进行建模。其次,它引入了辅助损失,这鼓励了表征对于与环境无关的属性来说是不变的。IDAAC对看不见的环境表现出良好的泛化能力,在Procgen基准测试中实现了新的最先进水平,并在带有干扰项的DeepMind Control任务上表现优于流行的方法。我们的实现可在https://github.com/rraeanu/idaac上获得。

问题背景:

  • 标准的RL代理记住的是特定的轨迹,而不是学习可转移的技能。

  • 本文中,我们考虑在相对较少的此类实例上进行训练后,将其泛化到过程生成环境的不可见实例(或级别)的问题。虽然高级目标是相同的,但不同实体的背景、动态、布局以及位置、形状和颜色因实例而异。

  • 对于标准的强化学习来说,表示特征用于同时学习值函数和策略函数,但实际上估计值函数需要的信息比估计策略函数更多,即估计值函数时,除了需要估计策略函数的信息以外,还需要特定于实例的特征,因此这种方法获得的策略函数不利于推广、泛化性更差。(策略-价值表征不对称现象)

    • 这种特定于实例的特征比如可能是下图中的背景颜色,捕获这种虚假关联可能会导致策略不能很好地推广到新实例

    • 在部分观察到的程序生成的环境中,准确预测值函数可能需要特定于实例的特征,而这些特征对于学习最优策略并不是必需的。(良好的状态表示即捕获了在环境中操作以解决任务所需的最小特征集)

解决思路

  • 为了解决这种不对称,本文提出了不变解耦优势执行者-批评家IDAAC(Invariant Decoupled Advantage Actor-Critic)
  • 文章贡献如下:
    • 发现对策略和值函数使用共享表示可能导致RL的过度匹配;
    • 提出了一种新的方法,该方法使用单独的网络来表示策略和值函数,同时仍然学习有效的行为;(策略网络有两个头,一个用于策略,另一个用于广义优势函数。)
    • 引入辅助损失以鼓励表示不随任务实例而变化;
    • 展示了Procgen基准测试的最新推广,并在具有干扰项的DeepMind控制任务上优于流行的RL方法。

算法思路

  • DAAC(解耦优势参与者-批评者算法)

    • 对于政策和价值函数之间的参数共享问题,一个天真的解决方案是简单地训练两个独立的网络。

      • 这种方法不足以学习有效的行为,因为策略网络依赖于值函数的梯度来学习训练环境中的有用特征。
      • 如果没有更新策略网络的值的梯度,代理很难学习良好的行为
        • 即策略目标的梯度是出了名的稀疏和高方差,这使得训练变得困难,特别是对于高维状态空间(例如,在从图像学习时)。相比之下,值损失可以提供更密集和更少噪声的梯度,从而导致更有效的训练。
      • 思考:是否有其他辅助损失可以为训练政策网络提供类似有用的梯度,同时也缓解了过度拟合虚假相关性的问题。
    • 解决方法:使用预测广义优势估计(GAE)或简称优势函数,来替代值函数为训练策略网络提供梯度
      • 优势函数是动作价值的相对衡量,值函数是状态价值的绝对衡量。所以这种优势函数不会过度适应于实例。
      • 语义相同但视觉上不同的观察可能具有非常不同的值,但具有相同的优势(对于给定的操作)。
    • 方法由两个独立的网络组成,一个是由φ参数化的价值网络,被训练成预测价值函数;另一个是由θ参数化的政策网络,它被训练成学习一个最大化预期收益的策略,同时也预测优势函数。
    • 公式介绍:
      • 策略网络通过最大化以下函数进行训练:

        • 部分1:

          • 策略梯度目标(与PPO相同)是第t步的优势函数
        • 部分2:
          • 一种鼓励探索的熵奖励
        • 部分3:
          • 优势损失
          • 其中是时间步t时的相应广义优势估计,
          • 是由值函数网络提供的估计值计算的
      • 值函数网络通过最小化以下损失计算:
      • DAAC的伪代码如下图所示:
      • 策略和值优化的这种分离使我们还可以控制相对于策略更新的值更新频率。较少地更新值函数有助于训练稳定性,因为可以导致策略和优势损失的较低的方差梯度。
    • 实例不变特征(Learning Instance-Invariant Features)
      • 良好的状态表示的特征是捕获学习最优策略所需的最小特征集,并忽略可能导致过度匹配的特定于实例的特征。
      • 约束学习的表示对环境实例不可知的一种方法是阻止它们携带关于关卡中剩余步骤数的信息。(比如上文中图片里给出的背景颜色,就会被当做剩余步骤数的信息所利用,从而导致策略学习的过拟合)
      • 这可以使用对抗性框架来形式化,这样鉴别者就不能仅仅基于他们的学习特征来区分给定对中的哪个观察在一episode内最先出现。
      • 实现思想:
        • 编码器,以观测值s作为输入,输出一个特征向量f,与策略网络使用编码器相同,使用进行参数化。

          • 损失函数基于最大化鉴别器的不确定性(用熵)(即哪一个观测应该是该episode的第一个)
          • 编码器参数通过最小化损失优化,优化过程中鉴别器参数不变
          • 编码器的目的难道不是希望鉴别器越来越不准吗(生成器需要提高造假技术,将虚假判定为真实,所以在GAN中生成器的损失函数是鉴别器的后半部分)
          • 关于参数问题暂且理解为是个超参
        • 鉴别器,输入是来自相同轨迹的两个观测的两个特征,输出是观测值先于的概率(介于0到1之间)
          • 使用交叉熵损失来训练鉴别器,该交叉熵损失旨在预测哪个观测是轨迹中的第一个(交叉熵可以度量随机变量的距离)
          • 前半部分是将真实数据判定为真实数据,后半部分是将虚假数据判定为虚假数据(但是在GAN这俩不是一个数据集啊????)
          • 鉴别器的参数通过最小化该损失进行优化,优化过程中编码器参数不变。
        • 对抗性损失仅用于训练策略网络,不用于训练价值网络
          • 训练策略网络,通过最大化下式实现
          • 对抗网络的创新点:对当前观测中包含剩余步骤信息过拟合现象的处理,通过对抗网络,让模型忽略对于剩余步骤信息的获取。
          • 鼓励策略网络学习的表示,是鉴别器不能识别一个状态在另一个状态之前还是之后出现。(不能携带关于环境中剩余步骤的数量的信息,从而产生不太依赖于实例的特征,从而更有可能在训练分布之外进行泛化。)
      • IDAAC的伪代码如下图所示:
      • 关于损失函数的代码实现:
      • 对于鉴别器:希望其鉴别水平经过训练变得更好,所以使用了估计值和实际值的交叉熵损失
      • 对于编码器:希望最终鉴别结果越来越不准,所以和0.5比较,因为0.5是无法判断ij先后的数值。 

以后的研究方向

  • 其他辅助损失,以便有效地学习更一般的行为。这种辅助损失的一个理想属性是捕获在环境中动作所需的最小特征集。
  • 目前缺乏预测优势函数可以提高泛化能力的理论论证。(优势可以起到规范化作用,不太容易记住剩余情节长度)(优势函数能更好的与环境的潜在状态有关,而不是与视觉外观有关)
  • 可以探索更多解决策略-价值表示不对称问题的方法。

其他知识

  • PPG:阶段策略梯度(Phasic Policy Gradient, PPG)(2020)
    • 优势:与PPO相比,PPG显著提高了具有挑战性的Procgen基准测试的样品效率。
    • 针对问题:
      • 对策略函数和价值函数的权衡,权重的划分
      • 共享网络几乎需要使用相同的数据训练策略和价值函数,所以需要相同级别的样本重用(与策略优化相比,价值函数优化通常可以容忍更高水平的样本重用)
    • PPG在两个交替阶段运行:第一阶段训练策略,第二阶段从价值函数中提取有用的特征。
      • 策略阶段:使用PPO训练agent
      • 辅助阶段:将价值函数中的特征提取到策略网络中,以改进未来策略阶段的训练(PPG的新贡献在于包含周期性辅助)(使用包括任意辅助损失(arbitrary auxiliary loss )和行为克隆损失(behavioral cloning loss)的联合目标来优化策略网络)
        • 原则上,aux可以是任何辅助目标。目前,我们只是简单地使用价值函数损失作为辅助目标,从而在策略和价值函数之间共享特征,同时最大限度地减少对策略的扭曲。(Vθπ是策略网络的一个辅助值头)
        • 在辅助阶段,我们还借此机会通过进一步优化 Lvalue 对价值网络进行额外的训练
        • Lvalue 和 Ljoint 不共享参数依赖关系,因此我们可以分别优化这些目标。
        • Eaux 控制辅助阶段的样本重用,表示在重放缓冲区中的所有数据上执行的 epoch 数。我们通常通过增加 Eaux 而不是 EV 来增加样本重用以进行价值函数训练。
  • PPO Proximal Policy Optimization(近端策略优化)
    • 每次迭代中,PPO最大化以下目标
    • 其中价值函数损失定义为:
    • 策略函数损失使用了随机梯度上升:
      • 对于TRPO而言,它通过最小化新策略和旧策略之间的KL散度,来对参数更新进行限制,即新策略不会与旧策略相差过多。
      • 而对于PPO而言,它直接使用clip的方式,通过使用裁剪的agent而不是更复杂的TRPO目标,以一种更简单的方式实现约束。(直接将新策略与旧策略的区别局限在了一定范围内)

论文学习:Decoupling Value and Policy for Generalization in Reinforcement Learning(强化学习中泛化的解耦价值和策略)相关推荐

  1. 机器学习-49-RL-01-Deep Reinforcement Learning(强化学习-强化学习的基本介绍 Policy-based方法的基本介绍)

    文章目录 Deep Reinforcement Learning Reference Example: Scenario of Reinforcement Learning(强化学习的应用场景) Su ...

  2. Reinforcement Learning | 强化学习十种应用场景及新手学习入门教程

    文章目录 1.在自动驾驶汽车中的应用 2.强化学习的行业自动化 3.强化学习在贸易和金融中的应用 4.NLP(自然语言处理)中的强化学习 5.强化学习在医疗保健中的应用 6.强化学习在工程中的应用 7 ...

  3. 李宏毅Reinforcement Learning强化学习入门笔记

    文章目录 Concepts in Reinforcement Learning Difficulties in RL A3C Method Brief Introduction Policy-base ...

  4. Reinforcement Learning——强化学习

    强化学习讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励. 强化学习和监督学习 强化学习有这个 试错探索(trial-and-err ...

  5. Reinforcement Learning强化学习系列之二:MC prediction

    引言 这几个月一直在忙找工作和毕业论文的事情,博客搁置了一段时间,现在稍微有点空闲时间,又啃起了强化学习的东西,今天主要介绍的是强化学习的免模型学习free-model learning中的最基础的部 ...

  6. Reinforcement Learning强化学习 (第二版)

    中文版: 链接:https://pan.baidu.com/s/19Ci_47hjfEfLhfNs3EtuyA?pwd=lul1  提取码:lul1

  7. Reinforcement learning book 学习笔记 第一章

    RL学习 写在前面: 本专栏是学习由Richard S. Sutton and Andrew G. Barto 所著 <Reinforcement learning>的学习笔记,如有指正请 ...

  8. 【论文阅读】保守和适应性惩罚+基于模型的安全强化学习

    [论文阅读]保守和适应性惩罚+基于模型的安全强化学习 Conservative and Adaptive Penalty for Model-Based Safe Reinforcement Lear ...

  9. 《强化学习周刊》第16期:多智能体强化学习的最新研究与应用

    No.16 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,多智能强化学习的研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领 ...

最新文章

  1. 面下个对象 多态特性
  2. Redisson--------基础入门
  3. (十六)深入浅出TCPIP之Hello CDN
  4. 事务回退机制 android,【Android基础】——Fragment-使用方法
  5. 95-136-041-源码-Operator-OneInputStreamOperator
  6. SAP License:CO-第四夜-产品成本核算
  7. HTML5期末大作业:5G网络网页设计——3页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计
  8. 二十一个微信公众号推广技巧
  9. Qt开发总结(19)——Qt Charts
  10. OllyICE 调试的程序无法处理异常 解决方法
  11. 2022年10月deepin 20.7.1 谈谈我们的N卡驱动开发心得
  12. 不可重复读和幻读有什么区别?
  13. 根据图片快速设置IDEA启动的Banner效果
  14. 【精华】OCR关键信息提取之SER和RE
  15. java用户名重复验证代码_java如何让注册的用户名不重复,在当前页面就可以判断,并抛出提示?...
  16. H3C防火墙web管理
  17. 失业参加聚会_谁被邀请参加聚会?
  18. mysql 慢日志 逻辑读_运维日记| MySQLOracle深度解析之一:逻辑读
  19. MVC 图片上传 带进度条(转)
  20. ETL(Extract-Transform-Load)

热门文章

  1. 解决东岳流体下载的OpenFOAM虚拟机出现的“发生错误,导致虚拟CPU进入关闭状态”问题
  2. 随身WIFI设置APN(不能开ADB的中星微)
  3. 如何部署微信小程序,并且利用Nginx配置https访问
  4. 基于WPF重复造轮子,写一款数据库文档管理工具(一)
  5. 秘密secret社群价值
  6. python中的loop啥意思_Python forloop列表理解
  7. 踏遍青山情未老 —— 九山顶重游记(三)
  8. 4.7蓝桥杯做题-心愿便利贴-消失的 Token-封装 Promisefy 函数-趣购-乾坤大挪移心法
  9. 小程序源码:自动采集头像大全微信小程序源码支持多分类-多玩法安装简单
  10. Android”挂逼”修炼之行—防自动抢红包外挂原理解析