强化学习基本实操

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


相关推荐
Baihai_IDP5 小时前
强化学习的“GPT-3 时刻”即将到来
人工智能·llm·强化学习
zhangfeng11336 小时前
Shi-Tomasi 算法和 Harris 角点检测算法都是经典的角点检测方法,但它们在理论基础和实现细节上有一些区别。下面我将详细对比这两种算法。
opencv·算法·计算机视觉
Blossom.11811 小时前
把 AI 塞进「自行车码表」——基于 MEMS 的 3D 地形预测码表
人工智能·python·深度学习·opencv·机器学习·计算机视觉·3d
这张生成的图像能检测吗17 小时前
(论文速读)Prompt Depth Anything:让深度估计进入“提示时代“
深度学习·计算机视觉·深度估计
2501_9248772120 小时前
强逆光干扰漏检率↓78%!陌讯多模态融合算法在光伏巡检的实战优化
大数据·人工智能·算法·计算机视觉·目标跟踪
程序猿小D20 小时前
【完整源码+数据集+部署教程】脑部CT图像分割系统源码和数据集:改进yolo11-CSwinTransformer
python·yolo·计算机视觉·数据集·yolo11·脑部ct图像分割
不枯石1 天前
Python计算点云的欧式、马氏、最近邻、平均、倒角距离(Chamfer Distance)
python·计算机视觉
竹子_231 天前
《零基础入门AI: 目标检测基础知识》
人工智能·python·目标检测·计算机视觉
春末的南方城市1 天前
统一虚拟试穿框架OmniTry:突破服装局限,实现多品类可穿戴物品虚拟试穿无蒙版新跨越。
人工智能·深度学习·机器学习·计算机视觉·aigc