用C++实现强化学习,速度不亚于Python,这里有个框架可用

2019 年 4 月 12 日 量子位
乾明 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

没法用Python,怎么实现强化学习?

现在,有了一个新选择。

一位名叫Isaac Poulton的英国小哥,开源了一个名为CppRL的C++强化学习框架。

整个框架,用PyTorch C++编写而成,主要的使用场景,就是在没法使用Python的项目中实现强化学习。

现在,这个框架已经可以实现A2C(Advantage Actor Critic)、PPO(近端策略优化)算法。

而且,用户只需要很少的设置,就能够在电脑的桌面程序中使用。

小哥说,之所以做这个框架,是因为C++中还没有一个通用的强化学习框架。

但自己的个人项目中需要一个,就借着PyTorch C++前端的发布,做了一个出来,还顺便训练了一批LunarLander-v2游戏中的智能体。

框架有何特性?用起来效果如何?

根据小哥的介绍,这个框架一共有五大特性:

  • 首先,它能够实现强化学习中很关键的两个算法A2C和PPO。

  • 其次,支持基于门控循环单元(GRU)的循环策略。

  • 第三,具备跨平台兼容性,已经在Windows 10和Ubuntu 16.04和Ubuntu 18.04上进行了测试。

  • 第四,有可靠的测试覆盖率。

  • 第五,能够适度进行优化,可以开放PR来推进框架优化。

此外,框架中还有对OpenAI Gym的实现,其通过ZeroMQ通信来测试框架在Gym环境中的表现。

基于当前的版本的框架,小哥在自己的笔记本电脑(i7-8550处理器)上,平均用60秒训练一个智能体就可以获得200奖励。在登月游戏LunarLander-v2中实现的效果如下:

这8个智能体中,有5个智能体完成了任务。

在回答Reddit上网友的提问时,他介绍了训练智能体的速度,基本上和用Python实现速度相当。

但是,在一些环境中速度会比较慢。比如OpenAI Gym客户端中,必须要与Python接口,并通过TCP发送观察结果,所以训练速度会大幅下降。

不过,小哥说会通过重做Gym客户端来解决这个问题。

这一框架未来会如何?

小哥表示,要把它打造成一个可扩展的、经过合理优化的、随时可以使用的框架。

在Reddit的帖子中,他也发起了呼吁,如果你有兴趣来一起完成这一项目,非常欢迎提交PR~

传送门

C++强化学习框架项目地址:
https://github.com/Omegastick/pytorch-cpp-rl

活动报名|多模态视频人物识别

订阅AI内参,获取AI行业资讯

加入社群

量子位AI社群开始招募啦,量子位社群分:AI讨论群、AI+行业群、AI技术群;


欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“微信群”,获取入群方式。(技术群与AI+行业群需经过审核,审核较严,敬请谅解)


量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「好看」吧 !

登录查看更多
0

相关内容

强化学习(RL)是机器学习的一个领域,与软件代理应如何在环境中采取行动以最大化累积奖励的概念有关。除了监督学习和非监督学习外,强化学习是三种基本的机器学习范式之一。 强化学习与监督学习的不同之处在于,不需要呈现带标签的输入/输出对,也不需要显式纠正次优动作。相反,重点是在探索(未知领域)和利用(当前知识)之间找到平衡。 该环境通常以马尔可夫决策过程(MDP)的形式陈述,因为针对这种情况的许多强化学习算法都使用动态编程技术。经典动态规划方法和强化学习算法之间的主要区别在于,后者不假设MDP的确切数学模型,并且针对无法采用精确方法的大型MDP。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
【ACL2020】利用模拟退火实现无监督复述
专知会员服务
13+阅读 · 2020年5月26日
【IJCAI2020-华为诺亚】面向深度强化学习的策略迁移框架
专知会员服务
27+阅读 · 2020年5月25日
【圣经书】《强化学习导论(2nd)》电子书与代码,548页pdf
专知会员服务
201+阅读 · 2020年5月22日
《强化学习—使用 Open AI、TensorFlow和Keras实现》174页pdf
专知会员服务
136+阅读 · 2020年3月1日
【斯坦福大学】Gradient Surgery for Multi-Task Learning
专知会员服务
46+阅读 · 2020年1月23日
【强化学习资源集合】Awesome Reinforcement Learning
专知会员服务
93+阅读 · 2019年12月23日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
Mask R-CNN官方实现“又”来了!基于PyTorch,训练速度是原来2倍
机器学习算法与Python学习
5+阅读 · 2018年10月26日
资源丨用PyTorch实现Mask R-CNN
量子位
6+阅读 · 2018年7月23日
精选Top30!最实用的python开源项目都在这里
乌镇智库
4+阅读 · 2018年1月26日
前端高性能计算(4):GPU加速计算
前端大全
7+阅读 · 2017年10月26日
【机器学习】推荐13个机器学习框架
产业智能官
8+阅读 · 2017年9月10日
GAFT:一个使用 Python 实现的遗传算法框架
Python开发者
10+阅读 · 2017年8月1日
Rapid Customization for Event Extraction
Arxiv
7+阅读 · 2018年9月20日
Arxiv
8+阅读 · 2018年6月19日
Arxiv
5+阅读 · 2018年1月18日
VIP会员
相关VIP内容
【ACL2020】利用模拟退火实现无监督复述
专知会员服务
13+阅读 · 2020年5月26日
【IJCAI2020-华为诺亚】面向深度强化学习的策略迁移框架
专知会员服务
27+阅读 · 2020年5月25日
【圣经书】《强化学习导论(2nd)》电子书与代码,548页pdf
专知会员服务
201+阅读 · 2020年5月22日
《强化学习—使用 Open AI、TensorFlow和Keras实现》174页pdf
专知会员服务
136+阅读 · 2020年3月1日
【斯坦福大学】Gradient Surgery for Multi-Task Learning
专知会员服务
46+阅读 · 2020年1月23日
【强化学习资源集合】Awesome Reinforcement Learning
专知会员服务
93+阅读 · 2019年12月23日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
相关资讯
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
Mask R-CNN官方实现“又”来了!基于PyTorch,训练速度是原来2倍
机器学习算法与Python学习
5+阅读 · 2018年10月26日
资源丨用PyTorch实现Mask R-CNN
量子位
6+阅读 · 2018年7月23日
精选Top30!最实用的python开源项目都在这里
乌镇智库
4+阅读 · 2018年1月26日
前端高性能计算(4):GPU加速计算
前端大全
7+阅读 · 2017年10月26日
【机器学习】推荐13个机器学习框架
产业智能官
8+阅读 · 2017年9月10日
GAFT:一个使用 Python 实现的遗传算法框架
Python开发者
10+阅读 · 2017年8月1日
Top
微信扫码咨询专知VIP会员