深度强化学习 Actor-Critic演员评论家 PPO

将策略(Policy Based)和价值(Value Based)相结合的方法:Actor-Critic算法,在强化学习领域最受欢迎的A3C算法,DDPG算法,PPO算法等都是AC框架。

 

二、邻近策略优化(Proximal Policy Optimization,PPO)

邻近策略优化(Proximal Policy Optimization,PPO)算法解决的问题是离散动作空间和连续动作空间的强化学习问题,是on-policy的强化学习算法。

算法主要思想:策略pi接受状态s,

输出动作概率分布,在动作概率分布中采样动作,执行动作,得到回报,跳到下一个状态。在这样的步骤下,我们可以使用策略pi收集一批样本,然后使用梯度下降算法学习这些样本,但是当策略pi的参数更新后,这些样本不能继续被使用,还要重新使用策略pi与环境互动收集数据,真的非常耗时。因此采用重要性采样,使这些样本可以被重复使用

1. 模型结构

图片

PPO是基于Actor-Critic架构的,这个架构的优势是解决了连续动作空间的问题。

  • actor网络的输入为状态,输出为动作概率(对于离散动作空间而言)或者动作概率分布参数(对于连续动作空间而言)
  • critic网络的输入为状态,输出为状态的价值。

actor网络输出的动作使优势越大越好,critic网络输出的状态价值越准确越好。

2. 产生experience的过程

图片

已知一个状态s0,

  • 通过 actor网络 得到所有动作的概率(图中以三个动作:a,b,c为例),
  • 然后依概率采样得到动作a0,
  • 然后将a0输入到环境中得到s1和r1,

状态价值v(s0)通过critic网络输出得到,这样就得到一个experience: (s0,a0,r1,v(s0,logP(a0|s0)),然后将experience放入经验池中。

以上是离散动作的情况,如果是连续动作,就输出概率分布的参数(比如高斯分布的均值和方差),然后按照概率分布去采样得到动作a0。

经验池的意义是为了更方便的计算一条轨迹上状态的累积折扣回报v(st)以及优势A(st,at),而不是消除experience的相关性。

3. 网络更新

3.1 actor网络的更新流程

优势函数A的定义为:

图片

因为Actor网络需要输出的动作优势尽可能地大,所以它的训练需要用以下表达式作为Loss函数:

图片

其中

图片

反映了新旧策略差异的程度。

对于上式等价于如下形式:

图片

A大于0表示此时策略更好,要加大优化力度。目标函数取最大,那么就会尽量取大的r值,但如果更新力度过大,新旧策略差异就会太大,即

图片

,那么clip操作和min操作会进行限制,防止了过度优化。

PPO算法使用多步TD,因此它需要跑完一条轨迹后,才开始计算各个状态的累积回报和动作的优势。具体而言,状态价值是通过critic网络输出得到的,动作优势是通过先计算

图片

,然后用

图片

作为折扣因子去计算动作优势,公式如下:

图片

3.2 Critic网络的更新流程

Actor网络更新后,接着拿从经验池buffer中采出的数据进行Critic网络的更新(数据已经计算了状态价值,折扣回报Gt的计算是基于多步TD的方法,从那个状态开始,用每一步环境返回的奖励R与折扣因子相乘后累加,即:

图片

其中

图片

为网络的估计值,更新方式为:计算好的折扣回报与Critic网络预测当前状态价值做差,用MSEloss作为Loss函数,对神经网络进行训练。

算法流程如下:

图片

参考链接:强化学习PPO算法介绍PPO算法解决的问题是离散动作空间和连续动作空间的强化学习问题,是on-policy的强化学习算法。icon-default.png?t=N7T8https://mp.weixin.qq.com/s/pG9UzN1NjfBy4ZvgnNVRwQ

第十二章 深度强化学习-Actor-Critic演员评论家第十二章 Actor-Critic演员评论家我们在上一章中介绍了策略梯度(Policy Gradient)方icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzU1OTkwNzk4NQ==&mid=2247485611&idx=1&sn=5bf388ead8a1edc0051665d7b6f7825b&chksm=fc115d55cb66d4434d701ce86138e0345dffb909657abdad1e8f0da3eb700bccc1a4b86c52b4&scene=21#wechat_redirect

PPO(Proximal Policy Optimization)是一种用于训练强化学习任务的算法,其中包括一个 actor-critic演员-评论家)的架构。PPO算法是以AC(Actor-Critic)方法为基础的改进算法。 在强化学习中,actor-critic方法是一种常见的方法,将两个部分合并在一起:一个演员actor)和一个评论家critic)。演员负责决定输出策略,并负责确定动作的选择;评论家则负责评估某个策略的好坏,并给演员提供反馈信号。 在PPO中,演员通过多次迭代来更新策略。它会收集一些经验样本,然后使用这些样本来近似计算策略的优化目标函数,并使用梯度下降来调整策略参数。该优化目标函数通常是指向增加总体预期奖励的方向。然而,PPO还引入了一些额外的技巧来确保策略更新的稳定性。 评论家的角色是估计策略的好坏,并生成一个值函数,用于评估策略的预期回报。这个值函数可以用来计算优势函数,即当前策略相对于基线策略的预期回报差异。然后,这些优势函数通常用来计算策略梯度。 综合来说,PPO actor-critic算法的工作方式是通过演员来生成动作策略,评论家用于估计这些策略的好坏,然后根据优势函数来进行梯度更新;此外,PPO采用了一些技术来增加算法的稳定性,避免策略更新过大。这使得PPO算法成为一个在实践中非常有效的强化学习算法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件工程小施同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值