Reinforcement Learning中的 AC 和 A3C 总结

Reinforcement Learning中的 AC 和 A3C 总结

Sih对AC,A3C的总结。

Actor Critic在RL中的位置:

RL 按照value和policy分类:

  • Value-Based:是预测某个state下所有Action的期望价值(Q值),之后通过选择最大Q值对应的Action执行策略,适合仅有少量离散取值的Action的环境
  • Policy-Based:是直接预测某个state下应该采取的Action,适合高维连续Action的环境,更通用

按照model-basedmodel-free来分类:

  • model-based:根据state和采取的action预测接下来的state,并利用这个信息训练强化学习模型(知道状态的转移概率)
  • model-free:不需要对环境状态进行任何预测,也不考虑行动将如何影响环境,直接对策略或action的期望价值进行预测,计算效率非常高

回顾:

Value-Based & model-free

神经网络近似动作-值函数:使用参数 $\theta$ 来对动作-值函数进行近似$Q(s,a,\theta)$

  • ​ One-step Q-learning:
  • n-step Q-Learning:

one-step缺点:得到一个奖励r仅仅直接影响了得到该奖励的状态总做对(s,a)的值。其他state action pair的值仅仅间接的通过更新value Q(s,a)来影响,这使得学习过程缓慢,因为许多更新都需要传播一个reward给相关进行的states和actions。

n-step优点:一个奖励r直接影响先前n个state action pair,学习更有效。

tips:

  • 动作-值函数:

  • 状态价值函数:

Policy-Based & model-free

直接将策略参数化:$\pi(a|s;\theta)$ ,通过迭代更新$\theta$,使总奖励期望 $E[R_t]$ 梯度上升

AC

一句话概括 Actor Critic 方法:

强化学习的分类可以分为以值函数为中心的和以策略为中心的算法,交叉部分就是actor-critic。

结合了 Policy Gradient (Actor) 和 Function Approximation (Critic) 的方法. Actor 基于概率选行为, Critic 基于 Actor 的行为评判行为的得分, Actor 根据 Critic 的评分修改选行为的概率(即策略).

Actor-Critic的形象解释为:演员在演戏的同时有评论家指点。这样演员就会演得越来越好。同时专家也在不断进步,也就是对演员的动作评价的更加的准确,共同进步,使得效果越来越好。

基于Actor-Critic策略梯度学习分为两部分内容:

  1. Critic:参数化动作价值函数 $Q_w(s, a)$

  2. Actor:按照Critic部分得到的价值引导策略函数参数 $\theta $ 的更新。

Critic做的事情:策略评估,他要告诉个体,在由参数 $\theta$ 确定的策略 $\pi_{\theta}$ 到底表现得怎么样。

Actor Critic 方法的优势:

可以进行单步更新, 比传统的 Policy Gradient 要快.(sih: PG是回合更新)

Actor Critic 方法的劣势:

取决于 Critic 的价值判断, 但是 Critic 难收敛, 再加上 Actor 的更新, 就更难收敛. 为了解决收敛问题, Google Deepmind 提出了 Actor Critic 升级版 Deep Deterministic Policy Gradient. 后者融合了 DQN 的优势, 解决了收敛难的问题. Deep Deterministic Policy Gradient (DDPG) 就是以 Actor Critic 为基础.

具体算法

① 中,$\pi(a|s;\theta)$ 表示在st,θ的情况下选择动作atat的概率。概率的对数乘以该动作的总奖励$R_t$,对$θ$求梯度,以梯度上升的方式更新$θ$。该公式的意义在于,奖励越高的动作, 越努力提高它出现的概率

但是在某些情况下,每个动作的总回报Rt都不为负,那么多有的梯度值都大于等于0,此时每个动作出现的概率都会提高,这在很大程度上减缓了学习的速度,而且使得梯度的方差也很大。因此需要对$R_t$ 使用某种标准化操作来降低梯度的方差。

② 中,可以让$R_t$减 去一个基线b(baseline),b通常设为$R_t$ 的一个期望估计,即$b_t(s_t) \approx V^\pi(s_t)$,通过求梯度更新θ,总奖励超过基线的动作的概率会提高,反之则降低,同时块还可以降低梯度方差(证明略)。这种方式被叫做Actor-Critic体系结构,其中策略π是actor,基线$b_t$是critic。

③中,$R_t - b_t(s_t)$可以使用动作优势函数$A^\pi(a_t,s_t) = Q^\pi(a_t,s_t) - V^\pi(s_t)$代替,因为$R_t$ 可以视为$A^\pi(a_t,s_t) = Q^\pi(a_t,s_t) - V^\pi(s_t)$的估计,基线$b_t(s_t)$视为$V^\pi(s_t)$的估计。

A3C

A3C-Asynchronous Advantage Actor-Critic

将AC放到多个线程中同步训练,可以有效的利用计算机资源,提升训练效用。简单概括,就是:它会创建多个并行的环境,让多个拥有副结构的agent同时在这些并行环境上更新主结构中的参数。并行中的agent们互不干扰,而主结构的参数更新受到副结构提交更新的不连续性干扰,所以更新的相关性被降低,收敛性提高。

A3C解决了Actor-Critic难以收敛的问题,同时更重要的是,它提供了一种通用的异步的并发的强化学习框架,这个框架不止可以用于A3C,还能应用于其他的强化学习算法。

A3C的更新公式有两条,一条梯度上升更新策略$\pi$ 的参数,如前面介绍的actor-critic结构:

其中,$A(s_t,a_t;\theta’,\theta’_v)$是优势函数的估计(算法中表示为$R-V(s_i;\theta’_v))$):

$\theta’$是策略$\pi$ 的参数,$\theta’_v$是状态值函数的参数。k是可以变化的,上届由n-step决定,即n。

在实际操作中,论文在该公式中加入了策略$\pi$ 的熵项$\beta\nabla_{\theta’}H(\pi(s_t;\theta’)))$,防止过早的进入次优策略。

另一条公式是使用TD方式梯度下降更新状态值函数的参数,即算法中的$\partial (R-V(s_i;\theta’_v))^2 / \partial\theta’_v$.

未完待续…

Reference:

[1] A3C 总结 https://zhuanlan.zhihu.com/p/32596470

[2] Asynchronous Methods for Deep Reinforcement Learning

[3] A3C阅读笔记https://ldgyyf.cn/2019/08/05/%E8%AE%BA%E6%96%87/%E6%B7%B1%E5%BA%A6%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/DRL%E8%AE%BA%E6%96%87%E9%98%85%E8%AF%BB%EF%BC%88%E4%B9%9D%EF%BC%89%E4%B9%8BA3C%E7%AE%97%E6%B3%95/

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×