$o_t$ :回答序列o的第t个token;在语言模型中,回答o的token数就是传统RL问题中时间序列的长度
$\pi_{\theta}(o_t|q)$ : 一个特定的概率,即输入问题q,模型theta生成第t个token为o_t的概率;
$\pi_{\theta}(o|q)$: 即输入问题q,模型theta生成序列o的概率;
$\pi_{\theta}(\cdot|q)$ : 一个分布,即输入问题q,模型theta输出的概率分布;
LLM中,输出的概率就是logits softmax后的结果
KL散度的含义
数学上,KL散度定义为:
$$ D_{KL}(P||Q)=\sum_{x}P(x)\log\frac{P(x)}{Q(x)} $$
其中,P和Q是两个概率分布,x是所有可能的事件或状态。KL散度的值总是非负的,当且仅当P和Q在所有事件上完全相同时,KL散度为零。
为什么KL散度不是对称的
KL散度不是对称的,这意味着 DKL(P∣∣Q))通常不等于 DKL(Q∣∣P)。这是因为KL散度是基于一个假设,即我们正在用 Q来近似 P,并且我们关心的是当我们使用 Q代替 P 时会丢失多少信息。 信息论的角度来看,DKL(P∣∣Q)测量的是使用 Q来编码 P中的信息所需的额外比特数。
不直接计算采样操作的梯度,而是利用采样结果的统计特性【在这里就是Advantage】来估计策略梯度的期望,从而间接优化策略参数;
advantage必须要通过采样才能得到的,因此不能用它来直接计算策略的梯度,那么就把它作为log(策略)的计算梯度时的权重,来调节策略的不同采样下优化的方向。
$$ L^{PG}=\mathbb{E}{q\thicksim P(Q), o\thicksim \pi{\theta}(\cdot|q)}\frac{1}{|o|}\sum_{t=1}^{|o|}[log\pi_{\theta}(o_t|q)\hat{A}_t] $$
策略梯度的推导过程: 对reward在策略分布下的期望求导,等价于 reward加权后的log策略梯度 在策略上的期望;
$\begin{aligned} \nabla_\theta \mathbb{E}{y_i \sim \pi\theta(\cdot \mid x)} \big[ r(x, a, y_i) \big] &= \sum{y_i} \nabla_\theta \big[ \pi_\theta(y \mid x) \big] r(x, a, y_i) \\ &= \sum_{y_i} \big[ \pi_\theta(y \mid x) \nabla_\theta \log \pi_\theta(y \mid x) \big] r(x, a, y_i) \\ &= \mathbb{E}{y_i \sim \pi\theta(\cdot \mid x)} \big[ \nabla\theta \log \pi_\theta(y_i \mid x) r(x, a, y_i) \big]. \end{aligned}$
解析:
- 第一步:期望与梯度交换
- 原理:根据期望的定义,离散情况下期望可表示为概率加权和,梯度运算可穿透求和符号,转化为对每个 yi 的概率 πθ(y∣x) 求梯度后与奖励 r(x,a,yi) 的乘积之和。
- 意义:将连续的期望梯度转化为离散的求和形式,便于后续计算。
- 第二步:引入对数梯度技巧
- 推导关键:利用对数导数性质 ∇θπθ(y∣x)=πθ(y∣x)∇θlogπθ(y∣x),将梯度项转化为对数梯度与概率的乘积。
- 优势:对数梯度可避免直接对概率求导时的复杂计算,同时在 RL 中常用于将策略更新与奖励信号结合,形成 “分数函数” 梯度(Score Function Gradient)。
- 第三步:还原为期望形式Eyi∼πθ(⋅∣x)[∇θlogπθ(yi∣x)r(x,a,yi)]
- 转化逻辑:将求和形式重新表示为期望,即每个 yi 的对数梯度与奖励的乘积在策略 πθ 下的期望。
- 最终形式:该式为策略梯度算法(如 REINFORCE)的核心公式,表明梯度等于 “对数梯度与奖励的乘积” 的期望,指导模型参数更新方向。
1)penalty term: