OpenAI:在Deep RL中旋转

2020-08-17 14:14:15

欢迎来到深度RL的旋转!这是一个由OpenAI开发的教育资源,它使学习深度强化学习(Deep RL)变得更容易。

对于不熟悉的人:强化学习(RL)是一种机器学习方法,教Agent如何通过反复试验来解决任务。深度RL是指RL与深度学习的结合。

在OpenAI,我们相信一般的深度学习-特别是深度强化学习-将在强大的AI技术的发展中发挥核心作用。为了确保人工智能是安全的,我们必须拿出与这一范式兼容的安全策略和算法。因此,我们鼓励每个提出这个问题的人研究这些领域。

然而,虽然有很多资源可以帮助人们快速提高深度学习,但深度强化学习更具挑战性。首先,深度RL的学生需要在数学、编码和常规深度学习方面有一定的背景。除此之外,他们还需要对该领域有一个高水平的看法-意识到该领域研究了什么主题,为什么它们很重要,以及已经做了什么-以及如何将算法理论与算法代码联系起来的仔细指导。

由于这一领域是如此之新,很难获得高水平的观点。目前还没有一本标准的深度RL教科书,所以大部分知识要么被锁定在论文中,要么被锁定在系列讲座中,这可能需要很长时间才能解析和消化。学习实现深度RL算法通常是痛苦的,因为。

或者,广泛公开的算法实现很难阅读,从而隐藏了代码如何与算法保持一致。

虽然像Garage、Baseline和rllib这样的奇妙报告使已经在该领域的研究人员更容易取得进展,但它们以涉及许多不明显的选择和权衡的方式将算法构建到框架中,这使得它们很难学习。因此,深度RL领域的进入门槛相当高-对于新的研究人员以及从业者和业余爱好者来说。

因此,我们这里的软件包旨在为那些对Deep RL感到兴奋、想要学习如何使用它或做出贡献,但不清楚要学习什么或如何将算法转化为代码的人提供缺少的中间步骤。我们试图让这成为一个尽可能有帮助的起点。

也就是说,从业者并不是唯一可以(或应该)从这些材料中受益的人。解决AI安全将需要具有广泛专业知识和视角的人,而许多相关的专业与工程或计算机科学完全没有联系。尽管如此,每个参与其中的人都需要充分了解这项技术,才能做出明智的决定,而几个旋转的项目满足了这一需求。

OpenAI的使命是确保AGI的安全发展,以及更广泛地从AI中获得更广泛的利益分配。像SPOING UP这样的教学工具帮助我们在这两个目标上都取得了进步。

首先,只要我们帮助人们理解什么是人工智能以及它是如何工作的,我们就离广泛的利益分配更近了一步。这使人们能够批判性地思考随着人工智能在我们生活中变得更加复杂和重要而预计将出现的许多问题。

此外,至关重要的是,我们需要人来帮助我们确保AGI的安全。这需要一套目前供不应求的技能,因为这个领域太新了。我们知道很多人都有兴趣帮助我们,但不知道如何帮助我们--这就是你应该学习的东西!如果你能成为这方面的专家,你就能在AI安全上有所作为。

它们几乎是完全自包含的,它们之间几乎没有共享公共代码(除了日志、保存、加载和MPI实用程序),因此感兴趣的人可以单独研究每种算法,而不必深入研究无穷无尽的依赖链来查看某件事是如何完成的。实现是模式化的,以便它们尽可能接近伪代码,以最大限度地缩小理论和代码之间的差距。

重要的是,它们的结构都是相似的,所以如果您清楚地理解了其中一个,跳到下一个是没有痛苦的。

我们试图最小化每个算法实现中使用的技巧数量,并最小化其他相似算法之间的差异。给出一些去除技巧的例子:我们省略了原始软动作批评代码中存在的正则化项,以及所有算法中的观测标准化。举个例子,我们去掉了算法之间的差异:我们的DDPG、TD3和SAC实现都遵循在固定的环境交互间隔之后运行梯度下降更新的约定。(相比之下,这些算法的其他公共实现通常采用彼此略有不同的方法,这使得它们更难进行比较。)。

所有算法都是“相当好的”,因为它们大致实现了预期的性能,但不一定与文献中关于每项任务的最佳报告结果相匹配。因此,如果使用这些实现中的任何一种进行科学基准比较,请务必小心。有关每个实施的具体性能级别的详细信息,请参阅我们的基准页面。

旋转当前处于维护模式。如果有任何损坏的bug,我们将修复它们,以确保Spin Up可以继续帮助人们深入研究RL。

2019年4月:发布大约六个月后,我们根据社区的反馈对SPING UP进行了内部审查。这项审查显示出人们对几个关键特征的兴趣:

在其他神经网络库中的实现。一些人表示有兴趣看到在RL实现中使用TensorFlowv1的替代方案。社区的一些成员甚至开发了他们自己的旋转算法的PyTorch版本,例如Kashif Rasul的旋转算法,凯·阿鲁库马兰的旋转基本算法,以及Misha Laskin的Torching Up。于是,为深部RL制作这种“罗塞塔石”就成了未来工作的重中之重。

开源RL环境。许多人表示有兴趣看到Spinup在基准、示例和练习中使用更多开源RL环境(例如PyBullet)。

更多算法。还有一些人有兴趣看到SPOING UP中包含了其他算法,特别是Deep Q-Networks。

未来:目前没有计划进行重大更新。如果按照我们在6个月的回顾中发现的情况发布额外的更新是有意义的,次要的优先特性是更多地关注开源RL环境和添加算法。

此外,正如博客文章中所讨论的那样,Spin Up已经被整合到我们的学者和研究员项目的课程中。