第七篇:简单介绍AC(演员-评论家算法)

深度强化学习

第七篇:简单介绍AC(演员-评论家算法)

提纲

  • 什么是AC算法?
  • AC算法的细节

内容

🙋 三种算法比较

  • 基于数值的方法(Q-learning,Deep Q-learning):该方法是学习一个值函数,该值函数将每组状态、动作映射到一个数值。多亏了这个方法, 可以找到了每个状态的最佳行动 - 具有最大Q值的行动。当行动个数有限时,该方法很有效。
  • 基于策略函数的方法(策略梯度方法之REINFORCE 算法):我们不使用值函数,而直接优化策略。当动作空间是连续的或随机时,这很有效。该方法的主要问题是找到一个好的评分函数来计算策略的好坏程度。我们使用episode的总奖赏作为评分函数(每个Episode中获得的奖励之和)。
  • AC算法是以上两种算法的混合。这种方法将用到两个神经网络:一个是衡量所采取的行动的好坏的评价器(critic)(基于值函数);另一个是控制智能体行为方式的行动者(actor)(基于策略)

🙋 策略梯度存在的问题

  • 策略梯度法有一个很大的问题是,当使用蒙特卡洛策略梯度方法时,会等到整个情景episode结束后计算奖励。据此可以得出结论,若结果回报值很高R(t),整个情景中所做的行动都被是指定为是有利的(行动),即使有些行动非常糟糕。因此,学习模型要获得最优策略,就需要大量样本。因此导致训练过程耗时,因为这需要花费大量的时间来收敛loss函数。

🙋 Actor Critic算法细节

  • 区别于策略梯度,AC算法在每个步骤进行更新(即时序差分学习,TD),而非等到episode结束后才更新。
  • 对比如下
  • 两个神经网络,两个模型同时运行

    💪 ACTOR:控制智能体行为的策略函数

💪 CRITIC:一个衡量这些行为好坏程度的值函数

  • 优化两组权重(用于行动的和用于评论的

    💪 Policy Update

    💪 Value Update

🙋 AC算法过程

  • 每个step,从环境中获得当前状态,将其作为输入传到模型中,策略模型根据状态输出一个行动,并再接收一个新状态和奖励,评论家模型计算当前状态下采用某行动的得分Q,表演者模型使用这个Q值更新自身的策略权重。

🙋 重回顾优势函数Advantage function

💭 这里的是当前状态的平均值。

优势函数的目的是,使用动作值函数减去了对应状态拥有的基准值,是指变为动作带来的增益,从而降低因状态基准值的变化引起的方差。

💪 梯度前进方向

🍄 如果A(s,a)>0,梯度讲朝梯度的方向更进一步;反之,朝相反方向更进一步,说明当前行动没有优势,优势为负。

💪 实现:

使用差分时间序列误差TD error作为该优势函数的(无偏)估计。