Project Icon

rlax

JAX驱动的强化学习算法构建库

RLax是基于JAX的强化学习工具库,提供实现智能体所需的核心模块。支持价值估计、分布式价值函数、通用价值函数和策略梯度等功能,适用于在线和离线学习。借助JAX实现即时编译,RLax能在多种硬件上高效运行,为开发者提供灵活的工具构建强化学习算法。

RLax

CI 状态 文档 pypi

RLax(发音为"relax")是一个基于JAX构建的库,提供了实现强化学习代理所需的有用构建模块。完整文档可在 rlax.readthedocs.io 查看。

安装

您可以通过以下方式从PyPI安装RLax的最新发布版本:

pip install rlax

或者您可以从GitHub安装最新开发版本:

pip install git+https://github.com/deepmind/rlax.git

所有RLax代码随后可以使用jax.jit即时编译以适用于不同硬件(如CPU、GPU、TPU)。

为了运行examples/,您还需要克隆仓库并安装额外的依赖: optaxhaikubsuite

内容

提供的操作和函数并非完整算法,而是实现了构建能够学习的功能完备代理所需的强化学习特定数学操作:

  • 值函数,包括状态值和动作值;
  • 非线性广义Bellman方程的值函数;
  • 回报分布,即分布式值函数;
  • 通用值函数,适用于主要奖励以外的累积量;
  • 策略,通过连续和离散动作空间中的策略梯度。

该库支持在策略和离策略学习(即从与代理策略不同的策略采样的数据中学习)。

有关这些函数的文档以及引入和/或使用它们的论文参考,请参阅文件级和函数级的文档字符串。

使用

查看examples/目录,了解如何使用RLax中的一些函数来实现简单的强化学习代理,并演示在BSuite版本的Catch环境(强化学习文献中常见的代理开发单元测试)上的学习过程。

使用rlax的其他JAX强化学习代理示例可以在bsuite中找到。

背景

强化学习研究学习系统(代理)如何学习与其所处环境(环境)交互的问题。

代理和环境在离散的步骤中交互。在每一步,代理选择一个动作,作为回报,它会获得环境状态的(部分)快照(观察)和一个标量反馈信号(奖励)。

代理的行为由一个基于过去环境观察条件的动作概率分布(策略)来表征。代理寻求一个策略,使得从任何给定步骤开始,都能最大化从该点开始的折扣累积奖励(回报)。

通常,代理策略或环境动态本身是随机的。在这种情况下,回报是一个随机变量,最优代理策略更准确地被指定为在代理和环境的随机性下最大化回报期望()的策略。

强化学习算法

有三类典型的强化学习算法:

  1. 估计状态和动作的值,并通过检查推断策略(例如,选择估计值最高的动作)
  2. 学习环境模型(能够预测观察和奖励),并通过规划推断策略
  3. 参数化可以直接执行的策略

无论如何,策略、值或模型都只是函数。在深度强化学习中,这些函数由神经网络表示。在这种设置下,通常将强化学习更新公式化为可微分的伪损失函数(类似于(无)监督学习)。在自动微分下,就可以恢复原始的更新规则。

然而请注意,只有当输入数据以正确方式采样时,这些更新才有效。例如,策略梯度损失仅在输入轨迹是当前策略的无偏样本时才有效;即数据是在策略的。该库无法检查或强制执行此类约束。但是,在函数的文档字符串中提供了描述每个操作使用方法的论文链接。

命名约定和开发者指南

我们定义了代理与单个经验流交互的函数和操作。JAX构造vmap可用于将这些函数应用于批次(例如,支持回放并行数据生成)。

许多函数考虑连续时间步的策略、动作、奖励和值,以计算其输出。在这种情况下,后缀_ttm1通常用于澄清每个输入在哪一步生成,例如:

  • q_tm1:转换状态中的动作值。
  • a_tm1:在状态中选择的动作。
  • r_t:在目标状态中收集的结果奖励。
  • discount_t:与转换相关的折扣
  • q_t目标状态中的动作值。

每个函数都提供了广泛的测试。所有测试还应验证使用jax.jit编译为XLA和使用jax.vmap执行批处理操作时rlax函数的输出。

引用RLax

本仓库是DeepMind JAX生态系统的一部分,要引用Rlax请使用以下引用:

@software{deepmind2020jax,
  title = {The {D}eep{M}ind {JAX} {E}cosystem},
  author = {DeepMind and Babuschkin, Igor and Baumli, Kate and Bell, Alison and Bhupatiraju, Surya and Bruce, Jake and Buchlovsky, Peter and Budden, David and Cai, Trevor and Clark, Aidan and Danihelka, Ivo and Dedieu, Antoine and Fantacci, Claudio and Godwin, Jonathan and Jones, Chris and Hemsley, Ross and Hennigan, Tom and Hessel, Matteo and Hou, Shaobo and Kapturowski, Steven and Keck, Thomas and Kemaev, Iurii and King, Michael and Kunesch, Markus and Martens, Lena and Merzic, Hamza and Mikulik, Vladimir and Norman, Tamara and Papamakarios, George and Quan, John and Ring, Roman and Ruiz, Francisco and Sanchez, Alvaro and Sartran, Laurent and Schneider, Rosalia and Sezener, Eren and Spencer, Stephen and Srinivasan, Srivatsan and Stanojevi\'{c}, Milo\v{s} and Stokowiec, Wojciech and Wang, Luyu and Zhou, Guangyao and Viola, Fabio},
  url = {http://github.com/deepmind},
  year = {2020},
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号