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