Transformer——Q154 RLHF中PPO目标函数的梯度推导

该问题归类到Transformer架构问题集——前沿扩展。请参考LLM数学推导——Transformer架构问题集

1. 问题背景

在大语言模型(LLM)领域,随着模型参数量不断增加,模型生成能力显著提升,但也面临一个棘手问题:模型生成内容可能不符合人类价值观、缺乏事实准确性或在对话场景中表现不佳 。例如,直接训练的 LLM 在被询问 “如何制作炸弹” 时,可能会给出详细步骤;在多轮对话中,可能出现前后逻辑矛盾的情况。为解决这些问题,基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)应运而生。

RLHF 通过引入人类反馈来指导模型优化,让模型学会生成符合人类期望的内容。近端策略优化(Proximal Policy Optimization,PPO)算法因其高效性和稳定性,成为 RLHF 中常用的优化方法。PPO 目标函数的设计与优化直接影响到 RLHF 的效果,而目标函数的梯度推导则是理解其优化过程的关键,它能帮助我们明确模型参数如何更新才能更好地符合人类反馈,进而提升模型性能。

2. 技术原理或数学理论解析

2.1 强化学习基础概念

在深入探讨 PPO 目标函数之前,先回顾强化学习的基础概念。强化学习中,智能体(Agent)在环境(Environment)中不断执行动作(Action),并根据环境反馈的奖励(Reward)来调整自身策略(Policy),以最大化长期累计奖励。

  • 策略:用 \pi(a|s) 表示,即给定状态 s 时采取动作 a 的概率。
  • 价值函数:分为状态价值函数 V^{\pi}(s) 和动作价值函数 Q^{\pi}(s, a)V^{\pi}(s) 表示从状态 s 开始,遵循策略 \pi 所能获得的期望累计奖励; Q^{\pi}(s, a) 表示在状态 \(s\) 执行动作 a 后,遵循策略 \pi 所能获得的期望累计奖励。
  • 奖励:环境给予智能体的反馈信号,用于指导策略优化。

2.2 PPO 算法概述

PPO 算法是一种基于策略梯度的强化学习算法,旨在优化策略以最大化期望累计奖励。它通过限制新旧策略之间的差异,避免策略更新过于激进,从而提高算法的稳定性和收敛性。

2.3 PPO 目标函数推导

2.3.1 策略梯度公式

策略梯度算法的核心思想是通过计算目标函数关于策略参数 \theta 的梯度,来更新策略参数,使得目标函数值增大。目标函数通常定义为期望累计奖励,即:

J(\theta)=\mathbb{E}_{\tau\sim\pi_{\theta}}[R(\tau)]

其中, \tau=(s_0, a_0, r_0, s_1, a_1, r_1, \cdots) 表示一个轨迹, \pi_{\theta} 是参数为 \theta 的策略, R(\tau) 是轨迹 \tau 的累计奖励。

根据策略梯度定理,目标函数 J(\theta) 关于 \theta 的梯度为:

\nabla_{\theta}J(\theta)=\mathbb{E}_{\tau\sim\pi_{\theta}}\left[\sum_{t = 0}^{T}\nabla_{\theta}\log\pi_{\theta}(a_t|s_t)A^{\pi_{\theta}}(s_t, a_t)\right]

其中,

### Transformer 模型中的梯度计算 在Transformer模型中,梯度计算对于优化参数至关重要。该模型通过反向传播算法执行梯度下降,在多层结构中传递误差信号以更新权重。 #### 反向传播概述 反向传播分为两个主要阶段:前向传播和后向传播。在前向传播期间,输入数据依次穿过各层直到输出层;而在后向传播过程中,则是从损失函数开始逐层向前计算并分配误差项给各个神经元的权值[^1]。 #### 多头自注意力机制下的梯度流 具体到Transformer架构内的核心组件——多头自注意(Multi-head Self-Attention),其梯度计算涉及查询(Query)、键(Keys) 和 值(Values)矩阵之间的交互: 设 \(Q\) 表示查询矩阵, \(K\) 是键矩阵而 \(V\) 则代表值矩阵。这三个矩阵分别由输入嵌入\(X\)线性变换而来: \[ Q = XW_Q \quad K=XW_K\quad V=XW_V \] 其中,\( W_Q , W_K , W_V \)分别是对应的可训练参数矩阵. 当涉及到梯度时,这些操作可以被看作是简单的矩阵乘法运算,因此可以根据链式法则轻松求得相应的偏导数: ```python dL_dWq = dL_dQ @ X.T # 对于Query部分的权重梯度 dL_dWk = dL_dK @ X.T # 键部分的权重梯度 dL_dWv = dL_dV @ X.T # 值部分的权重梯度 ``` 这里`@`表示矩阵相乘的操作符,`T`指转置操作。 #### 层归一化(Layer Normalization) 为了稳定深层网络的学习过程,防止因过深而导致的梯度消失问题,通常会在残差连接之后应用层归一化处理[^2]: 如果记经过激活后的张量为 `Y`, 那么对其做LayerNorm即意味着要调整每一行特征的数据分布特性至均值0方差1的状态下再继续后续流程。 这种做法不仅有助于加速收敛速度而且还能提高泛化能力。 #### 权重更新规则 最终,基于上述所获得的各项梯度信息以及设定好的学习率η,就可以按照如下方式来迭代修正每一个待估参数θ : \[ θ := θ - η * ∇_θ L(y,f(x;θ)) \] 此处,L指的是定义在整个批次上的平均损失函数。\(\nabla_{\theta}\)则用来指示针对特定变量集取微分的动作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨顿

唵嘛呢叭咪吽

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值