第九章 演员-评论员算法¶
关键词¶
-
优势演员-评论员(advantage actor-critic,A2C)算法:一种改进的演员-评论员(actor-critic)算法。
-
异步优势演员-评论员(asynchronous advantage actor-critic,A3C)算法:一种改进的演员-评论员算法,通过异步的操作,实现强化学习模型训练的加速。
-
路径衍生策略梯度(pathwise derivative policy gradient):一种使用Q学习来求解连续动作的算法,也是一种演员-评论员算法。其会对演员提供价值最大的动作,而不仅仅是提供某一个动作的好坏程度。
习题¶
9-1 完整的优势演员-评论员算法的工作流程是怎样的?
在传统的方法中,我们有一个策略
其中
9-2 在实现演员-评论员算法的时候有哪些技巧?
(1)预估两个网络:一个是价值网络;另外一个是策略网络。价值网络的输入是一个状态,输出是一个标签;策略网络的输入是一个状态,输出是一个动作的分布。这两个网络中,演员和评论员的输入都是状态,所以它们前面几层是可以共享的。例如,玩雅达利游戏时,输入都是图片。输入的图片都非常复杂,且比较大,通常前期我们都会用一些卷积神经网络来处理这些图片,把图片抽象成深层次的特征,这些网络对演员与评论员网络来说是可以共用的。我们可以让演员与评论员的前面几层共用同一组参数,这一组参数可能是卷积神经网络中的参数。先把输入的像素变成比较高维度的特征信息,然后输入演员网络决定要采取什么样的动作,评论员网络使用价值函数计算期望奖励。
(2)探索机制:其目的是对策略
9-3 异步优势演员-评论员算法在训练时有很多的进程进行异步的工作,最后再将他们所获得的“结果”集合到一起。那么其具体是如何运作的呢?
异步优势演员-评论员算法,即算法一开始会有一个全局网络,其包含策略部分和价值部分。假设它的参数是
9-4 对比经典的Q学习算法,路径衍生策略梯度有哪些改进之处?
(1)把
(2)经典的Q学习算法计算在
(3)经典的Q学习算法只需要学习Q函数,路径衍生策略梯度需要多学习一个策略
(4)与原来的Q函数一样,我们要把目标Q网络取代掉,路径衍生策略梯度中也要把目标策略取代掉。
面试题¶
9-1 友善的面试官:请简述一下异步优势演员-评论员算法(A3C),另外A3C是同策略还是异策略的模型呀?
A3C是异步优势演员-评论员算法,其中,评论员学习价值函数,同时有多个演员并行训练并且不时与全局参数同步。A3C旨在并行训练,是同策略算法。
9-2 友善的面试官:请问演员-评论员算法有何优点呢?
(1)相比以价值函数为中心的算法,演员-评论员算法应用了策略梯度的技巧,这能让它在连续动作或者高维动作空间中选取合适的动作,而Q学习做这件事会很困难。
(2)相比单纯策略梯度,演员-评论员算法应用了Q学习或其他策略评估的做法,使得演员-评论员算法能进行单步更新而不是回合更新,比单纯的策略梯度的效率要高。
9-3 友善的面试官:请问异步优势演员-评论员算法具体是如何异步更新的?
下面是异步优势演员-评论员算法的大纲,由于其为异步多线程算法,我们只对其中某一单线程进行分析。
(1)定义全局参数
(2)初始化时间步
(3)当
-
重置梯度:
并且 。 -
将特定于线程的参数与全局参数同步:
以及 。 - 令
并且随机采样一个初始状态 。 - 当 (
终止状态)并且 。- 根据当前线程的策略选择当前执行的动作
,执行动作后接收奖励 然后转移到下一个状态 。 - 更新
以及 : 并且 。
- 根据当前线程的策略选择当前执行的动作
- 初始化保存累积奖励估计值的变量。
- 对于
: ;这里的 是 的蒙特卡洛估计。- 累积关于参数
的梯度: 。 - 累积关于参数
的梯度: 。
- 分别使用
以及 异步更新 以及 。
9-4 友善的面试官:演员-评论员算法中,演员和评论员两者的区别是什么?
演员是策略模块,输出动作;评论员是判别器,用来计算价值函数。
9-5 友善的面试官:演员-评论员算法框架中的评论员起了什么作用?
评论员衡量当前决策的好坏。结合策略模块,当评论员判别某个动作的选择是有益的时候,策略就更新参数以增大该动作出现的概率,反之减小该动作出现的概率。
9-6 友善的面试官:简述异步优势演员-评论员算法的优势函数。
优势函数的计算公式为
(1)如果
(2)如果
这样就需要两个价值函数,所以可以使用时序差分方法做误差估计: