OAC
2020-12-15 本文已影响0人
臻甄
OAC:Optimistic Actor-Critic
原文:《Better Exploration with Optimistic Actor-Critic》 NIPS 2019
代码:https://github.com/microsoft/oac-explore
先复习一下DQN、DDPG、PPO、SAC 这几种基础方法的比较
OAC目标
- 对Actor-Critic算法的改进,提高model-free在连续控制任务熵的探索
现有问题
- 现有的TD3和SAC优点:为了避免过估计使用双Q计算近似下界,再通过Actor的贪婪探索来最大化这个下界,更新的稳定性高且允许用较大的learning rate
- 现有的TD3和SAC缺点:当Critic估计和真实Q相差较远的时候探索效率低,难以被广泛采用,原因有二
(1)悲观的不探索现象 pessimistic underexploration:Critic用双Q估计,较为悲观,如果下界是错的,Actor更新又是贪婪的,方差会降低,所以agent不会轻易选择不熟悉的action,探索效率低。
(2)方向的未知性 directional uninformedness:action在探索泛化的时候总是用相同的概率在当前值高低两个方向去采样action,探索效果比较浪费,因为action space中和当前策略相近的区域可能已经探索过,不需要更多的样本。 - OAC的解决方案:用两个一高一低的置信区间去估计Q(s,a),高的用于指导探索,低的用于防止过拟合。
-
结果:文章实验证明,OAC可以提高Policy Gradient算法的采样效率,同时不增加额外计算负担。
两个问题 - 如图,黑线是真实Q,红线是双Q的下界,策略policy会寻找一个最优策略μ来找到红线的上界。但是策略的变化往往容易从最开始的π_past发展到现在π_current,以为找到了最优策略可以最大化Q,但其实Q红线预估不准确,真正的Q是黑线,但左边区域又没有被充分的探索,所以导致次优结果。
OAC算法
- 用乐观准则,刚开始的时候认为所有状态下的所有动作都能返回最大奖励,所以策略是去最大化critic的置信上界,策略探索方差就不会被限制,探索空间增大就不会重复探索相同区域导致浪费。
- off-policyde deadly triad:因为引入值函数估计,训练不稳定,OAC增加target policy和探索policy之间的KL约束来实现稳定性
- 和TD3以及SAC类似,OAC使用Critic置信下界来更新target Q,减轻过估计
先介绍现有AC算法的更新方式
- 双Q获取Critic的上界和下界
- 参数化的策略使用策略梯度来最大化目标函数,为了提供正则并鼓励探索行为,通常会使用增加了熵项的策略梯度
解决现有AC算法的低效探索
- TD3和SAC都是依靠双Q的下界来探索policy。通过贪心的决定最大的下界,策略在接近最大值时变得非常稠密。当critic和最大值不准确时,会对算法性能造成影很大影响。
- OAC的探索策略是探索一个高斯分布,学习方差和均值,使得Figure1中的探索更充分一些,不会只探索π_past到π_current附近的动作。探索策略定义为
OAC的推导
- 文章的第四部分描述了OAC
4.1节给出上界
4.2讨论产生的关于高斯策略的优化问题,尤其是KL约束的使用
4.3讨论OAC算法并且概述他是怎么减轻悲观次探索和定向不平均问题,同时维持着学习的稳定性
4.4比较OAC和相关工作。文章也在附录给出了OAC的确定性策略版本。
OAC伪代码
OAC实验
- MujoCo实验和SAC、TD3、DDPG的对比
- 消融实验:验证bootstrapped uncertainty estimate和KL散度的必要性
- 稳定性实验:和SAC一样。
参考
https://zhuanlan.zhihu.com/p/103452743
https://zhuanlan.zhihu.com/p/110617044