LLMs基础学习(八)强化学习专题(5)
文章目录
- LLMs基础学习(八)强化学习专题(5)
- 重要性采样(Importance Sampling)
- 权重计算逻辑
- 两种实现形式
- 使用注意事项
- PPO 与 TRPO
- PPO 算法(Proximal Policy Optimization)
- TRPO 算法(Trust Region Policy Optimization)
- PPO 与 TRPO 的关系
视频链接:https://www.bilibili.com/video/BV1MQo4YGEmq/?spm_id_from=333.1387.upload.video_card.click&vd_source=57e4865932ea6c6918a09b65d319a99a
重要性采样(Importance Sampling)
在强化学习中,重要性采样(Importance Sampling) 是一种通过调整样本权重,修正 “行为策略(Behavior Policy)” 与 “目标策略(Target Policy)” 分布差异的技术,核心解决异策略(Off - Policy)学习的关键问题:如何用行为策略采集的数据,准确估计目标策略的性能。
- 行为策略 b ( a ∣ s ) b(a \mid s) b(a∣s):负责与环境交互、生成动作样本(比如探索性更强的策略 )。
- 目标策略 π ( a ∣ s ) \pi(a \mid s) π(a∣s):需要被评估或优化的策略(比如更偏向利用的最优策略 )。
权重计算逻辑
通过概率比率(重要性权重) 调整样本对目标策略的贡献,公式:
- 单步权重: ρ t = π ( a t ∣ s t ) b ( a t ∣ s t ) \rho_t = \frac{\pi(a_t \mid s_t)}{b(a_t \mid s_t)} ρt=b(at∣st)π(at∣st) 衡量 “目标策略选动作 a t a_t at 的概率” 与 “行为策略选 a t a_t at 的概率” 的比值。
- 多步轨迹权重: ρ 0 : T = ∏ t = 0 T π ( a t ∣ s t ) b ( a t ∣ s t ) \rho_{0:T} = \prod_{t=0}^T \frac{\pi(a_t \mid s_t)}{b(a_t \mid s_t)} ρ0:T=∏t=0Tb(at∣st)π(at∣st) 整条轨迹的权重是各步权重的乘积,体现轨迹对目标策略的整体贡献。
两种实现形式
1. 普通重要性采样(Ordinary IS)
直接用权重加权样本回报,估计目标策略的价值函数 V π ( s ) V^\pi(s) Vπ(s): V π ( s ) ≈ 1 n ∑ i = 1 n ρ 0 : T ( i ) G ( i ) V^\pi(s) \approx \frac{1}{n} \sum_{i=1}^n \rho_{0:T}^{(i)} G^{(i)} Vπ(s)≈n1∑i=1nρ0:T(i)G(i)
- G ( i ) G^{(i)} G(i):第 i 条轨迹的累积回报; ρ 0 : T ( i ) \rho_{0:T}^{(i)} ρ0:T(i):第 i 条轨迹的多步权重。
2. 加权重要性采样(Weighted IS)
引入权重归一化,避免极端权重主导估计: V π ( s ) ≈ ∑ i = 1 n ρ 0 : T ( i ) G ( i ) ∑ i = 1 n ρ 0 : T ( i ) V^\pi(s) \approx \frac{\sum_{i=1}^n \rho_{0:T}^{(i)} G^{(i)}}{\sum_{i=1}^n \rho_{0:T}^{(i)}} Vπ(s)≈∑i=1nρ0:T(i)∑i=1nρ0:T(i)G(i)
使用注意事项
1. 核心风险:分布差异导致高方差
- 数学本质:期望转换依赖分布相似度,公式: E x ∼ π [ f ( x ) ] = E x ∼ b [ f ( x ) π ( x ) b ( x ) ] \mathbb{E}_{x \sim \pi} [f(x)] = \mathbb{E}_{x \sim b} \left[ f(x) \frac{\pi(x)}{b(x)} \right] Ex∼π[f(x)]=Ex∼b[f(x)b(x)π(x)]
- 问题:若 π \pi π 与 b 分布差异大,即使采样足够,方差会急剧增大(极端权重让估计不稳定 )。
2. 解决方案
- 加权重要性采样:通过归一化降低极端权重影响,缓解方差问题。
- 截断权重:限制权重最大值(如 PPO 算法的剪切机制 ),避免单个样本主导。
- 限制轨迹长度:减少多步权重的乘积效应(长轨迹易因步数多放大分布差异 )。
一句话理解:重要性采样让 “探索的策略(行为策略)” 采集的数据,能为 “优化的策略(目标策略)” 服务,但得小心分布差异导致的方差问题,用加权、截断等技巧兜底~
PPO 与 TRPO
强化学习中,异策略(Off - Policy)学习 需用 “行为策略(采集数据)” 优化 “目标策略(性能更好的策略)”,但两者分布差异过大会导致重要性采样方差爆炸。PPO 与 TRPO 正是为解决这一问题而生。
PPO 算法(Proximal Policy Optimization)
1. 提出与目标
- 由 OpenAI 2017 提出,核心解决传统策略梯度因更新步长不当导致的训练不稳定问题。
- 目标:限制新、旧策略的差异,平衡 “探索” 与 “利用”,让重要性采样更稳定。
2. 核心思想
通过限制策略更新幅度,确保新策略 θ \theta θ 与旧策略 θ ′ \theta' θ′ 差异不大,避免重要性采样因分布差异大而失效。
3. 数学表达与关键机制
目标函数包含两部分: J PPO θ ( θ ) = J θ ′ ( θ ) − β KL ( θ , θ ′ ) J_{\text{PPO}}^\theta(\theta) = J^{\theta'}(\theta) - \beta \text{KL}(\theta, \theta') JPPOθ(θ)=Jθ′(θ)−βKL(θ,θ′)
- J θ ′ ( θ ) J^{\theta'}(\theta) Jθ′(θ):基于重要性采样的策略梯度目标(用旧策略 θ ′ \theta' θ′ 采集的数据优化新策略 θ \theta θ )。 J θ ′ ( θ ) = E ( s t , a t ) ∼ π θ ′ [ p θ ( a t ∣ s t ) p θ ′ ( a t ∣ s t ) A θ ′ ( s t , a t ) ] J^{\theta'}(\theta) = \mathbb{E}_{(s_t,a_t) \sim \pi_{\theta'}} \left[ \frac{p_\theta(a_t \mid s_t)}{p_{\theta'}(a_t \mid s_t)} A^{\theta'}(s_t, a_t) \right] Jθ′(θ)=E(st,at)∼πθ′[pθ′(at∣st)pθ(at∣st)Aθ′(st,at)] ( A θ ′ ( s t , a t ) A^{\theta'}(s_t, a_t) Aθ′(st,at) 是优势函数,衡量动作价值 )
- β KL ( θ , θ ′ ) \beta \text{KL}(\theta, \theta') βKL(θ,θ′):KL 散度约束,惩罚新、旧策略的差异,确保更新幅度可控。
4. 算法特性
- 同策略本质:虽用重要性采样,但仅依赖 “上一轮策略 θ ′ \theta' θ′” 的数据,新、旧策略差异小,可近似视为同策略。
- 易用性:将 KL 散度直接融入目标函数,用梯度上升即可优化,实现简单(对比 TRPO )。
TRPO 算法(Trust Region Policy Optimization)
1. 定位与目标
- 是 PPO 的前身,核心解决 “策略更新的单调性” 问题(保证策略性能单调提升 )。
- 目标:通过信任区域约束,限制策略更新步长,避免因分布差异导致性能下降。
2. 核心思想
将新策略 θ \theta θ 与旧策略 θ ′ \theta' θ′ 的 KL 散度作为额外约束(而非融入目标函数 ),要求 KL ( θ , θ ′ ) < δ \text{KL}(\theta, \theta') < \delta KL(θ,θ′)<δ( δ \delta δ 是信任区域半径 )。
3. 数学表达与痛点
目标函数: J TRPO θ ′ ( θ ) = E ( s t , a t ) ∼ π θ ′ [ p θ ( a t ∣ s t ) p θ ′ ( a t ∣ s t ) A θ ′ ( s t , a t ) ] , KL ( θ , θ ′ ) < δ J_{\text{TRPO}}^{\theta'}(\theta) = \mathbb{E}_{(s_t,a_t) \sim \pi_{\theta'}} \left[ \frac{p_\theta(a_t \mid s_t)}{p_{\theta'}(a_t \mid s_t)} A^{\theta'}(s_t, a_t) \right], \quad \text{KL}(\theta, \theta') < \delta JTRPOθ′(θ)=E(st,at)∼πθ′[pθ′(at∣st)pθ(at∣st)Aθ′(st,at)],KL(θ,θ′)<δ
- 痛点:约束是 “额外条件”,无法直接用梯度上升优化,需复杂的二阶优化(如共轭梯度 ),实现难度高、计算成本大。
PPO 与 TRPO 的关系
1. 核心联系
- 两者均为解决异策略学习中 “策略分布差异导致的高方差” ,目标是稳定策略更新、提升样本效率。
- PPO 是 TRPO 的简化与优化,继承 “限制策略差异” 的核心思想,改进实现方式。
2. 关键区别
维度 | PPO | TRPO |
---|---|---|
约束处理 | KL 散度融入目标函数,直接梯度优化 | KL 散度作为额外约束,需二阶优化 |
实现难度 | 简单(一阶优化,易工程落地) | 复杂(二阶优化,计算成本高) |
样本效率 | 与 TRPO 性能接近 | 理论保证单调提升,但实现复杂限制推广 |
3. 实际应用选择
工程中优先选 PPO :实现简单、训练稳定,在 Atari 游戏、机器人控制等场景表现优异;TRPO 仅用于理论研究或对 “单调提升” 有强需求的极端场景。
一句话概括:TRPO 开了 “限制策略差异” 的脑洞,PPO 把这个脑洞做成了 “人人能用” 的工具,让强化学习落地更简单~