强化学习(十四) Actor-Critic

  在强化学习(十三) 策略梯度(Policy Gradient)中,我们讲到了基于策略(Policy Based)的强化学习方法的基本思路,并讨论了蒙特卡罗策略梯度reinforce算法。但是由于该算法需要完整的状态序列,同时单独对策略函数进行迭代更新,不太容易收敛。

    在本篇我们讨论策略(Policy Based)和价值(Value Based)相结合的方法:Actor-Critic算法。

    本文主要参考了Sutton的强化学习书第13章和UCL强化学习讲义的第7讲。

1. Actor-Critic算法简介

    Actor-Critic从名字上看包括两部分,演员(Actor)和评价者(Critic)。其中Actor使用我们上一节讲到的策略函数,负责生成动作(Action)并和环境交互。而Critic使用我们之前讲到了的价值函数,负责评估Actor的表现,并指导Actor下一阶段的动作。

    回想我们上一篇的策略梯度,策略函数就是我们的Actor,但是那里是没有Critic的,我们当时使用了蒙特卡罗法来计算每一步的价值部分替代了Critic的功能,但是场景比较受限。因此现在我们使用类似DQN中用的价值函数来替代蒙特卡罗法,作为一个比较通用的Critic。

    也就是说在Actor-Critic算法中,我们需要做两组近似,第一组是策略函数的近似:πθ(s,a)=P(a|s,θ)π(a|s)

    第二组是价值函数的近似,对于状态价值和动作价值函数分别是:ˆv(s,w)vπ(s)ˆq(s,a,w)qπ(s,a)

     对于我们上一节讲到的蒙特卡罗策略梯度reinforce算法,我们需要进行改造才能变成Actor-Critic算法。

    首先,在蒙特卡罗策略梯度reinforce算法中,我们的策略的参数更新公式是:θ=θ+α

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信