项目介绍
rl-agents
是一个强化学习(Reinforcement Learning, RL)智能体的集合。它提供了一系列用于不同类型任务的智能体实现,帮助用户在各种环境中进行实验和研究。该项目涵盖了多种规划和基于价值的策略选择方法,适用于不同类型的问题。
安装
用户可以通过以下命令安装 rl-agents
项目:
pip install --user git+https://github.com/eleurent/rl-agents
使用方法
rl-agents
项目支持多种实验用例。用户可以通过命令行界面在不同环境中训练和测试智能体。运行实验的典型命令如下:
cd scripts
python experiments.py evaluate <environment> <agent> (--train|--test) [--episodes <count>] [--seed <str>] [--analyze]
例如,要在 CartPole-v0
环境中训练一个 DQN
智能体,可执行以下命令:
python3 experiments.py evaluate configs/CartPoleEnv/env.json configs/CartPoleEnv/DQNAgent.json --train --episodes=200
智能体
规划智能体
- 值迭代(Value Iteration):该方法通过动态规划计算状态-动作值,随后基于这些值采取最优行为。
- 交叉熵法(Cross-Entropy Method, CEM):这是一种基于采样的规划算法,适用于连续行动空间。
- Monte-Carlo 树搜索(MCTS):该方法利用世界转换模型进行轨迹搜索,展开前瞻树以集中在最有前途的移动上。
安全规划智能体
- 鲁棒值迭代(Robust Value Iteration, RVI):在不确定的马尔可夫决策过程(MDP)环境中,该方法计算最坏情况下的状态-动作值。
- 离散鲁棒乐观规划(Discrete Robust Optimistic Planning, DROP):假定 MDP 的模糊集是有限的,通过修饰真实环境进行鲁棒值近似计算。
基于价值的智能体
- 深度 Q 网络(Deep Q-Network, DQN):使用神经网络模型来估计状态-动作值函数,并根据此值函数采取最优策略。
- 拟合 Q(Fitted-Q):通过对覆盖大部分状态-动作空间的转换进行监督学习,训练 Q 函数模型。
安全基于价值的智能体
- 预算拟合 Q(Budgeted Fitted-Q, BFTQ):在预算条件下,对应 FTQ 方法的一个变种,通过约束具有预算的预期代价来最大化策略的收益。
监控工具
rl-agents
提供多种工具来监控智能体的表现,包括:
- 运行元数据:用于确保实验的可复现性。
- Gym Monitor:记录每次运行的主要统计数据。
- 日志记录:可以通过 Python 标准日志库发送信息。
- Tensorboard:用于可视化指标、图片和模型结构。
引用
如果在工作中使用到 rl-agents
项目,推荐采用以下格式进行引用:
@misc{rl-agents,
author = {Leurent, Edouard},
title = {rl-agents: Implementations of Reinforcement Learning algorithms},
year = {2018},
publisher = {GitHub},
journal = {GitHub repository},
}