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

摘要:

        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代理记住的是特定的轨迹,而不是学习可转移的技能。

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

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

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

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

    • 论文学习:Decoupling Value and Policy for Generalization in Reinforcement Learning(强化学习中泛化的解耦价值和策略)_第1张图片

解决思路

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

算法思路

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

      • 策略网络通过最大化以下函数进行训练:
        • 部分1:论文学习:Decoupling Value and Policy for Generalization in Reinforcement Learning(强化学习中泛化的解耦价值和策略)_第3张图片
          • 策略梯度目标(与PPO相同)是第t步的优势函数
        • 部分2:
          • 一种鼓励探索的熵奖励
        • 部分3:
          • 优势损失
          • 其中是时间步t时的相应广义优势估计,
          • 是由值函数网络提供的估计值计算的
      • 值函数网络通过最小化以下损失计算:

      • DAAC的伪代码如下图所示:论文学习:Decoupling Value and Policy for Generalization in Reinforcement Learning(强化学习中泛化的解耦价值和策略)_第4张图片
      • 策略和值优化的这种分离使我们还可以控制相对于策略更新的值更新频率。较少地更新值函数有助于训练稳定性,因为可以导致策略和优势损失的较低的方差梯度。
    • 实例不变特征(Learning Instance-Invariant Features)

      • 良好的状态表示的特征是捕获学习最优策略所需的最小特征集,并忽略可能导致过度匹配的特定于实例的特征。
      • 约束学习的表示对环境实例不可知的一种方法是阻止它们携带关于关卡中剩余步骤数的信息。(比如上文中图片里给出的背景颜色,就会被当做剩余步骤数的信息所利用,从而导致策略学习的过拟合)
      • 这可以使用对抗性框架来形式化,这样鉴别者就不能仅仅基于他们的学习特征来区分给定对中的哪个观察在一episode内最先出现。
      • 实现思想:
        • 编码器E_{\theta },以观测值s作为输入,输出一个特征向量f,与策略网络使用编码器相同,使用\theta进行参数化。
          • 损失函数基于最大化鉴别器的不确定性(用熵)(即哪一个观测应该是该episode的第一个)
          • 编码器参数通过最小化损失优化,优化过程中鉴别器参数不变
          • 编码器的目的难道不是希望鉴别器越来越不准吗(生成器需要提高造假技术,将虚假判定为真实,所以在GAN中生成器的损失函数是鉴别器的后半部分)
          • 关于参数问题暂且理解为是个超参
        • 鉴别器,输入是来自相同轨迹的两个观测的两个特征,输出是观测值s_{i}先于s_{j}的概率(介于0到1之间)
        • 论文学习:Decoupling Value and Policy for Generalization in Reinforcement Learning(强化学习中泛化的解耦价值和策略)_第5张图片
          • 使用交叉熵损失来训练鉴别器,该交叉熵损失旨在预测哪个观测是轨迹中的第一个(交叉熵可以度量随机变量的距离)
          • 前半部分是将真实数据判定为真实数据,后半部分是将虚假数据判定为虚假数据(但是在GAN这俩不是一个数据集啊????)
          • 鉴别器的参数通过最小化该损失进行优化,优化过程中编码器参数不变。
        • 对抗性损失仅用于训练策略网络,不用于训练价值网络
          • 训练策略网络,通过最大化下式实现
          • 对抗网络的创新点:对当前观测中包含剩余步骤信息过拟合现象的处理,通过对抗网络,让模型忽略对于剩余步骤信息的获取。
          • 鼓励策略网络学习的表示,是鉴别器不能识别一个状态在另一个状态之前还是之后出现。(不能携带关于环境中剩余步骤的数量的信息,从而产生不太依赖于实例的特征,从而更有可能在训练分布之外进行泛化。)
      • IDAAC的伪代码如下图所示:
      • 论文学习:Decoupling Value and Policy for Generalization in Reinforcement Learning(强化学习中泛化的解耦价值和策略)_第6张图片
      • 关于损失函数的代码实现:
      • 对于鉴别器:希望其鉴别水平经过训练变得更好,所以使用了估计值和实际值的交叉熵损失
      • 对于编码器:希望最终鉴别结果越来越不准,所以和0.5比较,因为0.5是无法判断ij先后的数值。 

         

以后的研究方向

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

其他知识

  • PPG:阶段策略梯度(Phasic Policy Gradient, PPG)(2020)
  • 论文学习:Decoupling Value and Policy for Generalization in Reinforcement Learning(强化学习中泛化的解耦价值和策略)_第7张图片
    • 优势:与PPO相比,PPG显著提高了具有挑战性的Procgen基准测试的样品效率。
    • 针对问题:
      • 对策略函数和价值函数的权衡,权重的划分
      • 共享网络几乎需要使用相同的数据训练策略和价值函数,所以需要相同级别的样本重用(与策略优化相比,价值函数优化通常可以容忍更高水平的样本重用)
    • PPG在两个交替阶段运行:第一阶段训练策略,第二阶段从价值函数中提取有用的特征。
      • 策略阶段:使用PPO训练agent
      • 论文学习:Decoupling Value and Policy for Generalization in Reinforcement Learning(强化学习中泛化的解耦价值和策略)_第8张图片
      • 辅助阶段:将价值函数中的特征提取到策略网络中,以改进未来策略阶段的训练(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目标,以一种更简单的方式实现约束。(直接将新策略与旧策略的区别局限在了一定范围内)

你可能感兴趣的:(论文分享,学习,论文阅读)