GitHub:用PyTorch实现17种深度强化学习算法

点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达

1a0b0ed5193bd660ed6a78784513c45b.jpeg

深度强化学习已经在许多领域取得了瞩目的成就,并且仍是各大领域受热捧的方向之一。本文推荐一个用 PyTorch 实现了 17 种深度强化学习算法的教程和代码库,帮助大家在实践中理解深度 RL 算法。

深度强化学习已经在许多领域取得了瞩目的成就,并且仍是各大领域受热捧的方向之一。本文推荐一个包含了 17 种深度强化学习算法实现的 PyTorch 代码库。

38371342484b338bbdc53a478597740e.jpeg

已实现的算法包括:

  1. Deep Q Learning (DQN) (Mnih et al. 2013)

  2. DQN with Fixed Q Targets (Mnih et al. 2013)

  3. Double DQN (DDQN) (Hado van Hasselt et al. 2015)

  4. DDQN with Prioritised Experience Replay (Schaul et al. 2016)

  5. Dueling DDQN (Wang et al. 2016)

  6. REINFORCE (Williams et al. 1992)

  7. Deep Deterministic Policy Gradients (DDPG) (Lillicrap et al. 2016 )

  8. Twin Delayed Deep Deterministic Policy Gradients (TD3) (Fujimoto et al. 2018)

  9. Soft Actor-Critic (SAC & SAC-Discrete) (Haarnoja et al. 2018)

  10. Asynchronous Advantage Actor Critic (A3C) (Mnih et al. 2016)

  11. Syncrhonous Advantage Actor Critic (A2C)

  12. Proximal Policy Optimisation (PPO) (Schulman et al. 2017)

  13. DQN with Hindsight Experience Replay (DQN-HER) (Andrychowicz et al. 2018)

  14. DDPG with Hindsight Experience Replay (DDPG-HER) (Andrychowicz et al. 2018 )

  15. Hierarchical-DQN (h-DQN) (Kulkarni et al. 2016)

  16. Stochastic NNs for Hierarchical Reinforcement Learning (SNN-HRL) (Florensa et al. 2017)

  17. Diversity Is All You Need (DIAYN) (Eyensbach et al. 2018)

所有的实现都能够快速解决Cart Pole(离散动作)、Mountain Car (连续动作)、Bit Flipping(动态目标的离散动作) 或Fetch Reach(动态目标的连续动作) 等任务。本 repo 还会添加更多的分层 RL 算法。

已实现的环境:

  1. Bit Flipping 游戏 (Andrychowicz et al. 2018)

  2. Four Rooms 游戏 (Sutton et al. 1998)

  3. Long Corridor 游戏 (Kulkarni et al. 2016)

  4. Ant-{Maze, Push, Fall} (Nachum et al. 2018)

结果

1. Cart Pole 和 Mountain Car

下面展示了各种 RL 算法成功学习离散动作游戏 Cart Pole 或连续动作游戏 Mountain Car 的结果。使用 3 个随机种子运行算法的平均结果如下图所示,阴影区域表示正负 1 标准差。使用的超参数可以在results/cart_pol .py和results/Mountain_Car.py文件中找到。

f858c3dcd15c529e45f62162a51535bc.jpeg

2. 事后经验重演 (HER) 实验

下面展示了 DQN 和 DDPG 在 Bit Flipping (14 bits) 和 Fetch Reach 环境中的表现,这些环境在论文 Hindsight Experience Replay 和 Multi-Goal Reinforcement Learning 中有详细描述。这些结果复现了论文中发现的结果,并展示了添加 HER 可以如何让一个 agent 解决它原本无法解决的问题。请注意,在每对 agents 中都使用了相同的超参数,因此它们之间的唯一区别是是否使用了 hindsight。

c353079005f5193cfc954ae2b1fc0476.jpeg

3. 分层强化学习实验

下图左边的结果显示了在 Long Corridor 环境中 DQN 和 Kulkarni 等人在 2016 年提出的 hierarchy -DQN 算法的性能。该环境要求 agent 在返回之前走到走廊的尽头,以便获得更大的奖励。这种延迟满足和状态的混叠使得它在某种程度上是 DQN 不可能学习的游戏,但是如果我们引入一个元控制器 (如 h-DQN) 来指导低层控制器如何行动,就能够取得更大的进展。这与论文中发现的结果一致。

下图右边的结果显示了 Florensa 等人 2017 年提出的 DDQN 算法和用于分层强化学习的随机神经网络 (SNN-HRL) 的性能。使用 DDQN 作为比较,因为 SSN-HRL 的实现使用了其中的 2 种 DDQN 算法。

f5b45bb9d07e5015291d3aa9989ae500.jpeg

用法

存储库的高级结构是:

├── agents
    ├── actor_critic_agents
    ├── DQN_agents
    ├── policy_gradient_agents
    └── stochastic_policy_search_agents
├── environments
├── results
    └── data_and_graphs
├── tests
├── utilities
    └── data structures

i) 观看智能体学习上述游戏

观看所有不同的智能体学习 Cart Pole,请遵循以下步骤:

git clone https://github.com/p-christ/Deep_RL_Implementations.git
cd Deep_RL_Implementations


conda create --name myenvname
y
conda activate myenvname


pip3 install -r requirements.txt


python Results/Cart_Pole.py

对于其他游戏,将最后一行更改为结果文件夹中的其他文件就行。

ii) 训练智能体实现另一种游戏

Open AI gym 上的环境都是有效的,你所需要做的就是更改config.environment字段。

如果你创建了一个继承自 gym.Env 的单独类,那么还可以使用自己的自定义游戏。请参阅Environments/Four_Rooms_Environment.py自定义环境的示例,然后查看脚本Results/Four_Rooms.py了解如何让 agents 运行环境。

GitHub 地址:

p-christ/Deep-Reinforcement-Learning-Algorithms-with-PyTorchgithub.com

 
 

好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇

 
 

4da509cb120951851a6b0118d0138b6a.jpeg

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Github上,有许多受欢迎的深度学习开源项目。以下是其中一些备受欢迎的深度学习开源项目: 1. TensorFlow:由Google开发的机器学习库,广泛用于深度学习任务。 2. PyTorch:由Facebook开发的深度学习框架,提供动态计算图和丰富的功能。 3. Keras:一个高级神经网络API,可以运行在多个深度学习框架上,如TensorFlow和Theano。 4. Caffe:一个高效的深度学习框架,以速度和模型表达能力著称。 5. MXNet:一个高度可扩展的深度学习框架,支持分布式训练和多编程语言。 6. Theano:一个基于Python的开源库,用于定义、优化和评估数学表达式,特别适用于深度学习。 7. scikit-learn:一个用于机器学习和数据挖掘的Python库,包含了许多经典的机器学习算法。 8. Darknet:一个轻量级的深度学习框架,特别适用于物体检测和图像分类任务。 9. Caffe2:Facebook开发的深度学习框架,具有高效的分布式训练能力。 10. Torch:一个科学计算框架,提供了丰富的工具和库,适用于深度学习任务。 这只是其中一小部分受欢迎的深度学习开源项目。Github上还有许多其他项目,涵盖了各深度学习任务和应用领域,供开发者们使用和贡献。 ### 回答2: GitHub上最受欢迎的57个深度学习开源项目是基于其Stars数和社区贡献度的排名,以下是其中一些项目的简介: 1. TensorFlow:由Google开发的深度学习框架,功能强大且广泛应用。 2. PyTorch:Facebook开发的深度学习框架,被广泛用于研究和开发。 3. Keras:用户友好的深度学习库,可以在TensorFlow、Theano等后端运行。 4. Caffe:质量高且快速的深度学习框架,适用于计算机视觉任务。 5. Theano:用于定义、优化和评估数学表达式的Python库,支持高效的机器学习计算。 6. Torch:基于LUA的科学计算框架,广泛用于机器学习。 7. MXNet:适用于分布式、高效的深度学习框架。 8. Fast.ai:构建在PyTorch之上的高级API,使深度学习更易于使用。 9. TensorFlow.js:用于在浏览器上进行机器学习的库。 10. Dlib:用于图像处理和机器学习任务的C++库。 11. DeepSpeech:Mozilla构建的自动语音识别框架。 12. OpenCV:图像处理和计算机视觉的开源库,具有深度学习支持。 13. GANs:生成对抗网络的PyTorch实现,用于生成逼真的图像。 14. TensorFlow Object Detection API:用于目标检测的TensorFlow API。 15. MLBox:一个自动化机器学习工具,用于数据预处理、特征选择、模型选择等。 16. NLP:使用自然语言处理技术的Python库。 17. Autokeras:自动化机器学习库,用于快速构建和部署模型。 18. OpenAI Gym:用于开发和比较强化学习算法的工具包。 19. DeepFace:FaceNet网络的Keras实现,用于人脸识别。 20. StyleTransfer:用于图像风格转换的PyTorch实现。 这只是其中一些受欢迎的深度学习项目,GitHub上还有许多其他优秀的项目,每个项目都具有不同的特点和应用领域。无论您是初学者还是专业人士,都可以在GitHub上找到适合您需求的项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值