强化学习
→ 返回机器学习
智能体(Agent)通过与环境交互、接受奖励或惩罚,学习最优策略以最大化长期累积回报。区别于监督学习(有标签答案),RL 只有延迟的奖励信号。
核心要素
| 要素 | 说明 | 示例 |
|---|---|---|
| 智能体(Agent) | 学习决策的主体 | 游戏角色、机器人 |
| 环境(Environment) | Agent 交互的世界 | 游戏引擎、物理仿真 |
| 状态(State,s) | 当前时刻的环境快照 | 棋盘局面、传感器数据 |
| 动作(Action,a) | Agent 可执行的操作 | 移动方向、输出文字 |
| 奖励(Reward,r) | 环境给出的即时反馈 | +1(胜)、-1(败) |
| 策略(Policy,π) | 状态到动作的映射 | π(a|s) = 概率分布 |
| 价值函数(V/Q) | 当前状态/动作的长期回报期望 | V(s)、Q(s,a) |
核心公式
Bellman 方程(价值迭代基础):
- :折扣因子,控制对未来奖励的重视程度
- :只看当前奖励;:重视长远回报
主要算法分类
基于价值(Value-Based)
学习动作价值函数 Q(s,a),选择 Q 值最大的动作:
| 算法 | 特点 |
|---|---|
| Q-Learning | 离策略,表格式,适合离散小状态空间 |
| DQN | 用神经网络近似 Q 函数,突破状态空间限制 |
| Double DQN | 解决 Q 值高估问题 |
| Dueling DQN | 分离状态价值和动作优势,训练更稳定 |
# DQN 核心:经验回放 + 目标网络
import torch.nn as nn
class DQN(nn.Module):
def __init__(self, state_dim, action_dim):
super().__init__()
self.net = nn.Sequential(
nn.Linear(state_dim, 128), nn.ReLU(),
nn.Linear(128, 128), nn.ReLU(),
nn.Linear(128, action_dim)
)
def forward(self, x):
return self.net(x) # 输出每个动作的 Q 值基于策略(Policy-Based)
直接学习策略 π(a|s),适合连续动作空间:
| 算法 | 特点 |
|---|---|
| REINFORCE | 简单,方差大 |
| PPO | 近端策略优化,稳定高效,工业界主流 |
| TRPO | 理论严谨,实现复杂 |
演员-评论家(Actor-Critic)
结合价值函数(评论家)减小策略梯度方差:
Actor: 更新策略参数 θ,输出动作分布 π_θ(a|s)
Critic: 估计价值 V(s),为 Actor 提供基线
代表:A3C、SAC、PPO(带 Critic)
PPO 核心思想
# PPO Clip 目标函数(防止策略更新步子太大)
ratio = π_new(a|s) / π_old(a|s)
clip_ratio = torch.clamp(ratio, 1 - ε, 1 + ε) # ε 通常为 0.2
loss = -torch.min(ratio * advantage, clip_ratio * advantage).mean()RLHF(人类反馈强化学习)
训练 LLM 遵循人类偏好的核心技术:
阶段 1 - SFT:用人工标注数据微调基础模型
↓
阶段 2 - Reward Model:训练奖励模型,学习人类偏好打分
↓
阶段 3 - PPO/DPO:用 RM 信号 + PPO/DPO 优化语言模型策略
| 方法 | 说明 | 模型 |
|---|---|---|
| RLHF + PPO | 经典,需要奖励模型 + RL 训练 | InstructGPT、Claude 1/2 |
| DPO | 直接偏好优化,不需要单独 RM | Llama 2/3、Mistral |
| GRPO | Group Relative Policy Optimization,DeepSeek 使用 | DeepSeek-R1 |
经典应用
| 场景 | 代表 |
|---|---|
| 游戏 AI | AlphaGo、AlphaStar、OpenAI Five |
| 机器人控制 | MuJoCo 仿真、真实机械臂 |
| 推荐系统 | 多步骤用户行为建模 |
| LLM 对齐 | ChatGPT、Claude(RLHF/DPO) |
| 自动驾驶 | 规划层的决策优化 |
探索-利用权衡
| 策略 | 说明 |
|---|---|
| ε-greedy | 以概率 ε 随机探索,否则贪心利用 |
| UCB | 置信上界,优先探索不确定的动作 |
| Thompson Sampling | 贝叶斯采样,理论最优 |
| 熵正则化 | 鼓励策略保持多样性(SAC 使用) |