Tianshou强化学习框架在MuJoCo环境中的基准测试与分析

Tianshou强化学习框架在MuJoCo环境中的基准测试与分析

tianshou An elegant PyTorch deep reinforcement learning library. tianshou 项目地址: https://gitcode.com/gh_mirrors/ti/tianshou

前言

Tianshou作为一个模块化强化学习框架,提供了多种经典算法的实现。本文将重点分析Tianshou在MuJoCo连续控制任务上的表现,帮助读者理解不同算法在各类环境中的性能特点,并为实际应用提供调参建议。

测试环境与方法

测试环境概述

测试覆盖了MuJoCo Gym任务套件中的9个连续控制环境,包括:

  • Ant:六足机器人行走
  • HalfCheetah:两足机器人快速奔跑
  • Hopper:单足跳跃
  • Walker2d:双足行走
  • Swimmer:蛇形机器人游泳
  • Humanoid:类人机器人行走
  • Reacher:机械臂到达目标
  • InvertedPendulum:倒立摆平衡
  • InvertedDoublePendulum:双倒立摆平衡

测试方法

  1. 基准配置:为每个算法提供默认超参数和复现脚本
  2. 性能对比:与其他开源实现和经典论文结果进行横向比较
  3. 结果呈现:提供训练曲线、原始数据、预训练模型等完整结果
  4. 调参建议:基于实验结果的实用调参技巧

离线策略算法表现

算法概述

离线策略算法包括:

  • DDPG(深度确定性策略梯度)
  • TD3(双延迟DDPG)
  • SAC(柔性演员-评论家)

这些算法共同特点是能够重用历史经验数据进行训练。

性能对比

DDPG表现

| 环境 | Tianshou(1M) | 对比结果 | |------|-------------|----------| | Ant | 990.4±4.3 | 优于SpinningUp(~840) | | HalfCheetah | 11718.7±465.6 | 显著优于文献结果 | | Hopper | 2197.0±971.6 | 与TD3论文结果相当 |

TD3表现

| 环境 | Tianshou(1M) | 对比结果 | |------|-------------|----------| | Ant | 5116.4±799.9 | 优于SpinningUp(~3800) | | HalfCheetah | 10201.2±772.8 | 优于文献结果(9637.0) | | Hopper | 3472.2±116.8 | 接近文献最佳(3564.1) |

SAC表现

| 环境 | Tianshou(1M) | 对比结果 | |------|-------------|----------| | Ant | 5850.2±475.7 | 显著优于SpinningUp(~3980) | | HalfCheetah | 12138.8±1049.3 | 优于文献结果(~10400) | | Hopper | 3542.2±51.5 | 优于文献结果(~3370) |

调参建议

  1. 学习率选择

    • TD3使用3e-4,而DDPG/SAC使用1e-3
    • 可尝试调整学习率以获得更好性能
  2. 网络结构

    • SAC中两个评论家网络不应共享参数
    • 高斯策略的σ应基于输入条件化
  3. 评估技巧

    • 确定性评估能显著提升性能

在线策略算法表现

算法概述

在线策略算法包括:

  • REINFORCE
  • A2C(优势演员评论家)
  • PPO(近端策略优化)

这些算法需要当前策略生成的数据进行训练。

性能对比

REINFORCE表现

| 环境 | Tianshou(10M) | Tianshou(3M) | SpinningUp(3M) | |------|--------------|-------------|---------------| | Ant | 1108.1±323.1 | 474.9±133.5 | ~5 | | HalfCheetah | 1138.8±104.7 | 884.0±41.0 | ~600 | | Hopper | 416.0±104.7 | 395.8±64.5 | ~800 |

A2C表现

A2C在多数环境中表现优于基线实现,特别是在Humanoid环境中展现出明显优势。

调参建议

  1. 网络初始化

    • 策略网络最后一层缩小0.01倍
    • 使用正交初始化
  2. 动作处理

    • 使用tanh函数将动作压缩到[-1,1]范围
    • 优于常用的裁剪方法
  3. 归一化技巧

    • 使用全局观测归一化
    • 使用全局回报归一化
  4. 学习率策略

    • 初始学习率建议1e-3
    • 训练后期线性衰减到0

实验工具与流程

环境加速

推荐使用envpool替代标准Gym环境,可获得2-3倍的速度提升。安装简单:

pip install envpool

实验流程

  1. 单次训练:
python mujoco_sac.py --task Ant-v3
  1. 批量实验(10个随机种子):
./run_experiments.sh Ant-v3 sac
  1. 结果分析:
# 生成CSV
./tools.py --root-dir ./results/Ant-v3/sac
# 绘制曲线
./plotter.py --root-dir ./results/Ant-v3
# 数值分析
./analysis.py --root-dir ./results --norm

结论

Tianshou实现的强化学习算法在MuJoCo环境中展现出与或优于现有最佳实现的性能。本文提供的基准结果和调参建议可作为相关研究和应用的参考。特别值得注意的是:

  1. 离线策略算法中,SAC在多数环境中表现最佳
  2. 在线策略算法通过适当的调参可以获得比基线更好的性能
  3. 使用envpool可以显著提升训练效率

读者可以根据具体任务需求选择合适的算法,并参考本文的调参建议进行优化。

tianshou An elegant PyTorch deep reinforcement learning library. tianshou 项目地址: https://gitcode.com/gh_mirrors/ti/tianshou

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

廉艳含

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值