200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 4.深度强化学习------PPG(Phasic Policy Gradient)算法资料+原理整理

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

时间:2021-02-19 02:55:24

相关推荐

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的训练次数保持一致,这也解决了之前共享网络时所存在的问题。

先写到这里吧

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。