强化学习系列(1):从零理解强化学习基础与框架
一、什么是强化学习?
- 定义:通过与环境的交互学习最优决策策略的机器学习方法
- 核心三要素:Agent(智能体)、Environment(环境)、Reward(奖励)
- 典型应用场景:
- 游戏AI(AlphaGo、Dota2 OpenAI)
- 机器人控制(波士顿动力)
- 自动驾驶决策系统
二、强化学习与监督学习的区别
| 对比维度 | 监督学习 | 强化学习 |
|----------------|------------------|------------------|
| 数据形式 | 静态数据集 | 动态交互过程 |
| 反馈信号 | 明确的标签 | 延迟的奖励信号 |
| 目标 | 最小化预测误差 | 最大化长期回报 |
| 典型算法 | CNN、RNN | Q-Learning、PPO |
三、马尔可夫决策过程(MDP)
MDP五元组
- S:状态集合(States)
- A:动作集合(Actions)
- P:状态转移概率(Transition Probability)
- R:奖励函数(Reward Function)
- γ:折扣因子(0≤γ≤1)
贝尔曼方程公式
V ( s ) = E [ R t + 1 + γ V ( s ′ ) ] V(s) = \mathbb{E}\left[ R_{t+1} + \gamma V(s') \right] V(s)=E[Rt+1+γV(s′)]
四、OpenAI Gym环境实战
安装必要库
pip install gymnasium numpy
经典CartPole环境示例
import gymnasium as gym
# 创建环境
env = gym.make('CartPole-v1', render_mode='human')
observation, info = env.reset()
for _ in range(1000):
action = env.action_space.sample() # 随机选择动作
observation, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
observation, info = env.reset()
env.close()
五、Q-Learning基础实现
算法伪代码
Initialize Q(s,a) arbitrarily
Repeat (for each episode):
Initialize s
Repeat (for each step of episode):
Choose a from s using policy derived from Q
Take action a, observe r, s'
Q(s,a) ← Q(s,a) + α[r + γ*max_a'Q(s',a') - Q(s,a)]
s ← s'
until s is terminal
Python实现片段
import numpy as np
# 初始化Q表(状态空间x动作空间)
q_table = np.zeros([env.observation_space.n, env.action_space.n])
# 超参数设置
alpha = 0.1 # 学习率
gamma = 0.99 # 折扣因子
epsilon = 0.1 # 探索率
# 单步Q值更新公式
state = env.reset()
action = np.argmax(q_table[state])
next_state, reward, done, _ = env.step(action)
# Q学习更新规则
q_table[state, action] = (1 - alpha) * q_table[state, action] + \
alpha * (reward + gamma * np.max(q_table[next_state]))
六、常见问题解答
1. 如何选择合适的环境?
✅ 建议路径:
- 入门:CartPole(平衡杆)、FrozenLake(网格导航)
- 进阶:MountainCar(爬山问题)、Atari游戏环境
- 实战:MuJoCo(复杂机器人控制)
2. 什么时候该用值迭代/策略梯度?
- 值迭代方法(Q-Learning/DQN):适合离散动作空间
- 策略梯度方法(PPO/SAC):适合连续动作空间
七、学习资源推荐
- 经典教材:
- 《Reinforcement Learning: An Introduction》(Sutton&Barto圣经)
- 《动手学强化学习》(中文实践指南)
- 开源项目:
- 工具包推荐:
- Gymnasium:标准环境库(原OpenAI Gym)
- PyTorch/TensorFlow:神经网络实现
八、下期预告:深度Q网络(DQN)与经验回放
在**强化学习系列(2)**中,您将学习到:
- Q-Learning的神经网络实现
- Experience Replay机制原理
- 用PyTorch实现Breakout游戏AI
欢迎在评论区留下您的实践心得或困惑!点击关注获取系列更新提醒 🔔

被折叠的 条评论
为什么被折叠?



