4.深度强化学习------PPG(Phasic Policy Gradient)算法资料+原理整理

文章地址:
PPG:Phasic Policy Gradient

一. PPG资料

PPG相关BLOG①
PPG相关Demo(PyTorch版)

二. PPG原理简述

2.1 背景

PPG是一种相对于PPO来说,提升sample efficiency的算法。

  传统on-policy actor-critic方法,可通过共享网络或单独的网络来分别表示policy和value function:用单独的网络分别表示policy和value function的好处是可以避免训练目标之间的干扰;用共享网络的方式可以用来共享有用的特征信息。

  PPG文中给出了用共享网络训练policy net和value function net的优势:每个目标训练的特征可以用来更好的优化另一个目标。但是共享网络存在的劣势就是:任何想要用同一个网络去优化这两个目标的方法都必须为每个目标分配一个相对的权重,但是不管超参数调整的多么好,都无法阻止两个优化目标之间的相互干扰;其次就是使用共享网络来优化policy 和 value function就需要用同样的数据来训练这两个网络,并且数据的sample reuse也一致,这并不是理想的情况。

  对于on-policy actor-critic算法有两个特性:

在这里插入图片描述

2.2原理

PPG就解决了上述这两个问题

  PPG是一种能够保持 policy net 和 value function net 之间特征共享且能够解耦这两个网络训练的算法,那么文中是如何解决这两个问题的呢,首先来看解耦两个网络训练这个操作,实际上就是分别用两个网络训练policy和value function,如下图所示(先不管policy net输出的 V θ π ( s ) V_\theta{_\pi}(s) Vθπ(s)):
在这里插入图片描述
  接下来看是如何实现所谓的特征共享从而加快收敛,简单的概括一下就是让policy net输出的 V θ π ( s ) V_\theta{_\pi}(s) Vθπ(s)逼近 value function net输出的 V θ v ( s ) V_\theta{_v}(s) Vθv(s),同时通过KL散度来约束policy不会更新的太多,amazing。

  PPG算法训练总体分为两个阶段:先是policy phase,接着是auxiliary phase,这两个阶段交替进行:在policy phase中采用PPO的更新方式,如下图所示:
在这里插入图片描述
  在auxiliary phase中按照下式进行更新,这样就巧妙的近似实现了“共享”:
在这里插入图片描述
  最终得到的PPG算法如下:
在这里插入图片描述  从算法伪代码中可以看出,value net也可以训练更多的次数,没有必要必须与policy net的训练次数保持一致,这也解决了之前共享网络时所存在的问题。

先写到这里吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值