可定制算法和环境,这个开源强化学习框架火了

程序员大白

共 2178字,需浏览 5分钟

 ·

2021-11-29 23:29

点击上方“程序员大白”,选择“星标”公众号

重磅干货,第一时间送达

转自 | 机器之心

强化学习框架怎么选?不如自己定制一个。

强化学习(reinforcement learning,RL)是近年来最受关注的人工智能研究方向之一,在机器人、游戏等领域应用甚广。现有的强化学习框架往往无法支持高效、定制化的训练场景的问题。

近日,GitHub 上一个名为 JORLDY 的开源、可定制强化学习(RL)框架引发关注。


项目地址:https://github.com/kakaoenterprise/JORLDY

JORLDY 的主要优点是提供多种分布式强化学习算法,并且易于定制。由于 JORLDY 目前还是 beta 版本,与现有框架相比存在一些不足。

开发团队表示未来将继续提高 JORLDY 的可用性。此外,他们还计划添加新的强化学习环境和算法,例如基于模型的强化学习、多智能体强化学习和元强化学习。

该开源 RL 框架具有以下特性:

  • 提供 20 + 种强化学习算法和多种强化学习环境;

  • 算法和环境可定制;

  • 可以添加新的算法和环境;

  • 使用 ray 提供分布式 RL 算法;

  • 算法的基准测试是在许多 RL 环境中进行的。


分布式架构

为了实现分布式强化学习,该项目使用 ray(允许参与者并行交互)和多进程,支持单个参与者(actor)训练、同步分布式训练和异步分布式训练。

单个参与者训练

单个参与者训练脚本中包含主进程和管理进程。在主进程中,单个智能体与环境交互以收集转移(transition)数据,并借助这些数据训练网络。在管理进程中,使用最新的网络进行评估得到一个分数,并在主进程中记录这个分数和训练结果。训练流程如下图所示:


同步分布式训练

同步分布式训练脚本和单个参与者训练脚本类似,也是包含主进程和管理进程。在主进程中,多个参与者同时并行交互以收集转移数据,并借助这些数据训练模型。在管理进程中,用最新的模型进行评估得到一个分数,并在主进程中记录这个分数和训练结果。训练流程如下图所示:


异步分布式训练

异步分布式训练脚本中包含交互进程、主进程和管理进程。在交互进程中,多个参与者并行交互以收集转移数据。与同步分布式训练脚本不同,每个参与者都是异步交互的。更具体地说,在异步分布式训练脚本中,参与者交互时,仅为在特定时间内已完成的参与者传输数据。在主进程中借助转移数据训练模型。在管理进程中使用最新的模型进行评估得到一个分数,并在主进程中记录这个分数和训练结果。训练流程如下图所示。


安装与使用


安装代码如下:

git clone https://github.com/kakaoenterprise/JORLDY.git  cd JORLDYpip install -r requirements.txt
# linuxapt-get update apt-get -y install libgl1-mesa-glx # for opencvapt-get -y install libglib2.0-0 # for opencvapt-get -y install gifsicle # for gif optimize

使用以下代码开始使用 JORLDY:

cd jorldy
# Examples: python [script name] --config [config path]python single_train.py --config config.dqn.cartpolepython single_train.py --config config.rainbow.atari --env.name assault
# Examples: python [script name] --config [config path] --[optional parameter key] [parameter value]python single_train.py --config config.dqn.cartpole --agent.batch_size 64python sync_distributed_train.py --config config.ppo.cartpole --train.num_workers 8

感兴趣的小伙伴快去试试吧!

参考链接:
https://www.reddit.com/r/MachineLearning/comments/qp9bra/project_jorldy_opensource_reinforcement_learning/

13个你一定要知道的PyTorch特性

解读:为什么要做特征归一化/标准化?

一文搞懂 PyTorch 内部机制

张一鸣:每个逆袭的年轻人,都具备的底层能力




西[]


浏览 69
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报