rl_games配置文件详解:轻松定制你的强化学习训练参数

【免费下载链接】rl_games 【免费下载链接】rl_games 项目地址: https://gitcode.com/gh_mirrors/rl/rl_games

rl_games是一个功能强大的强化学习框架,通过配置文件可以轻松定制各种训练参数,满足不同环境和算法的需求。本文将详细解析rl_games配置文件的结构和关键参数,帮助你快速上手并优化你的强化学习训练。

配置文件基本结构

rl_games的配置文件采用YAML格式,主要包含paramsalgomodelnetworkconfig五个核心部分。每个部分负责不同的功能设置,共同构成完整的训练配置。

params部分

params部分主要设置全局参数,如随机种子和线程数。例如:

params:
  torch_threads: 4
  seed: 5

seed参数用于固定随机数生成器的种子,确保实验的可重复性;torch_threads则设置PyTorch使用的线程数量。

algo部分

algo部分指定使用的强化学习算法。rl_games支持多种算法,如A2C、PPO等。例如:

algo:
  name: a2c_continuous

这里指定使用连续动作空间的A2C算法。对于离散动作空间,可以使用a2c_discrete

model部分

model部分定义模型的类型。根据动作空间的类型选择不同的模型:

model:
  name: continuous_a2c_logstd

对于连续动作空间,使用continuous_a2c_logstd;对于离散动作空间,则使用discrete_a2c

network部分

network部分配置神经网络结构,包括网络类型、激活函数、层结构等。这是配置文件中最复杂也最关键的部分之一。

连续动作空间网络配置

以Mujoco环境的Ant-v4为例,其网络配置如下:

network:
  name: actor_critic
  separate: False
  space:
    continuous:
      mu_activation: None
      sigma_activation: None
      mu_init:
        name: default
      sigma_init:
        name: const_initializer
        val: 0
      fixed_sigma: True
  mlp:
    units: [256, 128, 64]
    activation: elu
    initializer:
      name: default
  • name: actor_critic指定使用Actor-Critic架构
  • separate: False表示Actor和Critic共享网络参数
  • space部分定义动作空间的属性,包括均值和标准差的初始化方式
  • mlp部分定义多层感知机的结构,units指定各层神经元数量,activation指定激活函数

Mujoco环境下的Ant机器人 图:Mujoco环境下的Ant机器人,通过配置文件中的参数控制其运动和学习过程

离散动作空间网络配置

以Atari游戏Pong为例,其网络配置如下:

network:
  name: actor_critic
  separate: False
  space:
    discrete:
  cnn:
    type: conv2d
    activation: elu
    convs:
      - filters: 32
        kernel_size: 8
        strides: 4
        padding: 0
      - filters: 64
        kernel_size: 4
        strides: 2
        padding: 0
      - filters: 64
        kernel_size: 3
        strides: 1
        padding: 0
  mlp:
    units: [512]
    activation: elu
    initializer:
      name: orthogonal_initializer
      gain: 1.41421356237

这里使用了CNN(卷积神经网络)处理图像输入,convs部分定义了卷积层的参数,包括滤波器数量、 kernel大小、步长等。

Atari游戏Pong 图:Atari游戏Pong,通过CNN网络处理游戏画面进行决策

config部分

config部分包含训练过程中的各种超参数设置,是优化训练效果的关键。

环境设置
config:
  name: Ant-v4_ray
  env_name: openai_gym
  env_config:
    name: Ant-v4
    seed: 5

env_name指定使用的环境名称,env_config则包含环境的具体配置。

训练参数
config:
  normalize_input: True
  normalize_value: True
  normalize_advantage: True
  gamma: 0.99
  tau: 0.95
  learning_rate: 3e-4
  lr_schedule: adaptive
  kl_threshold: 0.008
  grad_norm: 1.0
  entropy_coef: 0.0
  e_clip: 0.2
  max_epochs: 2000
  num_actors: 64
  horizon_length: 64
  minibatch_size: 2048
  mini_epochs: 4
  critic_coef: 2

这些参数控制着训练的各个方面:

  • gammatau是折扣因子和GAE参数
  • learning_rate设置学习率,lr_schedule指定学习率调度策略
  • horizon_length是每个actor收集的轨迹长度
  • minibatch_sizemini_epochs控制PPO算法中的采样和更新过程
  • critic_coef是 Critic 损失的权重系数

不同环境的配置示例

rl_games支持多种环境,每种环境都有其特定的配置需求。以下是几个常见环境的配置示例。

Mujoco环境配置

Mujoco环境适用于连续动作空间的机器人控制任务。以HalfCheetah为例:

config:
  name: HalfCheetah-v4_ray
  env_name: openai_gym
  env_config:
    name: HalfCheetah-v4
  normalize_input: True
  normalize_value: True
  gamma: 0.99
  tau: 0.95
  learning_rate: 3e-4
  num_actors: 64
  horizon_length: 64
  minibatch_size: 2048

Mujoco环境下的HalfCheetah 图:Mujoco环境下的HalfCheetah机器人

Brax环境配置

Brax是一个基于JAX的物理模拟引擎,适合快速训练。以Humanoid为例:

config:
  name: Humanoid_brax
  env_name: brax
  mixed_precision: True
  normalize_input: True
  normalize_value: True
  gamma: 0.99
  tau: 0.95
  learning_rate: 3e-4
  num_actors: 4096
  horizon_length: 16
  minibatch_size: 32768
  mini_epochs: 5

Brax环境下的Humanoid 图:Brax环境下的Humanoid机器人

Atari游戏配置

Atari游戏是离散动作空间的经典任务。以Breakout为例:

config:
  name: BreakoutNoFrameskip_ray
  env_name: BreakoutNoFrameskip-v4
  normalize_input: True
  normalize_value: True
  gamma: 0.99
  tau: 0.95
  learning_rate: 3e-4
  entropy_coef: 0.01
  num_actors: 64
  horizon_length: 128
  minibatch_size: 2048

Atari游戏Breakout 图:Atari游戏Breakout,需要通过CNN网络处理游戏画面

配置文件的使用方法

要使用配置文件运行训练,只需在启动命令中指定配置文件路径:

python runner.py --train --config rl_games/configs/mujoco/ant.yaml

你也可以根据自己的需求修改现有配置文件,或创建新的配置文件。rl_games提供了丰富的配置选项,位于rl_games/configs/目录下,涵盖了从简单的CartPole到复杂的SMAC多智能体环境等多种场景。

配置参数调优技巧

  1. 学习率调整:初始学习率通常设置为3e-4,对于复杂环境可以适当减小,如1e-4。

  2. 批次大小:较大的批次大小可以提高训练稳定性,但需要更多内存。根据你的GPU内存调整minibatch_size

  3. 熵系数entropy_coef控制探索和利用的平衡。对于需要大量探索的环境,可以适当提高该值。

  4. 折扣因子gamma通常设置为0.99,对于短期奖励明显的任务可以适当减小。

  5. 网络结构:对于图像输入,使用CNN网络;对于状态输入,使用MLP网络。根据任务复杂度调整网络层数和神经元数量。

总结

rl_games配置文件提供了灵活而强大的参数定制能力,通过调整这些参数,你可以轻松适配不同的环境和算法需求。本文介绍了配置文件的基本结构和关键参数,以及不同环境的配置示例和调优技巧。希望这些内容能帮助你更好地使用rl_games进行强化学习研究和应用开发。

如果你想深入了解更多配置参数的细节,可以参考官方文档docs/CONFIG_PARAMS.md,那里有更全面的参数说明和使用指南。

【免费下载链接】rl_games 【免费下载链接】rl_games 项目地址: https://gitcode.com/gh_mirrors/rl/rl_games

Logo

立足具身智能前沿赛道,致力于搭建全球化、开源化、全栈式技术交流与实践共创平台。

更多推荐