🤖 强化学习入门:Stable-Baselines3 与常见环境使用教程
强化学习(Reinforcement Learning, RL)是近年来人工智能领域的热门方向,而 Stable-Baselines3 是目前最常用、最友好的 RL 库之一。本文带你快速上手,从安装到训练智能体,并尝试不同环境。
🚀 一、安装 Stable-Baselines3
- 
创建虚拟环境(推荐) bashconda create -n rl python=3.10 -y conda activate rl
- 
安装 stable-baselines3 与 gym bashpip install stable-baselines3[extra] gym
- 
验证安装 👉 截图示例:在 Python 中 import stable_baselines3成功运行pythonimport stable_baselines3 print(stable_baselines3.__version__)
🏞️ 二、认识常见强化学习环境
Stable-Baselines3 常配合 Gym 或 Gymnasium 使用,这些环境相当于游戏场景,智能体通过和环境交互学习。
- 
经典控制任务(CartPole、MountainCar) - 适合入门 ✅
- 简单二维环境,快速收敛。
 pythonimport gym env = gym.make("CartPole-v1") obs = env.reset() env.render() # 👉 截图示例:小车 + 杆子平衡画面
- 
Atari 游戏环境(Pong、Breakout) - 
难度更高,常用于研究论文。 
- 
需安装: bashpip install ale-py pip install autorom[accept-rom-license]
 👉 截图示例:Pong 游戏画面 
- 
- 
MuJoCo 物理仿真(机器人控制) - 
常见环境: HalfCheetah-v4,Ant-v4
- 
需额外安装: bashpip 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 游戏中智能体逐渐学会接球
📊 四、结果可视化
- 
tensorboard 日志查看 bashpip install tensorboard tensorboard --logdir logs/👉 截图示例:TensorBoard reward 曲线图 
- 
Matplotlib 绘制 Reward 曲线 👉 适合自定义实验报告。 
❗ 五、常见问题
- 
环境找不到 - 提示 gym.error.UnregisteredEnv
- 解决:确认安装了依赖,比如 pip install gym[atari]。
 
- 提示 
- 
渲染失败 - 
Windows 用户需安装: bashpip install pyglet==1.5.27
 
- 
- 
训练太慢 - 尝试减少 total_timesteps或使用n_envs并行环境。
 
- 尝试减少 
✅ 总结
本文带你完成了:
- Stable-Baselines3 安装 ✔️
- 熟悉常见环境(CartPole / Atari / MuJoCo) ✔️
- 使用 PPO、DQN 训练智能体 ✔️
- 可视化结果 ✔️
Recommendation: 入门可以先从 CartPole-v1 开始,再尝试 Atari 和 MuJoCo。
Next step: 尝试修改神经网络结构或超参数,比较训练效果差异。