1. 强化学习中的策略基础
在深入探讨On-Policy与Off-Policy之前,我们需要先理解强化学习中最核心的概念——策略(Policy)。策略本质上就是智能体在环境中的行为准则,它定义了在特定状态下应该采取什么动作。用数学语言来说,策略π(a|s)表示在状态s下采取动作a的概率分布。
提示:策略可以是确定性的(如a=π(s)),也可以是随机性的(如π(a|s))。现代深度强化学习通常使用参数化的神经网络来表示策略。
1.1 策略的演进过程
一个典型的强化学习训练过程中,策略会经历多个版本的迭代更新。假设我们有一个初始策略π₀,在与环境交互收集数据后,我们更新得到π₁,然后是π₂,依此类推。这种迭代过程带来了一个关键问题:我们应该用哪个版本的策略来生成训练数据?又该用哪些数据来更新当前策略?
这个问题的答案直接引出了On-Policy和Off-Policy方法的区分。想象你在学习打网球:
- 如果你只用今天练习时采用的打法(当前策略)来总结经验、改进技术,这就是On-Policy学习
- 如果你还参考上周的练习录像(旧策略)或者教练的示范(不同策略)来改进,这就是Off-Policy学习
2. On-Policy方法深度解析
2.1 核心机制与特点
On-Policy方法的核心特征是:行为策略(生成数据的策略)和目标策略(被优化的策略)是同一个策略。这意味着:
- 每次策略更新后,之前收集的数据就"过时"了,因为它们来自旧版本的策略
- 必须持续与环境交互,生成新的数据来反映当前策略的表现
- 策略改进是一个"实时"过程,边实践边学习
这种机制带来几个重要特性:
- 数据一致性:训练数据与当前策略完全匹配,没有分布偏移问题
- 稳定性高:策略更新是基于当前策略的真实表现,不易出现剧烈波动
- 样本效率低:旧数据不能重复使用,需要持续生成新数据
2.2 典型算法实现
2.2.1 REINFORCE算法
作为最基础的On-Policy算法,REINFORCE直接使用蒙特卡洛方法估计策略梯度。其更新公式为:
∇θJ(θ) = Eπ[∇θlogπ(a|s)Gₜ]
其中Gₜ是从当前时刻到episode结束的累计回报。实际操作中:
- 用当前策略πθ完成整个episode
- 计算每个时间步的回报Gₜ
- 用这些数据一次性更新策略
注意:REINFORCE的梯度估计方差很大,通常需要结合基线(baseline)技术来减少方差。
2.2.2 PPO算法
近端策略优化(PPO)是目前最流行的On-Policy算法,其核心创新是提出了"clipped surrogate objective":
L(θ) = E[min(rₜ(θ)Aₜ, clip(rₜ(θ),1-ε,1+ε)Aₜ)]
其中rₜ(θ)是新旧策略的概率比,Aₜ是优势函数。这个设计:
- 通过限制rₜ(θ)的变化范围,防止单次更新改变过大
- 在样本效率和稳定性之间取得了很好的平衡
- 特别适合需要精细控制更新幅度的大规模应用
2.3 实战经验与技巧
在实际应用中,On-Policy方法有几个关键注意事项:
-
批量大小选择:
- 太小会导致更新方向噪声大
- 太大则降低样本效率
- 通常建议每个batch包含几千到几万个时间步
-
并行数据收集:
- 使用多个环境实例并行采样
- 显著提高数据收集速度
- 现代实现通常采用GPU加速的向量化环境
-
超参数调优:
- 学习率:通常设为3e-4到1e-3
- clip范围ε:0.1到0.3之间
- 熵系数:开始时可以较大,后期逐渐减小
3. Off-Policy方法深度解析
3.1 核心机制与特点
Off-Policy方法的标志性特征是:行为策略μ和目标策略π可以不同。这带来了几个革命性的优势:
-
经验回放(Replay Buffer):
- 可以存储和重复使用历史经验
- 极大提高样本效率
- 允许"离线学习"(Offline RL)
-
灵活的数据来源:
- 可以使用专家示范数据
- 可以混合不同策略生成的数据
- 甚至可以使用人工设计的探索策略
-
策略评估更灵活:
- 可以同时评估多个候选策略
- 支持"离线策略评估"(OPE)
但这种灵活性也带来挑战:
- 分布偏移问题:行为策略μ和π的数据分布可能差异很大
- 高方差问题:重要性采样权重可能爆炸
- 稳定性挑战:价值函数估计容易发散
3.2 典型算法实现
3.2.1 DQN系列算法
深度Q网络(DQN)是Off-Policy方法的里程碑,其核心创新包括:
-
经验回放:
- 存储转移样本(s,a,r,s')
- 随机采样进行训练
- 打破数据相关性,提高稳定性
-
目标网络:
- 使用独立的网络计算目标值
- 定期与主网络同步
- 缓解训练不稳定性
DQN的变种不断改进:
- Double DQN:解决过高估计问题
- Dueling DQN:分离状态价值和优势函数
- Rainbow DQN:集成多种改进
3.2.2 SAC算法
柔性Actor-Critic(SAC)是现代最先进的Off-Policy算法之一,其特点包括:
-
最大熵框架:
- 同时最大化回报和策略熵
- 鼓励探索,防止过早收敛
- 自动调节温度参数
-
双Q网络设计:
- 使用两个Q函数估计器
- 取最小值作为目标
- 减少过高估计偏差
-
策略优化:
- 使用重参数化技巧
- 直接优化策略参数的期望回报
- 适用于连续动作空间
3.3 实战经验与技巧
使用Off-Policy方法时,这些实践经验非常宝贵:
-
回放缓冲区设计:
- 优先经验回放(Prioritized Experience Replay)可以显著提升性能
- 混合比例:新数据与旧数据的比例需要平衡
- 缓冲区大小:通常需要足够大(百万级样本)
-
重要性采样校准:
- 当μ和π差异大时,需要谨慎处理重要性权重
- 可以采用截断或归一化技术
- 有时需要限制策略更新的幅度
-
探索策略设计:
- ε-greedy:简单但有效
- Boltzmann探索:基于Q值调整探索概率
- 噪声注入:如OU噪声或参数空间噪声
4. 大模型时代的策略学习
4.1 RLHF中的策略选择
在大语言模型(LLM)的强化学习人类反馈(RLHF)中,策略选择尤为关键:
-
PPO的主导地位:
- 训练稳定性是首要考虑
- 模型推理成本高,样本效率相对次要
- 人类反馈数据天然具有On-Policy特性
-
实践中的调整:
- 通常使用较大的clip范围(ε=0.2)
- 需要精心设计奖励模型(RM)
- 策略初始化来自监督微调(SFT)模型
4.2 离线RL的兴起
随着大模型对高质量数据的需求增长,Off-Policy的离线RL技术也得到发展:
-
保守性正则化:
- 防止策略偏离行为策略太远
- 如CQL(Conservative Q-Learning)
- 在有限数据下表现更好
-
不确定性估计:
- 识别分布外(OOD)动作
- 基于集成或贝叶斯方法
- 避免对不可靠数据过拟合
-
数据增强:
- 在嵌入空间进行扰动
- 生成类似但不完全相同的样本
- 扩大有限数据的覆盖范围
5. 决策指南与技术选型
5.1 选择On-Policy的情况
以下场景更适合采用On-Policy方法:
- 环境交互成本低,可以大量采样
- 策略更新需要非常稳定,不能承受性能下降
- 任务本身具有非平稳性,需要持续适应
- 如机器人实时控制、游戏AI训练等
5.2 选择Off-Policy的情况
以下场景更适合采用Off-Policy方法:
- 环境交互成本高或危险
- 已有大量历史数据可用
- 需要同时优化多个相关策略
- 如自动驾驶策略学习、医疗决策等
5.3 混合方法探索
前沿研究正在探索结合两者优势的方法:
- GePPO:在PPO中引入有限制的Off-Policy数据
- AWAC:结合Advantage加权和Off-Policy学习
- CRR:基于优势比的保守策略迭代
在实际项目中,我通常会先尝试PPO等On-Policy方法建立基线,然后根据样本效率需求逐步引入Off-Policy技术。对于超参数调优,建议从社区验证过的默认值开始,再根据具体任务特性进行微调。
