深度强化学习
第七篇:简单介绍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作为该优势函数的(无偏)估计。