近端策略优化深度强化学习算法

Posted fpga&matlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了近端策略优化深度强化学习算法相关的知识,希望对你有一定的参考价值。

PPO:Proximal Policy Optimization Algorithms,其优化的核心目标是:

 ppo paper

策略梯度

以下是马尔可夫决策过程MDP的相关基础以及强化学习的优化目标:

策略梯度Policy Gradoent的相关推导:

 openai spinningup

重要性采样

通过从一个已知的分布中采样来估计另一个分布。在PPO中,π_old是π的一个近似分布,我们希望学习的策略π在π_old的基础上稳步学习,两者差距不能太大;于是我们从π_old的分布中采样,以π/π_old的作为权重。一个不严谨的理解是差值为0或比值为1都表示两个变量一致。我们的目的就是期望π在π_old的附近学习。

取R(τ)为优势函数At,可以从每个t为粒度来重新考查PG,在此基础上对π_old进行重要性采样,最终结果为:

KL散度

KL散度即两个分布的相对熵H_p(Q) - H(P):使用不正确的分布Q代替真实分布P时所产生的额外代价。只有当两个分布一致时,KL散度为0,否则总是正的。在PPO中,KL散度用来衡量policy π与π_old的偏离程度,期望两者是接近的。

 koller pgm

模型结构

当action是连续动作空间时,policy π网络学习的是分布的参数mean和vars;当是离散的时候,是其多项式分布。

与off-policy学习DQN的Target Network网络相似,包含一个策略“目标”网络π_old,在每次采集完数据即学习前,π网络把参数同步至π_old。

损失函数

policy π 网络和 Value网络是分开的,分别优化两个网络的目标函数。

π的目标函数:

 ppo paper

注意优势函数A是基于π_old的。KL散度以惩罚项与优势函数加在一起,系数根据KL的大小调整。

Value的损失函数:一般的state Value残差即可。

 openai spinningup

学习过程

可以通过多个actor实现并行采集数据,π_old指的是采集数据的policy,学习优化可以多次使用数据,但π_old不变。采样数据的action通过π_old的分布参数决定的分布上采样;优势函数可以是任何一种近似,比如TD Residual:R(s_t, a_t) + V(s_t+1) - V(s)。

 ppo paper

总结

PPO是一种基于策略梯度优化的、面向连续或离散动作空间的on-policy深度强化学习算法。

以上是关于近端策略优化深度强化学习算法的主要内容,如果未能解决你的问题,请参考以下文章

强化学习笔记:PPO 近端策略优化(Proximal Policy Optimization)

深度强化学习 PPO 模型解析,附Pytorch完整代码

详解近端策略优化

详解近端策略优化

深度强化学习-策略梯度算法深入理解

Proximal Policy Optimization (PPO) 算法理解:从策略梯度开始