深度强化学习实现全家桶

2019 年 6 月 14 日 CVer

点击上方“CVer”,选择加"星标"或“置顶”

重磅干货,第一时间送达

作者:董豪

https://zhuanlan.zhihu.com/p/68950847

本文已授权,未经允许,不得二次转载

近日,TensorFlow 2.0 Beta版本发布,预示着终版API基本定型。我们搭配TensorLayer2.0实现了全套深度强化学习(Deep Reinforcement Learning)算法教程供大家参考。如果你有什么需要,欢迎在Slack中给我们留言。

简介:

强化学习的过程是智能体通过与环境交互,不断试错并提升决策能力的过程。通过观察状态,执行动作并获得回报,智能体根据某种学习方法不断进步并习得最优决策。深度强化学习是指将深度神经网络与强化学习相结合,利用神经网络的拟合能力和强化学习的决策能力,在广泛的任务上取得了优异的效果。强化学习算法可以分为on-policy/off-policy,model-free/model-based,value-based/policy-based等。这里我们按照value-based/policy-based的方式进行分类,如下图所示。

Li Y . Deep Reinforcement Learning: An Overview[J]. 2017

纯value-based方法主要包括TD-learning、Q-learning、SARSA等,其与深度学习结合的算法主要为DQN及各种变体。这类方法的基本思路是建立值函数的线性或非线性映射,先评估值函数,再改进当前策略。这类方法的优点在于样本利用效率高,值函数估计方差小,不易陷入局部最优。但其缺点在于其动作空间通常为离散空间,连续空间通常无能为力,且epsilon-greedy策略容易出现过估计的问题等。

这里我们实现了DQN以及一系列的改进算法:Prioritized Experience Replay根据TD偏差给经验赋予权重提升学习效率;Dueling DQN改进网络结构,将动作值函数分解为状态值函数V和优势函数A,提升函数逼近效果;Double DQN将动作选择和动作评估用不同参数实现,解决过估计问题;Retrace 修正Q值的计算方法,减小值估计的方差;Noisy DQN给网络参数添加噪声,增加探索度;Distributed DQN将Q值的估计细化为Q分布的估计。

纯policy-based方法主要包括policy gradient、trust region、evolution等。其中policy gradient和trust region基于梯度的方法,evolution是无梯度方法。这类方法通过直接对策略进行迭代计算,迭代更新策略参数知道累积回报最大化。这类方法相比纯value-based方法,其策略参数化简单,收敛性质更好,且适用于离散和连续的动作空间。其缺点在于轨迹方差大,样本利用效率低且易收敛到局部最优等。

这里我们实现了PG、TRPO、PPO等算法。其中TRPO和PPO在PG的基础上对更新步长作了约束,防止出现policy collapse的情形,使得算法更加稳定的上升。

Actor-critic方法结合了value-based方法和policy-based方法的优点,利用value-based方法训练Q函数提升样本利用效率,利用policy-based方法训练策略,适用于离散和连续动作空间。可以将这类方法看作value-based方法在连续动作空间上的扩展,也可以看作policy-based方法对减少采样方差的改进。这类方法虽然吸收了二者的优点,同时也继承了相应的缺点,例如critic同样存在过估计问题,actor存在探索不足的问题等。

这里我们实现了AC算法及其一系列改进:A3C将AC算法作到异步并行,打乱数据间相关性,提升数据收集和训练速度;DDPG继承DQN的target network,actor为确定性策略,训练更加稳定简单;TD3引入Double DQN的方式和延迟更新策略,解决过估计问题;SAC在Q值估计中引入熵正则化,提升探索能力。

此外,还有最大熵方法和策略/值迭代等方法。例如SAC便是actor-critic与最大熵的结合,value-based和policy-based方法里也包含策略/值迭代的思想。具体算法和相关信息见下表:

Value-based 系列:

Policy-based 系列:

Actor-critic 系列:

作者:@丁子涵@initial-h@TY2017@黄彦华@董豪

我们承诺将持续开源最新深度学习和深度强化学习算法,如果您有什么需要,欢迎到Slack中讨论。

代码链接:https://github.com/tensorlayer/tensorlayer/tree/master/examples/reinforcement_learning

讨论链接:

https://tensorlayer.slack.com/join/shared_invite/enQtMjUyMjczMzU2Njg4LWI0MWU0MDFkOWY2YjQ4YjVhMzI5M2VlZmE4YTNhNGY1NjZhMzUwMmQ2MTc0YWRjMjQzMjdjMTg2MWQ2ZWJhYzc


CVer-强化学习交流群


扫码添加CVer助手,可申请加入CVer-强化学习群。一定要备注:研究方向+地点+学校/公司+昵称(如强化学习+上海+上交+卡卡)

▲长按加群


这么硬的干货分享,麻烦给我一个在在看


▲长按关注我们

麻烦给我一个在看

登录查看更多
1

相关内容

深度强化学习 (DRL) 是一种使用深度学习技术扩展传统强化学习方法的一种机器学习方法。 传统强化学习方法的主要任务是使得主体根据从环境中获得的奖赏能够学习到最大化奖赏的行为。然而,传统无模型强化学习方法需要使用函数逼近技术使得主体能够学习出值函数或者策略。在这种情况下,深度学习强大的函数逼近能力自然成为了替代人工指定特征的最好手段并为性能更好的端到端学习的实现提供了可能。
【IJCAI2020-华为诺亚】面向深度强化学习的策略迁移框架
专知会员服务
27+阅读 · 2020年5月25日
《强化学习》简介小册,24页pdf
专知会员服务
272+阅读 · 2020年4月19日
最新《经济学中的强化学习》2020大综述,42页pdf128篇文献
【综述】自动驾驶领域中的强化学习,附18页论文下载
专知会员服务
172+阅读 · 2020年2月8日
深度强化学习策略梯度教程,53页ppt
专知会员服务
178+阅读 · 2020年2月1日
2019必读的十大深度强化学习论文
专知会员服务
57+阅读 · 2020年1月16日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
专知会员服务
206+阅读 · 2019年8月30日
强化学习扫盲贴:从Q-learning到DQN
夕小瑶的卖萌屋
52+阅读 · 2019年10月13日
17种深度强化学习算法用Pytorch实现
新智元
30+阅读 · 2019年9月16日
TensorFlow 2.0深度强化学习指南
云栖社区
18+阅读 · 2019年2月1日
OpenAI丨深度强化学习关键论文列表
中国人工智能学会
17+阅读 · 2018年11月10日
【OpenAI】深度强化学习关键论文列表
专知
11+阅读 · 2018年11月10日
【代码集合】深度强化学习Pytorch实现集锦
机器学习算法与Python学习
8+阅读 · 2018年10月23日
【深度强化学习教程】高质量PyTorch实现集锦
强化学习族谱
CreateAMind
26+阅读 · 2017年8月2日
Logically-Constrained Reinforcement Learning
Arxiv
3+阅读 · 2018年12月6日
Deep Reinforcement Learning: An Overview
Arxiv
17+阅读 · 2018年11月26日
Arxiv
3+阅读 · 2018年10月5日
Multi-task Deep Reinforcement Learning with PopArt
Arxiv
4+阅读 · 2018年9月12日
Arxiv
11+阅读 · 2018年4月25日
VIP会员
相关VIP内容
【IJCAI2020-华为诺亚】面向深度强化学习的策略迁移框架
专知会员服务
27+阅读 · 2020年5月25日
《强化学习》简介小册,24页pdf
专知会员服务
272+阅读 · 2020年4月19日
最新《经济学中的强化学习》2020大综述,42页pdf128篇文献
【综述】自动驾驶领域中的强化学习,附18页论文下载
专知会员服务
172+阅读 · 2020年2月8日
深度强化学习策略梯度教程,53页ppt
专知会员服务
178+阅读 · 2020年2月1日
2019必读的十大深度强化学习论文
专知会员服务
57+阅读 · 2020年1月16日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
专知会员服务
206+阅读 · 2019年8月30日
相关资讯
强化学习扫盲贴:从Q-learning到DQN
夕小瑶的卖萌屋
52+阅读 · 2019年10月13日
17种深度强化学习算法用Pytorch实现
新智元
30+阅读 · 2019年9月16日
TensorFlow 2.0深度强化学习指南
云栖社区
18+阅读 · 2019年2月1日
OpenAI丨深度强化学习关键论文列表
中国人工智能学会
17+阅读 · 2018年11月10日
【OpenAI】深度强化学习关键论文列表
专知
11+阅读 · 2018年11月10日
【代码集合】深度强化学习Pytorch实现集锦
机器学习算法与Python学习
8+阅读 · 2018年10月23日
【深度强化学习教程】高质量PyTorch实现集锦
强化学习族谱
CreateAMind
26+阅读 · 2017年8月2日
Top
微信扫码咨询专知VIP会员