点击上方“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的方式进行分类,如下图所示。
纯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方法里也包含策略/值迭代的思想。具体算法和相关信息见下表:
我们承诺将持续开源最新深度学习和深度强化学习算法,如果您有什么需要,欢迎到Slack中讨论。
代码链接:https://github.com/tensorlayer/tensorlayer/tree/master/examples/reinforcement_learning
讨论链接:
https://tensorlayer.slack.com/join/shared_invite/enQtMjUyMjczMzU2Njg4LWI0MWU0MDFkOWY2YjQ4YjVhMzI5M2VlZmE4YTNhNGY1NjZhMzUwMmQ2MTc0YWRjMjQzMjdjMTg2MWQ2ZWJhYzc
CVer-强化学习交流群
扫码添加CVer助手,可申请加入CVer-强化学习群。一定要备注:研究方向+地点+学校/公司+昵称(如强化学习+上海+上交+卡卡)
▲长按加群
这么硬的干货分享,麻烦给我一个在在看
▲长按关注我们
麻烦给我一个在看!