Stable-Baselines3强化学习框架:Ant环境下的PPO算法实践
创作时间:
作者:
@小白创作中心
Stable-Baselines3强化学习框架:Ant环境下的PPO算法实践
引用
CSDN
1.
https://blog.csdn.net/weixin_37522117/article/details/144091015
Stable-Baselines3 (SB3) 是一个基于 PyTorch 的库,提供了可靠的强化学习算法实现。它拥有简洁易用的接口,让用户能够直接使用现成的、最先进的无模型强化学习算法。
以下是一个基于强化学习和 Gym 中 mujoco 的 Ant 环境的案例,使用了 Proximal Policy Optimization (PPO) 算法,这是一个适用于连续状态和动作空间的强化学习算法。
环境准备
安装依赖
确保安装以下库:
pip install gym[mujoco] stable-baselines3 shimmy
- gym[mujoco] : 提供 MuJoCo 环境支持。
- stable-baselines3 : 包含多种强化学习算法的库,包括 PPO。
- shimmy : stable-baselines3需要用到shimmy。
完整代码
实现 PPO 与 Ant 环境交互
import gym
from stable_baselines3 import PPO
import imageio
# 创建 Ant 环境l
env = gym.make("Ant-v4")
# 使用 Stable-Baselines3 的 PPO 算法
model = PPO(
"MlpPolicy", # 多层感知机作为策略网络
env,
verbose=1,
learning_rate=0.0003,
n_steps=2048,
batch_size=64,
n_epochs=10,
gamma=0.99,
gae_lambda=0.95,
)
# 训练模型, total_timesteps自行调整
model.learn(total_timesteps=100000)
# 保存模型
model.save("ppo_ant")
# 加载模型
model = PPO.load("ppo_ant")
# 创建测试环境
env = gym.make("Ant-v4", render_mode="rgb_array")
# 存储每帧图像
frames = []
# 测试模型
obs, info = env.reset()
for _ in range(1000):
env.render()
frames.append(env.render()) # 捕获帧
action, _ = model.predict(obs)
next_state, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
obs, info = env.reset()
env.close()
# 保存为视频
imageio.mimsave("./ppo_ant_video.mp4", frames, fps=30)
代码解析
- 创建 Ant 环境
- 使用 gym.make("Ant-v4") 创建 Ant 环境。
- 使用 PPO 算法
- 策略网络:使用 MlpPolicy(多层感知机策略)。
- 超参数设置:
- learning_rate:学习率,控制更新步长。
- n_steps:每次更新前的时间步数。
- batch_size:训练时的批量大小。
- n_epochs:每次更新的训练轮数。
- gamma:折扣因子,权衡短期与长期奖励。
- gae_lambda:广义优势估计(GAE)的参数,用于稳定学习。
- 训练模型
- 使用 model.learn() 函数训练模型。
- 测试模型
- 使用 model.predict(obs) 获得动作决策。
- 在环境中运行训练好的策略,通过渲染观察蚂蚁机器人的运动行为。
运行结果如下
若训练轮次较少,蚂蚁会翻倒
ppo训练轮数较少的情况
训练100000轮后,蚂蚁不再会翻倒
ppo训练轮数较多的情况
关键点与挑战
- 动作控制:
- 机器人通过连续动作控制腿部关节,需要策略学习如何协调运动。
- 强化学习算法需要在高维动作空间中找到最优策略。
- 奖励函数设计:
- 环境自带的奖励函数主要基于蚂蚁的前进速度和能量效率。
- 奖励设计需平衡速度、稳定性和能量消耗。
- 计算复杂度:
- 高维状态和动作空间会增加学习的难度,需要更长时间训练。
扩展方向
- 改进奖励函数:
- 自定义奖励函数,例如鼓励更多的能量效率或更复杂的步态。
- 多任务学习:
- 在 Ant 环境中添加不同目标,例如绕过障碍或追踪目标点。
- 模型性能对比:
- 试验其他强化学习算法(如 DDPG、SAC、TD3),对比训练速度与性能。
- 迁移学习:
- 将训练好的蚂蚁策略应用于其他机器人环境,测试泛化能力。
总结
经过训练,蚂蚁机器人能够学会如何行走并避免翻倒。最终表现取决于训练时间和算法参数设置。渲染结果可以显示蚂蚁运动的动画效果。
热门推荐
如何跟不愉快的过去道别?五步法挥别过去,迎接未来
接受无法挽回的一切——走出伤心时刻的秘诀
影响港股2025年走势的五大变量
面肌痉挛的三种治疗方法详解
江山代有才人出,各领风骚数百年。
老祖宗留给我们的两情关系的16句俗语,每一句都值得我们反思
克拉苏之死:罗马帝国的悲剧与转折
探索红色屋顶的魅力:历史、文化与应用解析
2024-2025学年高考英语词汇提升计划
八段锦“摇头摆尾去心火”详解:技术要点与三步练习法
星途遭大量车主投诉,奇瑞的高端之路再次受阻?
深度学习注意力机制详解:软硬注意力如何抉择?
最接近神的天才:特斯拉
18k个视频、专为自动驾驶世界模型设计,DrivingDojo数据集来了
刘邦的逆袭之路:从小混混到大汉皇帝,他是如何 “拿捏” 人心的?
中国算力大会重磅发布《人工智能算力高质量发展评估体系报告》!
庄子哲学揭秘:如何在“道”中找到终极自由与精神觉醒
张九龄:唐代著名政治家、文学家、诗人
电耗或比小鹏低?秦L EV空间没变,底盘舒适性大于操控?
申请执行人执行异议之诉具体流程是什么
2025年高考各科分数满分详解:新高考与传统高考模式对比
不合群也是优势:如何独自一人提升自我价值
游戏作为媒介赋能中华文化创新传播的实践探索
空调的保修期一般为几年,空调保修期内的常见问题有哪些
最新国内网速报告出炉!上海夺得“双冠王”
MBTI人格分析:探索自我与理解他人的有力工具
中科院:将深入推动多种形式的空间科学国际合作交流
恋爱周期各阶段的持续时间解析 恋爱阶段划分与发展规律
范蠡诞辰2560周年活动在宁波成功举办
查出肝硬化怎么办?哪些原因引起的?预防肝硬化,从生活细节做起