强化学习基本实操

🤖 强化学习入门: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: 尝试修改神经网络结构或超参数,比较训练效果差异。


相关推荐
欧特克_Glodon2 小时前
OpenCV计算机视觉开发入门与实践<三十五>:开发视频播放器
c++·opencv·计算机视觉·音视频
大熊背3 小时前
冯‑克里斯映射估计算法逻辑
深度学习·机器学习·计算机视觉·白平衡·色调映射·冯-克里斯映射估计
差不多的周周3 小时前
《MoChat:面向多转弯动作理解和描述的关节分组时空接地多通道大语言模型》论文核心部分详解
人工智能·深度学习·机器学习·计算机视觉·语言模型·自然语言处理
kyle~5 小时前
标注平台---CVAT
人工智能·目标检测·计算机视觉·机器视觉
szxinmai主板定制专家5 小时前
基于 RK3576 的智能割草机器人解决方案,从样机到量产
人工智能·嵌入式硬件·计算机视觉·fpga开发·机器人·rk3588+fpga·割草机器人
AI云海5 小时前
计算机视觉之-YOLO目标检测
yolo·目标检测·计算机视觉
YOLO数据集集合5 小时前
红外热成像人员检测数据集 |红外检测 白热模式 人员检测 夜间监控 目标检测 YOLO格式 深度学习数据集 计算机视觉9067期
数据库·深度学习·yolo·目标检测·计算机视觉·红外人员·红外数据
埃科光电19 小时前
16K万兆网口彩色线阵相机:四倍带宽 高速真彩检测新方案
网络·图像处理·数码相机·计算机视觉·制造·相机
学术 学术 Fun20 小时前
612 次图表重建实验告诉我们的:O612 次图表重建实验告诉我们的:OCR、图形与连接线CR、图形与连接线
机器学习·计算机视觉·ocr·图表
CV山月21 小时前
大模型强化学习对齐:从 RLHF 框架到 PPO 算法原理
人工智能·python·大模型·强化学习·多模态·研究生