Deep-reinforcement-learning-with-pytorch:基于 PyTorch 的深度强化学习算法实现项目

PyTorch implementation of DQN, AC, ACER, A2C, A3C, PG, DDPG, TRPO, PPO, SAC, TD3 and ....

分支3Tags0
文件最后提交记录最后更新时间
6 年前
6 年前
6 年前
6 年前
6 年前
6 年前
6 年前
6 年前
6 年前
6 年前
6 年前
6 年前
6 年前
6 年前
6 年前

**状态:**活跃(正在进行积极开发,可能会发生破坏性变更)

本仓库旨在实现经典及最前沿的深度强化学习算法。其目标是为人们提供清晰的PyTorch代码,以便学习深度强化学习算法。未来,我们将增加更多最先进算法,并持续维护现有代码。

演示

系统需求

  • Python <=3.6
  • tensorboardX
  • gym >= 0.10
  • PyTorch >= 0.4

注意:TensorFlow不支持Python3.7

安装

pip install -r requirements.txt

如果安装失败:

  • 安装gym
pip install gym
  • 安装PyTorch 请访问官方网站安装:https://pytorch.org/
    推荐使用Anaconda虚拟环境管理你的包。
- 安装tensorboardX和tensorflow(仅用于tensorboardX)
pip install tensorboardX tensorflow==1.12
  • 测试
cd Char10_TD3/
python TD3_BipedalWalker-v2.py --mode test

成功安装后,你将看到一个双足行走机器人示例。

双足行走机器人示例:

  • 可选安装openai-baselines
# 克隆openai baselines库
git clone https://github.com/openai/baselines.git
cd baselines
pip install -e .

DQN

我上传了两个训练CartPole-v0和MountainCar-v0的DQN模型。

MountainCar-v0的技巧

这是一个稀疏二元奖励任务,只有当汽车达到山顶时才有非零奖励。通常在随机策略下可能需要大约10万步。你可以添加一个奖励项,例如,让汽车当前位置的变化与之正相关。当然,更先进的方法是逆向强化学习。

价值损失
步数
这是DQN的价值损失图。可以看到损失值增加到了1e13,但网络运行良好。这是因为随着训练过程,目标网络和行动网络差异增大,计算出的损失累计加大。之前损失较小,是因为奖励非常稀少,导致两网络更新幅度小。

与DQN相关的论文

  1. 使用深度强化学习玩Atari游戏[arxiv][代码]
  2. 深度强化学习中的双重Q学习[arxiv][代码]
  3. 用于深度强化学习的对抗网络结构[arxiv][代码]
  4. 优先级经验重放[arxiv][代码]
  5. 探索中使用嘈杂网络[arxiv][代码]
  6. 强化学习中的分布视角[arxiv][代码]
  7. 彩虹:结合深度强化学习的改进[arxiv][代码]
  8. 分位回归的分布强化学习[arxiv][代码]
  9. 分层深度强化学习:整合时间抽象和内在动机[arxiv][代码]
  10. 神经情节控制[arxiv][代码]

策略梯度

运行保存的模型:

python Run_Model.py

训练模型:

python pytorch_MountainCar-v0.py

policyNet.pkl
这是一个已训练好的模型。

演员-评论家(Actor-Critic)

这是一个算法框架,其中包含了经典的REINFORCE方法。

DDPG

Pendulum-v0的每集奖励: ep_r

PPO

A2C

优势策略梯度。一篇2017年的论文指出,A2C与A3C之间性能差异并不明显。

异步优势演员评论家方法(A3C)自论文发布以来影响深远,该算法综合了几大关键思想:

  • 一个基于固定长度经验片段(如20个时间步)的操作更新方案,用这些片段来计算回报和优势函数的估计值。
  • 在策略和价值函数间共享层次的架构。
  • 异步更新。

A3C

原始论文:https://arxiv.org/abs/1602.01783

SAC

这不是作者的官方实现! Pendulum-v0的每集奖励: ep_r

TD3

这不是作者的官方实现! Pendulum-v0的每集奖励: ep_r BipedalWalker-v2的每集奖励: ep_r

如果你想测试模型:

python TD3_BipedalWalker-v2.py --mode test

与深度强化学习相关的论文

[01] 深度强化学习简述
[02] 连续控制强化学习中的Beta策略
[03] 使用深度强化学习玩Atari游戏
[04] 带有双重Q学习的深度强化学习
[05] 用于深度强化学习的对抗网络架构
[06] 基于深度强化学习的连续控制
[07] 结合模型加速的连续深度Q学习
[08] 深度强化学习的异步方法
[09] 信任域策略优化
[10] 近端策略优化算法
[11] 可扩展的信任区域方法在深度强化学习中的应用:利用Kronecker分解加速
[12] 采用广义优势估计的高维连续控制
[13] 软性演员-评论家:基于最大熵的离线深度强化学习与随机演员
[14] 处理演员-评论家中函数逼近误差

待办事项

最佳强化学习课程

项目介绍

PyTorch深度学习框架实现的DQN、AC、ACER、A2C、A3C、PG、DDPG、TRPO、PPO、SAC、TD3等算法。【此简介由AI生成】

定制我的领域
324.65 K894访问 GitHub