从 "reward to go" 到 Actor Critic
回顾一下REINFORCE算法
其中reward to go 为
但这个reward to go有什么缺点呢?实际上这个reward to go只是估计了单个轨迹从开始的累积奖励,并不是一个期望的概念,因此方差较大。
那么应该如何改进以降低方差呢?
实际上我们希望理想的reward to go是
如果我们知道,那么策略梯度便是:
在上一节我们还讲到了应该添加一个baseline,以评估当前轨迹的累积奖励就平均而言有多好,因此添加了baseline的策略梯度是:
那么这个baseline如何决定呢?因为我们使用的是,那么理所应当减去的也应该是 。因此,最终Actor Critic的策略梯度为:
接下来我们要做的便是如何得到?
如何估计 advantage?
为了得到 advantage,我们可以直接拟合 ,但是通常不这么做,因为如果我们 具有下面的关系:
于是,advantage 可以通过这种方式近似求出:
这样 只是 的函数,而 是 的函数,所以如果拟合 ,参数更少,更容易拟合,也更方便。
所以基于上面的分析,我们的思路是这样的:我们有一个神经网络,输入是 , 输出是 ,下面就是如何训练这样一个神经网络。
Policy evaluation
进行policy evaluation 有两种方式,一种是Monte Carlo,另一种是temporal difference。
Monte Carlo Evaluation
接下来就是如何拟合,这个步骤称之为 Policy evaluation,因为这个网络做的是给定一个s,输出,我们不考虑 Policy Improvement步骤。下面是 的定义:
如果我们拟合得到了 ,那么根据RL目标函数的定义 ,我们也顺便得到了目标函数的表达式,岂不美哉?
那么如何获得训练目标数据呢?可以有下面两种方式:
第二种方式明显更好一点,其方差更小,但是其要求环境能够重置到特定的状态来进行采样。
于是我们的训练数据和损失函数就可以表达为:
Temporal Difference
下面对我们的真实标签 进行近似:
所以,进行了上面的两层近似,我们还可以使用 作为真实标签的近似,因此我们的训练数据如下:
这种方式也叫做 bootstrapped estimate。
总结一下,最终的 Batch Actor-Critic algorithm 如下:
- (MC or Bootstrap)
discont factors
如果 T 是无穷大,那 就会变得无穷大,一种方法就是引入折扣因子 ,那么
注意到 ,而当我们加上 之后,,因此可以认为添加了一个以概率 进入的死亡状态 ,进入死亡状态就没有奖励了。因此可以认为 没有改变MDP框架,只是改变了环境的转移概率 。
gamma.png-
option 1:
-
option 2:
option1 只对后面的奖励进行了折扣,option2不仅对奖励进行折扣,对梯度也进行了折扣。option1是我们在实际中使用的,option2的直觉含义是说:如果你遇到了死亡状态,那么后面的steps就不重要了。
Actor-critic Algorithm design
- (MC or Bootstrap)
- .
但是这里的online actor-critic在实际中使用还有一些问题。方差大
Architecture design
实现actor-critic的网络架构有两种:
-
分别使用两个网络,容易训练一点,不需要调很多参数,但是比较慢。!
-
使用共享的网络,这样如果输入的state是图像的话,可以共享某些特征信息。但是训练起来比较困难,因为共享网络存在两种梯度,分别对应于不同的单元。所以想让网络的更新稳定一些,需要在调参上多下功夫,例如网络参数的初始化以及学习率的设置上。
Lower the variance of online actor-critic algorithm
- .
online actor-critic 的一个缺点就是在对 做更新的时候使用的是单个样本,因此方差较大。所以一种改善的方法就是构造更大的batch。有两种方式:
- 左图中表示同时有4个并行的进程同时采样,每次得到batch size=4个,然后分别计算4个梯度并相加,用来更新,注意这种同步采样,同步更新参数。
- 右图表示有3个异步的进程,每次计算完梯度,送到一个central parameter server,然后central parameter server累积一定timesteps的梯度,然后再更新参数,接着把新参数送给每一个进程。
Critics as state-dependent baselines
现在总结一下,我们讨论了actor-critic,并将其与policy gradient相比较:
- actor-critic
- low variance
- biased (if the critic is not perfect)
- policy gradient
- high variacne
- no bias
- Better version
- no bias
- low variance
Eligibility trances & n-step returns
下面的两种方式各有特点,并且优缺点互补,那么就很自然会去想能够将这两种方式结合起来,实现bias和variance之间的一种权衡?
-
- lower variance
- higher bias if value is wrong(it always is)
-
- no bias
- higher variance
-
- 样本轨迹的前几个timestep的方差较小,越往后越大
- 这样就和之前学习的MC的variance比较大,但是unbiased;而TD的variance比较小,但是biased。所以使用n-step return进行估计,实现bias和variance的一个平衡。
- discount的一个作用就是降低variance,因为越将来的奖励是越不确定的,而gamma正好降低了其重要性。
Generalized advantage estimation
从 到 bias 越来越小,但是variance越来越大。现在给每一个 加上一个权重 ,就得到
网友评论