强化学习基本实操

🤖 强化学习入门:Stable-Baselines3 与常见环境使用教程

强化学习(Reinforcement Learning, RL)是近年来人工智能领域的热门方向,而 Stable-Baselines3 是目前最常用、最友好的 RL 库之一。本文带你快速上手,从安装到训练智能体,并尝试不同环境。


🚀 一、安装 Stable-Baselines3

  1. 创建虚拟环境(推荐)

    bash 复制代码
    conda create -n rl python=3.10 -y
    conda activate rl
  2. 安装 stable-baselines3 与 gym

    bash 复制代码
    pip install stable-baselines3[extra] gym
  3. 验证安装

    👉 截图示例:在 Python 中 import stable_baselines3 成功运行

    python 复制代码
    import stable_baselines3
    print(stable_baselines3.__version__)

🏞️ 二、认识常见强化学习环境

Stable-Baselines3 常配合 GymGymnasium 使用,这些环境相当于游戏场景,智能体通过和环境交互学习。

  1. 经典控制任务(CartPole、MountainCar)

    • 适合入门 ✅
    • 简单二维环境,快速收敛。
    python 复制代码
    import gym
    
    env = gym.make("CartPole-v1")
    obs = env.reset()
    env.render()  # 👉 截图示例:小车 + 杆子平衡画面
  2. Atari 游戏环境(Pong、Breakout)

    • 难度更高,常用于研究论文。

    • 需安装:

      bash 复制代码
      pip install ale-py
      pip install autorom[accept-rom-license]

    👉 截图示例:Pong 游戏画面

  3. MuJoCo 物理仿真(机器人控制)

    • 常见环境:HalfCheetah-v4, Ant-v4

    • 需额外安装:

      bash 复制代码
      pip install mujoco gym[mujoco]

    👉 截图示例:机器人四足行走画面


🧠 三、Stable-Baselines3 算法使用

Stable-Baselines3 提供了常见强化学习算法的实现,比如:

  • PPO(Proximal Policy Optimization)
  • DQN(Deep Q-Network)
  • A2C(Advantage Actor Critic)
  • SAC(Soft Actor-Critic)

示例 1:用 PPO 训练 CartPole

python 复制代码
import gym
from stable_baselines3 import PPO

# 创建环境
env = gym.make("CartPole-v1")

# 定义模型
model = PPO("MlpPolicy", env, verbose=1)

# 训练 1 万步
model.learn(total_timesteps=10000)

# 保存模型
model.save("ppo_cartpole")

# 测试模型
obs = env.reset()
for _ in range(1000):
    action, _ = model.predict(obs)
    obs, reward, done, info = env.step(action)
    env.render()
    if done:
        obs = env.reset()

👉 截图示例:训练日志(loss、reward 变化)

👉 截图示例:小车学会平衡的画面


示例 2:用 DQN 玩 Atari 游戏 Pong

python 复制代码
import gym
from stable_baselines3 import DQN

env = gym.make("ALE/Pong-v5")

model = DQN("CnnPolicy", env, verbose=1)
model.learn(total_timesteps=100000)

obs = env.reset()
for _ in range(10000):
    action, _ = model.predict(obs)
    obs, reward, done, info = env.step(action)
    env.render()
    if done:
        obs = env.reset()

👉 截图示例:Pong 游戏中智能体逐渐学会接球


📊 四、结果可视化

  1. tensorboard 日志查看

    bash 复制代码
    pip install tensorboard
    tensorboard --logdir logs/

    👉 截图示例:TensorBoard reward 曲线图

  2. Matplotlib 绘制 Reward 曲线

    👉 适合自定义实验报告。


❗ 五、常见问题

  1. 环境找不到

    • 提示 gym.error.UnregisteredEnv
    • 解决:确认安装了依赖,比如 pip install gym[atari]
  2. 渲染失败

    • Windows 用户需安装:

      bash 复制代码
      pip install pyglet==1.5.27
  3. 训练太慢

    • 尝试减少 total_timesteps 或使用 n_envs 并行环境。

✅ 总结

本文带你完成了:

  • Stable-Baselines3 安装 ✔️
  • 熟悉常见环境(CartPole / Atari / MuJoCo) ✔️
  • 使用 PPO、DQN 训练智能体 ✔️
  • 可视化结果 ✔️

Recommendation: 入门可以先从 CartPole-v1 开始,再尝试 Atari 和 MuJoCo。
Next step: 尝试修改神经网络结构或超参数,比较训练效果差异。


相关推荐
Rui_Freely24 分钟前
Vins-Fusion之 相机—IMU在线标定(十一)
人工智能·算法·计算机视觉
数据分享者2 小时前
猫狗图像分类数据集-21616张标准化128x128像素JPEG图像-适用于计算机视觉教学研究与深度学习模型训练-研究人员、开发者和学生提供实验平台
深度学习·计算机视觉·分类
duyinbi75172 小时前
【计算机视觉实践】:基于YOLOv8-BIMAFPN的海洋漏油事件检测与分类系统实现_2
yolo·计算机视觉·分类
西柚小萌新3 小时前
【计算机视觉CV:目标检测】--1.目标检测简介
目标检测·计算机视觉·目标跟踪
Rui_Freely4 小时前
Vins-Fusion之 相机—IMU在线标定(两帧间旋转估计)(十)
人工智能·算法·计算机视觉
棒棒的皮皮4 小时前
【深度学习】YOLO模型精度优化全攻略
人工智能·深度学习·yolo·计算机视觉
集和诚JHCTECH4 小时前
BRAV-7722赋能手术机器人:高性能控制方案,守护精准手术的每一刻
人工智能·嵌入式硬件·计算机视觉
Jerryhut5 小时前
背景建模实战:从帧差法到混合高斯模型的 OpenCV 实现
人工智能·opencv·计算机视觉
棒棒的皮皮5 小时前
【深度学习】YOLO实战之模型训练
人工智能·深度学习·yolo·计算机视觉
数据光子5 小时前
【YOLO数据集】遛狗未牵绳目标检测
人工智能·python·yolo·目标检测·计算机视觉