深度强化学习实现全家桶

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

 

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

 

代码链接:

深度强化学习实现全家桶_第1张图片

 

讨论链接:

 

简介:

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

深度强化学习实现全家桶_第2张图片

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 系列:

深度强化学习实现全家桶_第3张图片

 

 

Policy-based 系列:

深度强化学习实现全家桶_第4张图片

 

Actor-critic 系列:

深度强化学习实现全家桶_第5张图片

 

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

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

此外,开源社区目前希望更好地连接学术界和工业界,近期正在开发如下几个模块,请悉知:

  1. 与Sipeed硬件开源社区合作,推出基于国产K210嵌入式AI芯片模组及其模型转换器,使得TensorLayer模型可直接导入AI芯片中,可实现低成本(20元以下)、低功耗、实时的目标识别、人脸识别、风格转换等应用。

  2. 继续完善深度强化学习代码库,持续推出大型应用例子,如智能交通、复杂机器人仿真等等。

  3. 开发平台无关数据处理流程(Dataflow),实现数据处理的去TensorFlow化,方便开发者开发复杂的数据处理流程。

深度强化学习实现全家桶_第6张图片

上传视频封面

---- 补充----

TL RL 讨论区建立啦:

深度强化学习实现全家桶_第7张图片

深圳鹏城实验室正在联合各方资源开发一个人工智能平台,希望能遇到对开源感兴趣且有深度学习、高性能计算开发背景的同学,具体情况请扫描如下二维码。我们将与鹏城实验室合作,更多内容,敬请期待!!!

深度强化学习实现全家桶_第8张图片

一定要点我

 

“评论、点赞、收藏”一条龙~

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

欢迎转载~

你可能感兴趣的:(深度学习,强化学习,tensorflow)