楼主: zs1997
438 0

[其他] Windows Azure Platform体验():SQL Azure [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

小学生

14%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
40 点
帖子
3
精华
0
在线时间
0 小时
注册时间
2018-5-10
最后登录
2018-5-10

楼主
zs1997 发表于 2025-11-19 22:28:49 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

3.2 REINFORCE: 最早的策略梯度算法

在推导出策略梯度定理之后,我们得到了梯度的理论形式。然而,这个期望值依然难以直接计算。主要的挑战在于:轨迹空间通常是高维甚至是连续无限的,这意味着我们无法枚举所有的可能组合。因此,策略优化的实际操作核心在于利用有限采样来近似期望值:通过与环境交互收集若干条轨迹,然后使用经验平均来估计梯度。这正是REINFORCE算法(Williams, 1992)的基本理念。

REINFORCE算法的训练流程包括以下几个步骤:

  • 使用当前策略采样一定数量的完整轨迹。
  • 对每条轨迹计算累积回报(从某一时刻到终止)。
  • 可选地引入固定的基线(例如所有轨迹的平均回报)。
  • 计算梯度并更新参数。

采样带来的根本挑战之一是方差问题。我们的目标是评估策略的平均性能,但只能通过有限的样本来估计。这引出了两个核心需求:无偏性和低方差。REINFORCE满足无偏性,但面临高方差的问题。例如,在训练一个语言模型以回答医疗问题时,即使是相同的策略生成的回答,其回报也可能大相径庭。

示例: 训练语言模型回答医疗问题。

Prompt: "如何缓解头痛?"

  • Response 1(轨迹1): "多喝水,适当休息,必要时服用布洛芬。" → 奖励
  • Response 2(轨迹2): "头痛可能由多种原因引起..." (啰嗦但正确) → 奖励
  • Response 3(轨迹3): "建议立即手术治疗。" (错误) → 奖励

由于这些样本的回报差异显著,基于这些样本计算的梯度可能会大幅波动,导致需要大量的轨迹才能获得稳定的估计,从而使训练过程变得缓慢且不稳定。对于较长的对话序列,这种方差会呈指数级增长。

面对这样的情况,一个常见的疑问是:每次更新参数后策略发生变化,是否应该仅使用一条轨迹进行更新?答案是否定的。REINFORCE的标准做法是使用当前策略采集多条轨迹,然后基于这些轨迹的平均梯度一次性更新参数。更新后,策略发生改变,之前的所有轨迹都将被废弃。接下来,使用新的策略再次采集新的轨迹,重复这一过程。这就是所谓的On-Policy方法:数据必须来源于当前策略,每次更新后旧的数据将不再有效,导致样本效率较低。

3.3 Actor-Critic

REINFORCE的高方差问题源于其使用Monte Carlo回报(需要完整的轨迹)。如果能够通过一个学习到的函数来估计未来的回报,则可以实现以下目标:降低方差(函数估计比单一采样更稳定),以及支持单步更新(无需等待轨迹结束)。这是Actor-Critic框架的核心思想:引入Critic网络来估计状态价值,利用这些估计构建低方差的优势函数。

该框架采用双网络架构,具体包括:

  • Actor: 策略网络,负责生成动作。
  • Critic: 价值网络,评估状态的好坏。

训练目标分为两部分:

  • Critic的更新: 学习预测真实的回报,其中\( R_t \)是实际观察到的累积回报(作为监督信号)。
  • Actor的更新: 使用Critic估计的优势来调整策略,其中优势函数\( A(s_t, a_t) \)衡量了特定动作相对于平均水平的表现。

在计算优势时,必须阻断梯度传递,确保Actor的更新不会干扰Critic的学习目标。这通常通过以下方式实现:advantage = reward - value.detach()

此外,通过使用TD(Temporal Difference)误差,可以在Actor-Critic框架中实现单步更新,从而替代传统的Monte Carlo回报方法。TD优势的定义如下:

  • Monte Carlo 优势: 需要运行完整个轨迹才能计算,是无偏估计,但通常具有较高的方差。
  • TD 优势: 只需一步即可计算,方差较低,但为有偏估计(其准确性取决于价值函数的估计精度)。

3.4 GAE (Generalized Advantage Estimation) 的推导

1. 真实的优势函数

我们首先定义一个理论上“真实”的优势函数,它使用实际的未来回报\( R_t \):

我们的目标是使用一系列的TD误差\( \delta_t \)来构建对这个“真优势”的良好估计。

2. 基于Bellman方程的展开

根据Bellman递推公式,任意时刻的回报\( R_t \)可以展开为:

将此表达式代入真实优势的定义中,同时加上和减去\( V(s_{t+1}) \):

观察上述公式,我们可以发现:

  • 第一个方括号内的部分正好是TD误差\( \delta_t \)。
  • 第二个方括号内的部分是下一时刻的真实优势\( A(s_{t+1}, a_{t+1}) \)。

因此,我们得到了一个关于真实优势的递归关系:

3. 递归展开与关键结论

将上述递归关系不断展开,可以得到:

关键结论:真实的优势函数等于所有未来TD误差的折扣加权和。这一结论非常直观,因为\( \delta_t \)代表当前这一步决策带来的“惊喜”或“估计误差”,而\( \gamma^k \delta_{t+k} \)则表示未来每一步的误差,折扣因子\( \gamma \)确保了越遥远的未来,其误差对当前优势的影响越小。

GAE的核心思想在于偏差-方差的权衡。虽然上述展开式在理论上很完美,但在实践中却存在两个问题:

依赖完整轨迹:该方法仍然需要未来所有的值,这意味着必须等待整个回合结束后才能进行计算。这一特性本质上是 Monte Carlo 风格的估计方式,具有较高的方差。

误差累积:我们避免使用过长的序列,因为未来的不确定性较高,这会导致价值函数的估计误差不断累积。因此,需要在‘充分利用未来信息’与‘减少噪声(降低方差)’之间找到一个平衡点。

为了实现这一平衡,引入了一个偏差-方差的平衡因子。GAE(Generalized Advantage Estimation)的核心概念是引入一个衰减系数λ(通常取值范围在0.9到0.99之间),用于控制未来TD误差的权重。

GAE 定义如下:

  • γ:环境的奖励折扣因子,反映任务对未来重视的程度。
  • λ:优势函数的折扣因子,作为人为设置的超参数,用于控制偏差-方差的权衡。
  • δ_t:每一步的TD误差。

理解λ的作用:

  • 当λ=0时:相当于传统的TD(0)误差,仅考虑一步的信息。这种方式偏差最大,但方差最小。
  • 当λ=1时:恢复了原始的展开式,相当于Monte Carlo方法。这种方式无偏,但方差最大。
  • 当0<λ<1时:GAE在TD和Monte Carlo之间进行插值。未来的TD误差将以λ的速率衰减,从而实现在‘观察距离’与‘抑制噪声’之间的平滑过渡。

GAE的计算与实现:

上述求和公式可以通过一个高效的反向递推形式转换,非常适用于代码实现。GAE的递推公式如下:

advantages = torch.zeros_like(rewards)
gae = 0
# 从后往前遍历时间步
for t in reversed(range(T)):
  # 1. 计算当前步的TD误差delta
  delta = rewards[t] + gamma * values[t+1] - values[t]
  # 2. 使用递推公式计算gae
  gae = delta + gamma * lam * gae
  # 3. 存储当前步的优势值
  advantages[t] = gae

需要注意的是,计算过程中必须反向遍历时间,因为gae依赖于未来的gae值。values[t+1]表示Critic网络对下一状态的价值预测。这种高效的计算方法是PPO、A2C、A3C等现代强化学习算法的标准组成部分。

GAE与n-step TD的关系:

GAE也可以被视为所有n-step TD优势估计的指数加权平均:

其中,n-step优势的定义为:

总结来说,λ决定了我们将多少不同长度(n-step)的TD估计综合在一起。较小的λ更注重短期的、偏差较大的估计;较大的λ则更倾向于长期的、方差较大的估计。在实际应用中,λ通常设为0.95是一个较好的经验值。

3.5 On-Policy 的困境与重要性采样

样本效率的致命弱点:前面提到的所有算法(REINFORCE, AC, A2C/A3C)都是On-Policy的,即梯度计算要求数据来自当前策略。这导致了以下问题:

  • 每次更新后,策略改变,旧数据立即失效。
  • 对于大型语言模型(LLM),生成一次回复需要数秒,但只能使用一次就丢弃。
  • 训练100万步需要采样100万条新数据。

量化对比(以Qwen-7B为例):

方法 单次采样耗时 数据复用 训练1000步总耗时
On-Policy 3秒 1次 3000秒
Off-Policy (PPO) 3秒 4次 750秒

重要性采样:作为Off-Policy的一种数学工具,其核心问题是是否可以用旧策略的数据来训练新策略。通过重要性采样的数学原理(重要性采样定理),可以将目标函数调整为利用旧策略数据的形式,从而提高数据利用率。

例如,在医疗问答场景中,假设旧策略生成的建议是“多喝水,休息”,而新策略评估该建议时认为这是一个好的建议,那么即使建议来自旧策略,它仍然能对新策略的更新做出正向贡献。

然而,这种方法的关键挑战在于,如果重要性采样的比率过大(例如10),表明新旧策略差异显著,此时重要性采样可能失效,导致梯度估计的方差大幅增加。因此,需要适当约束策略更新的幅度。

3.6 TRPO: 信赖域约束下的策略优化

TRPO(Trust Region Policy Optimization)的核心思想是在限制策略变化的前提下最大化性能提升。具体而言,TRPO通过KL散度约束来衡量两个分布之间的差异,确保新策略不会与旧策略偏离太远。

优化问题可以形式化为:

  • 目标函数:最大化性能(使用旧数据评估新策略)。
  • 约束条件:KL散度(例如0.01),确保新策略的变化幅度在可接受范围内。

例如,在医疗问答场景中,假设旧策略分布为P(“多喝水”)=0.3, P(“休息”)=0.4, P(“吃药”)=0.3,而新策略分布为P(“多喝水”)=0.5, P(“休息”)=0.35, P(“吃药”)=0.15。通过计算KL散度,可以判断新策略是否满足约束条件。如果不满足,则需要调整更新步长以确保满足约束。

TRPO的实现方法基于二阶优化,采用共轭梯度法求解带约束的优化问题。尽管这种方法理论上保证了单调改进,但由于需要计算Hessian矩阵(目标函数的二阶导数),其计算复杂度较高,实现难度大,且参数调整较为敏感。

3.7 PPO

PPO(Proximal Policy Optimization)是TRPO的一个简化版本,旨在通过减少计算复杂度同时保持良好的性能。PPO通过引入剪切技巧(clipping trick)来替代TRPO中的信赖域约束,使得算法更加易于实现和调参。

深度强化学习(RL)与基于人类反馈的强化学习(RLHF)的标准算法之一是PPO(Schulman等人,2017年),它通过采用一阶优化方法和精心设计的目标函数来实现TRPO的效果。

3.7.1 PPO-Clip: 使用裁剪代替KL约束

该方法的核心在于不直接对KL散度施加约束,而是通过直接限制比率变化的范围来间接控制模型更新的稳定性。

目标函数:

通过将比率\(r\)限制在一个特定范围内(通常是\([1-\epsilon, 1+\epsilon]\),其中\(\epsilon\)是一个小正数),确保更新不会过于激进。

逐项分析:

  • 情况 1: 当优势值A > 0(好动作,期望增加其发生概率)时:
    • 如果比率\(r \leq 1 + \epsilon\),则应用正常梯度更新,继续增加发生概率;
    • 如果比率\(r > 1 + \epsilon\),则将比率裁剪至\(1 + \epsilon\),停止进一步增加(避免过度优化)。
  • 情况 2: 当优势值A < 0(坏动作,期望减少其发生概率)时:
    • 如果比率\(r \geq 1 - \epsilon\),则应用正常梯度更新,继续减少发生概率;
    • 如果比率\(r < 1 - \epsilon\),则将比率裁剪至\(1 - \epsilon\),停止进一步减少(避免过度惩罚)。

医疗问答示例(具体计算):

Prompt: “如何缓解头痛?”
Response: “多喝水,适当休息”

旧策略: (log prob = -4.6)
新策略: (log prob = -3.5)

优势: A = 0.8 (好回答)
比率: r = 3.0

PPO 处理(设\(\epsilon = 0.2\)):

原始项: r * A = 3.0 * 0.8 = 2.4
裁剪项: clip(3.0, 0.8, 1.2) * A = 1.2 * 0.8 = 0.96
最终: min(2.4, 0.96) = 0.96 ← 被裁剪!

解读:尽管新策略的概率提高了3倍,但PPO仅允许其增加至1.2倍,以此防止策略的剧烈变化。

3.7.2 PPO-KL: 自适应惩罚机制

另一种变体是在目标函数中直接加入KL惩罚项,通过自适应地调整惩罚强度来控制策略更新的程度。

自适应惩罚系数:

当检测到KL散度超过预设阈值时,增大惩罚系数以加强惩罚;反之,则减小惩罚系数以放松约束。

在实际应用中,PPO-Clip更为常见,因为它不需要手动调整惩罚系数。

3.7.3 PPO-Clip 完整训练流程

虽然未详细列出,但PPO-Clip的完整训练流程包括初始化策略网络、收集环境交互数据、计算优势值、更新策略等步骤,确保模型在保持稳定性的前提下逐步提升性能。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Platform Windows Window Azure wind

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2025-12-6 01:33