强化学习---A3C
Asynchronous Advantage Actor-Critic (A3C)
在RL任务中,我们本质上最终要学习的是策略(Policy)
value-based方法:间接方法,即通过学习值函数(value function)或者动作值函数(action-value function)来得到policy。
policy-based方法:直接对policy进行建模和学习,因此后者也称为policy optimization。
Policy-based方法
gradient-based方法--(policy gradient(PG))---finite difference,Monte-Carlo和Actor-Critic等
gradient-free方法。
Actor-Critic(AC)方法其实是policy-based和value-based方法的结合。因为它本身是一种PG方法,同时又结合了value estimation方法,所以有些地方将之归为PG方法的一种,有些地方把它列为policy-based和value-based以外的另一种方法,都好理解。在AC框架中,actor负责policy gradient学习策略,而critic负责policy evaluation估计value function。可以看到,一方面actor学习策略,而策略更新依赖critic估计的value function;另一方面critic估计value function,而value function又是策略的函数。Policy和value function互为依赖,相互影响,因此需要在训练过程中迭代优化。这种多元优化的迭代思想其实在机器学习中有很多体现。
A3C
的算法实际上就是将 Actor-Critic
放在了多个线程中进行同步训练. 可以想象成几个人同时在玩一样的游戏, 而他们玩游戏的经验都会同步上传到一个中央大脑. 然后他们又从中央大脑中获取最新的玩游戏方法.
这样, 对于这几个人, 他们的好处是: 中央大脑汇集了所有人的经验, 是最会玩游戏的一个, 他们能时不时获取到中央大脑的必杀招, 用在自己的场景中.
对于中央大脑的好处是: 中央大脑最怕一个人的连续性更新, 不只基于一个人推送更新这种方式能打消这种连续性. 使中央大脑不必有用像 DQN
, DDPG
那样的记忆库也能很好的更新.