ACER算法是在论文SAMPLE EFFICIENT ACTOR-CRITIC WITH EXPERIENCE REPLAY中提出的一种可以使用off-policy训练的置信域策略优化方法。

ACER的目标是解决on-policy算法样本利用效率低的问题,主要有三个技术:

  1. 截断重要性采样,控制方差的同时保证了无偏性;
  2. stochastic dueling network,SDN,用于连续动作控制算法值函数估计;
  3. 一种新的置信域方法,计算简单,适合大规模问题;

以下分为离散动作和连续动作分别具体介绍算法。

1. 离散动作

1.1 截断重要性采样

off-policy的优化目标可以用gmarging^{margin}表示:
ACER算法介绍
但是重要性采样系数ρt\rho_t可能很大,导致方差大、训练不稳定,为此将ρt\rho_t进行截断,把大于c的部分提出来,得到两项,后一项巧妙的将动作分布修改为当前策略的分布,为后一项系数带来分母ρt\rho_t。新的优化目标有以下特点:

  1. 前一项系数有最大值c,后一项系数最大值趋于1,这样两项产生的方差都可控,且优化目标无偏;
  2. 前一项使用历史数据计算,后一项需要根据当前策略采样计算;

我们使用retrace方法估计的Q值代替第一项中的Q,使用值函数估计代替第二个Q,并分别减去状态值函数减少方差,得到最终ACER优化目标:
ACER算法介绍
式子中当C->∞时,相当于使用retrace的off-policy策略梯度更新,当c=0时,相当于Actor-Critic更新,当c不为0的时候相当于介于off-policy和on-policy之间的更新。

1.2 新的置信域方法

TRPO更新需要不断计算Fisher向量乘法,难以应用到大规模问题中。ACER使用移动平均保持一个平均策略θ:θaαθa+(1α)θθ: θ_a ← αθ_a + (1 − α)θ,保证每次更新不偏离平均策略太远,这样KL散度的变化是一个一阶项,是一个二次规划问题,可以直接求出最优解,计算方便。
ACER算法介绍
算法伪代码:ACER算法介绍
需要注意的点:

  1. 算法首先on-policy地采样(存数据到buffer)并训练,然后多次从buffer中采样off-policy训练,off-policy训练的次数将在实验中进行讨论;
  2. sample的trajectory是有顺序的,不是完全的DQN类似的随机采样;
  3. 状态值函数通过当前策略下的动作值函数期望计算V(s)=Eaπ[Q(s,a)]V(s)=E_{a - \pi}[Q(s,a)]
  4. 把retrace作为动作值函数网络的target更新动作值网络;
  5. Qretrace更新拆为了两步,实际上和retrace公式等价,先将后面t+1的项加上再加前面的rt:
    ACER算法介绍
  6. 由于需要历史数据的策略分布,因此在存数据的时候需要存策略分布参数。

1.3 离散算法Atari实验

ACER算法介绍
左边是表现分数随训练步数的变化,右边是表现分数随时间的变化,实线、虚线分别表示有无新置信域更新方法的实验结果。结果显示ACER表现随off-policy的经验回放操作次数增加而增加,达到相同表现的样本利用率更高,并且接近Prioritized DQN的结果。

2 连续动作

2.1 stochastic dueling network

连续动作的问题是不能通过动作值函数的期望来求状态值函数(下式),因为动作a无穷多。
ACER算法介绍
于是论文提出Stochastic Dueling Networks (SDNs)技术,使用状态值函数和优势函数计算Q,其中为防止网络输出优势函数A的期望不为0,需要减去A的期望,由于动作无穷多,我们通过采样计算均值来估计A的期望。这个方法对于每个时刻的输出是V(st)V(s_t)Q(st,at)Q(s_t,a_t)。公式和网络结构如下图所示:
ACER算法介绍ACER算法介绍
需要注意的点:

  1. 在计算目标函数g的时候,第一项使用QopcQ_{opc}而非QretQ_{ret},论文中解释尽管QopcQ_{opc}没有QretQ_{ret}稳定,但是能减少更好的利用累计奖励值,因为没有被重要性系数截断,实验中速度也更快;
  2. g的第2项也没有多次采样取均值,可能方差会变大;

3 总结

ACER为了利用历史数据使用了多项技术,整体算法较为复杂,但是基本思想还是能够理解。我对retrace这项技术理解还不到位,希望能够得到指正。

相关文章:

  • 2021-11-01
  • 2021-07-03
  • 2021-06-14
  • 2021-11-11
  • 2021-05-18
  • 2021-10-26
  • 2021-04-10
猜你喜欢
  • 2021-11-30
  • 2021-12-05
  • 2021-08-09
  • 2021-05-20
  • 2021-08-19
  • 2021-07-05
  • 2021-10-06
相关资源
相似解决方案