一文读懂 深度强化学习算法 A3C (Actor-Critic Algorithm)
2017-12-25 16:29:19
对于 A3C 算法感觉自己总是一知半解,现将其梳理一下,记录在此,也给想学习的小伙伴一个参考。
想要认识清楚这个算法,需要对 DRL 的算法有比较深刻的了解,推荐大家先了解下 Deep Q-learning 和 Policy Gradient 算法。
我们知道,DRL 算法大致可以分为如下这几个类别:Value Based and Policy Based,其经典算法分别为:Q-learning 和 Policy Gradient Method。
而本文所涉及的 A3C 算法则是结合 Policy 和 Value Function 的产物,其中,基于 Policy 的方法,其优缺点总结如下:
Advantages:
1. Better convergence properties (更好的收敛属性)
2. Effective in high-dimensional or continuous action spaces(在高维度和连续动作空间更加有效)
3. Can learn stochastic policies(可以Stochastic 的策略)
Disadvantages:
1. Typically converge to a local rather than global optimum(通常得到的都是局部最优解)
2. Evaluating a policy is typically inefficient and high variance (评价策略通常不是非常高效,并且有很高的偏差)
我们首先简要介绍一些背景知识(Background):
在 RL 的基本设置当中,有 agent,environment, action, state, reward 等基本元素。agent 会与 environment 进行互动,而产生轨迹,通过执行动作 action,使得 environment 发生状态的变化,s -> s' ;然后 environment 会给 agent 当前 动作选择以 reward(positive or negative)。通过不断的进行这种交互,使得积累越来越多的 experience,然后更新 policy,构成这个封闭的循环。为了简单起见,我们仅仅考虑 deterministic environment,即:在状态 s 下,选择 action a 总是会得到相同的 状态 s‘。
为了清楚起见,我们先定义一些符号:
1. stochastic policy $\pi(s)$ 决定了 agent's action, 这意味着,其输出并非 single action,而是 distribution of probability over actions (动作的概率分布),sum 起来为 1.
2. $\pi(a|s)$ 表示在状态 s 下,选择 action a 的概率;
而我们所要学习的策略 $\pi$,就是关于 state s 的函数,返回所有 actions 的概率。
我们知道,agent 的目标是最大化所能得到的奖励(reward),我们用 reward 的期望来表达这个。在概率分布 P 当中,value X 的期望是:
其中 Xi 是 X 的所有可能的取值,Pi 是对应每一个 value 出现的概率。期望就可以看作是 value Xi 与 权重 Pi 的加权平均。
这里有一个很重要的事情是: if we had a pool of values X, ratio of which was given by P, and we randomly picked a number of these, we would expect the mean of them to be . And the mean would get closer to
as the number of samples rise.
我们再来定义 policy