[原创] 强化学习框架 rlpyt 源码分析:(5) 提供额外参数的Mixin类

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 如果你想用这个框架来开发自己的强化学习程序(尤其是那些不属于Atari游戏领域的强化学习程序),那么需要对它的源码有一定的了解。本文尝试从 rlpyt 自带的一个实例来分析它的部分源码,希望能帮助到一小部分人。

▶▶ Mixin类简介
rlpyt 里面有大量的 *Mixin 类,例如 AtariMixin,MujocoMixin,RecurrentAgentMixin 等,作者并没有为这些名字很怪的class写任何注释,仅从使用的地方来看,很多Mixin类都与agent类有关联。

阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(3) 相当简洁又十分巧妙的EpsilonGreedy类

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 如果你想用这个框架来开发自己的强化学习程序(尤其是那些不属于Atari游戏领域的强化学习程序),那么需要对它的源码有一定的了解。本文尝试从 rlpyt 自带的一个实例来分析它的部分源码,希望能帮助到一小部分人。

阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(4) 收集训练数据的sampler类

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 如果你想用这个框架来开发自己的强化学习程序(尤其是那些不属于Atari游戏领域的强化学习程序),那么需要对它的源码有一定的了解。本文尝试从 rlpyt 自带的一个实例来分析它的部分源码,希望能帮助到一小部分人。

▶▶ sampler的主要功能
训练强化学习模型需要训练数据,收集训练数据的工作就是由sampler类做的。
收集训练数据,就需要在environment中步进,因此environment的实例化工作也在sampler中完成。

阅读更多

[原创] 强化学习(Reinforcement Learning)文章合集

强化学习是一种机器学习范式,通常用于让机器自主进行决策和学习。以下是一些强化学习的应用:

1. 游戏AI:使用强化学习算法训练游戏AI,在玩家水平越来越高的时候,AI能够逐渐提高自己的技能。
2. 机器人控制:对于一个机器人而言,强化学习可以帮助它在不同的任务下找到最优解决方案,如自主驾驶车辆、无人机控制、工厂物流等。
3. 资源管理:例如电力系统、水资源等,这些领域都需要有效的调度和分配资源,在这些领域应用强化学习可以帮助实现更优秀的效果。
4. 自然语言处理:通过基于强化学习算法训练模型,可以使计算机更好地理解自然语言,并根据上下文做出正确的回答或者翻译。


[原创] 强化学习框架 rlpyt 源码分析:(2) 掌管训练流程的runner类

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 如果你想用这个框架来开发自己的强化学习程序(尤其是那些不属于Atari游戏领域的强化学习程序),那么需要对它的源码有一定的了解。本文尝试从 rlpyt 自带的一个实例来分析它的部分源码,希望能帮助到一小部分人。

阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(1) 随处可见的Python可变参数

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 如果你想用这个框架来开发自己的强化学习程序(尤其是那些不属于Atari游戏领域的强化学习程序),那么需要对它的源码有一定的了解。本文尝试从 rlpyt 自带的一个实例来分析它的部分源码,希望能帮助到一小部分人。
要先声明一下:rlpyt 的源码比较复杂,想要充分理解全部模块需要下很大的功夫,本系列“源码分析”文章,并没有把 rlpyt 的源码全部分析一遍,而只是分析了它的“冰山一角”,主要目的是让读者能了解它的基本结构及基本运作方式。

阅读更多

[原创] 强化学习框架 rlpyt 源码分析:前言

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 如果你想用这个框架来开发自己的强化学习程序(尤其是那些不属于Atari游戏领域的强化学习程序),那么需要对它的源码有一定的了解。本文尝试从 rlpyt 自带的一个实例来分析它的部分源码,希望能帮助到一小部分人。
要先声明一下:rlpyt 的源码比较复杂,想要充分理解全部模块需要下很大的功夫,本系列“源码分析”文章,并没有把 rlpyt 的源码全部分析一遍,而只是分析了它的“冰山一角”,主要目的是让读者能了解它的基本结构及基本运作方式。

阅读更多

[原创] 强化学习框架 rlpyt 安装及试跑

查看关于 rlpyt 的更多文章请点击这里

之前我写了一篇强化学习框架 rlpyt简介。通常,刚接触一个框架,在安装好它之后,一般都是要先把它的一个最简单的demo跑起来看看会不会有什么问题。所以在本文中继续讲一下安装以及试运行的过程。

阅读更多

[原创] 伯克利人工智能研究所的开源[强化学习框架] rlpyt,让人眼前一亮

BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所),开源了一个强化学习(RL)框架 rlpyt,并于2019.09.24在其主页上对它进行了很长篇幅的介绍(论文在这里)。
市面上开源强化学习框架已经很多了,这个框架是否值得你上车?我认为,未来怎样不好说,但至少现在(2019.10)看来是值得入手的,因为它确实有其他框架不具备/不完善的功能——最主要的就是对并行(parallelism)的良好支持。
在强化学习领域,agent与environment互动来收集training data的过程是最耗时的,如果能并行地用多个agent与多个environment互动来收集数据,那么速度可以极大提升。类似于Google Dopamine这样的RL框架,根本没有把 parallelism 作为设计理念的一部分,所以如果你入了Dopamine的坑,等你对模型训练速度有要求的时候再想着换框架,成本就高多了。

阅读更多

[原创] 关于Google的开源强化学习框架Dopamine,不建议上车

Dopamine是Google在2018年8月的时候发布的强化学习开源框架,2019年2月的时候又发布了2.0版,由于是Google出品,因此会吸引比较多的关注,很多人会想去用它。但这个产品在目前(2019.10)值不值得用?就我目前的观察来看,不建议上车,原因如下。

阅读更多

[原创] 强化学习里的 on-policy 和 off-policy 的区别

强化学习(Reinforcement Learning,简称RL)是机器学习的一个领域,刚接触的时候,大多数人可能会被它的应用领域领域所吸引,觉得非常有意思,比如用来训练AI玩游戏,用来让机器人学会做某些事情,等等,但是当你越往里看,就会发现跟传统机器学习相比,RL里面的名词简直太多了吧!多到完全可以绕晕人。比如RL里经常会提到的agent,environment,episode(rollout),policy,on-policy,off-policy,state,trajectory,reward,replay buffer,model-based,model-free,MD,TD,PG,AC,等等。强化学习的高手对这些词很熟悉,但对新手来说可能就很痛苦。
在RL领域,on-policy和off-policy是两个非常重要的概念,这两个词,把RL方法分成了两个类别。你可以从网上搜到很多很人提问on-policy的强化学习方法和off-policy的强化学习方法有什么区别,作为一个智商相当平庸的人,鬼知道我当初看了多少教程才认为自己大概搞清楚了它们之间的区别。
所以我在这篇文章里想把自己的肤浅理解分享出来,希望能帮助到少部分人。

阅读更多