本文是LLM后训练的第二篇,主要介绍强化学习中价值函数以及Advantage Actor-Critic模型(A2C)。
奖励信号的构造方式
在LLM后训练(一)中,我们介绍了强化学习的基本概念和一些常用的算法,并介绍了最原始的奖励损失函数:
这个函数对整条轨迹使用统一的奖励,因此存在一些问题。那么,有没有对每一步动作使用不同奖励的算法呢?假设这种奖励存在,那么奖励信号就可以写入第二个求和符号中:
为了方便表示,假设只针对一条采样轨迹进行分析,忽略下标,将简写为。在不同算法中,的定义不同。在介绍A2C算法之前,先总结一下的几种常见构造方式:
这种方式等价于最原始的奖励损失函数。
这种方式考虑了从时刻开始的奖励。
这种方式引入了基线函数,用来降低奖励的方差。因为如果只考虑绝对奖励,可能会出现每个奖励都很大或者都很小的情况,从而导致梯度更新不稳定。引入基线后,奖励就变成了某个动作相对于平均水平的“优势”,而训练模型的最终目标正是在候选动作中选择更优动作。的定义有很多,这里暂时将其视为采取所有动作时的平均奖励。
这种方式使用动作价值函数作为奖励信号。
它表示在状态和该步对应动作的条件下,针对策略未来奖励的期望值。由于这里使用的是未来奖励的期望值而非一个具体奖励的采样值,因此它可以看作是一个更稳定的奖励信号。
需要注意的是,动作价值函数中的条件期望是针对特定策略定义的。在训练过程中,策略可能会随着参数更新而改变(也可能使用固定采样策略,此时不需要考虑策略改变的问题)。
这种方式使用优势函数作为奖励信号。优势函数的定义为:
它表示在状态和动作条件下,动作价值函数与状态价值函数的差值。状态价值函数的定义为
它表示在状态的条件下,针对策略未来奖励的期望值。最终,优势函数表示在状态和动作的条件下,动作相对于平均水平的“优势”,它可以看作是一个更稳定的奖励信号。
这种方式使用TD误差作为奖励信号。TD误差的定义为
TD误差表示奖励观测值与未来奖励折现值之和,再减去当前状态价值函数值的差值。(它的本质是贝尔曼方程,即当前价值等于即时奖励加上下一个状态折现价值的期望。)
动作价值函数、状态价值函数和TD误差
在上一部分,我们介绍了几种奖励信号的构造方式。本部分着重分析状态价值函数、动作价值函数和TD误差的性质与联系。
动作价值函数的性质
根据动作价值函数和状态价值函数的定义,可以推导:
上式给出了状态价值函数到动作价值函数的一种变换关系。其中隐含了从到的递推关系,这种递推性质在后文会反复用到。
状态价值函数的性质
根据状态价值函数的定义,可以推导:
上式给出了动作价值函数到状态价值函数的一种变换关系。
TD误差
根据优势函数的定义,我们可以推导:
TD误差取期望后等于优势函数,因此在准确的前提下,TD误差可以看作优势函数的无偏估计。然而在实际训练过程中,通常是近似函数,甚至本身也是需要训练的模型,因此TD误差可能存在一定偏差。另外,这里的TD误差只使用一步观测值。实际上也可以使用多步观测值来构造TD误差,这样可以在一定程度上减小偏差,但同时会增大方差。这里默认只使用一步观测值的TD误差,也称为TD(0)误差。
Advantage Actor-Critic模型
上一部分介绍了几种奖励信号的构造方式,并分析了动作价值函数、状态价值函数和TD误差的性质与联系。本部分介绍Actor-Critic模型。相比于原版Actor-Critic模型使用动作价值函数作为奖励信号,这里使用TD误差(本质上是优势函数)作为奖励信号的模型被称为Advantage Actor-Critic模型(A2C)。如果通过多次采样实际样本,再统计动作价值函数和状态价值函数以得到优势函数,往往会导致优势函数方差较大。而TD误差只使用一步观测值以及当前和下一步状态价值函数的估计值和,因此其方差相对较小,可以加速训练过程。然而,由于TD误差往往是有偏估计(因为估计值未必准确),A2C模型引入了一个额外的状态价值函数模型,即Critic模型,来估计状态价值函数,并与Actor模型(即策略模型)交替优化缓解估计不准的问题。
Actor优化目标
Actor模型的优化目标是最大化下式:
在实际优化过程中,可以对中的时间步进行各种采样(包括单步采样),而不需要一次性优化整条轨迹的奖励信号,这样可以加速训练过程。
Critic优化目标
Critic模型的优化目标是最小化下式:
其目标是最小化TD误差平方,因此可以看作一个回归问题,目标是让能够更准确地估计状态价值函数。
下图展示了A2C模型的简化优化流程(使用梯度上升最大化目标):

说些什么吧!