单智能体强化学习 (SARL) 和多智能体强化学习 (MARL) 算法的实现。
项目描述
YuanRL 是一个存储库,提供单智能体强化学习 (SARL) 和多智能体强化学习 (MARL) 算法的 Python 实现。
安装
- 从 PYPI 安装包:
pip install yuanrl -i https://pypi.org/simple/
- 使用 git 获取存储库:
git clone https://github.com/Mingqi-Yuan/YuanRL.git
- 运行以下命令以获取依赖项:
pip install -r requirements.txt
建筑学
我们考虑将 RL 算法分为几个部分:
- apis:强化学习算法的主要框架;
- nn:深度强化学习中网络的主干;
- replayer:用于存储和采样经验的回放器;
- 噪音:针对连续任务的可选噪音发生器。
实现
- 单智能体 RL 算法
| 算法 | 类型 | 开/关策略 | 可用任务 | 纸 | 代码 |
|---|---|---|---|---|---|
| 深度 Q 学习 | 基于价值 | 政策外 | 离散的 | [纸] | [代码] |
| 近端策略优化 | 基于策略 | 政策上 | 离散的 | [纸] | [代码] |
| 信任区域策略优化 | 基于策略 | 政策上 | 离散的 | [纸] | [代码] |
| 深度确定性策略梯度 | 基于策略 | 政策外 | 连续的 | [纸] | [代码] |
| 软演员-评论家离散 | 基于策略 | 政策外 | 离散的 | [纸] | [代码] |
注意这里的“可用任务”是指算法的实现版本,并不代表一个算法只能处理单一类型的任务。例如,PPO 不仅可以处理离散任务,还可以处理连续任务,但我们这里只实现离散版本。
- 多智能体 RL 算法
| 算法 | 类型 | 开/关策略 | 可用任务 | 纸 | 代码 |
|---|---|---|---|---|---|
| QMIX | 基于价值 | 政策外 | 离散的 | [纸] | [代码] |
例子
运行以下示例代码来训练 PPO 代理:
import logging
import torch
import gym
import sys
import os
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s [%(levelname)s] %(message)s',
stream=sys.stdout, datefmt='%H:%M:%S')
sys.path.append('..')
from yuanrl.sarl.apis.PPO import PPO
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
env = gym.make('Acrobot-v1')
env.seed(0)
actor_kwargs = {'input_dim': env.observation_space.shape[0], 'output_dim': env.action_space.n}
critic_kwargs = {'input_dim': env.observation_space.shape[0], 'output_dim': 1}
agent = PPO(
device=device,
state_dim=env.observation_space.shape[0],
action_dim=env.action_space.n,
actor_kwargs=actor_kwargs,
critic_kwargs=critic_kwargs,
det=False,
lr=1e-3
)
for game in range(1000):
state = env.reset()
episode_reward = 0
while True:
action = agent.decide(state)
next_state, reward, done, info = env.step(action)
# env.render()
episode_reward += reward
agent.learn(state, action, reward, next_state, done)
if done:
break
state = next_state
logging.info('Episode={}, Reward={}'.format(game + 1, episode_reward))
致谢
非常感谢肖志清博士撰写的优秀书籍和代码。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
yuanrl-0.0.6.tar.gz
(13.5 kB
查看哈希)
内置分布
yuanrl-0.0.6-py3-none-any.whl
(22.8 kB
查看哈希)