强化学习基本实操

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


相关推荐
沃达德软件6 小时前
人工智能治安管控系统
图像处理·人工智能·深度学习·目标检测·计算机视觉·目标跟踪·视觉检测
shishi5217 小时前
trae重装后,无法预览调试弹窗报错的解决方案
ide·计算机视觉·语言模型
柳鲲鹏7 小时前
OpenCV:超分辨率、超采样及测试性能
人工智能·opencv·计算机视觉
sali-tec12 小时前
C# 基于OpenCv的视觉工作流-章16-凸包
图像处理·人工智能·opencv·算法·计算机视觉
MM_MS12 小时前
Halcon一维码的读取、批量条码检测_含未检测到条码处理、兼容多种二维码识别、OCR字符提取
图像处理·人工智能·算法·计算机视觉·目标跟踪·视觉检测·ocr
光羽隹衡14 小时前
计算机视觉--Opencv(轮廓检测+轮廓特征+轮廓近似)
人工智能·opencv·计算机视觉
Coovally AI模型快速验证14 小时前
YOLO26技术详解:原生NMS-Free架构设计与实现原理
人工智能·计算机视觉·开源·音视频·无人机
qwy71522925816314 小时前
5-图像加法运算
人工智能·opencv·计算机视觉
sali-tec14 小时前
C# 基于OpenCv的视觉工作流-章17-外接矩形
图像处理·人工智能·opencv·算法·计算机视觉
岑梓铭14 小时前
YOLO深度学习—旋转框obb数据集快速打标签
人工智能·深度学习·神经网络·yolo·计算机视觉