PPO要点摘录

PPO(Proximal Policy Optimization)算法中,状态、动作、价值函数、奖励和策略模型的含义如下:

  1. 状态(state):状态是指环境当前的状态,如:对话历史与之前生成的序列。在强化学习中,智能体需要根据当前状态来做出决策。
  2. 动作(action):动作是指智能体在当前状态下选择的行动,如:生成每一个token,从词表中采样即是一个动作。在强化学习中,智能体需要根据当前状态选择一个最优的动作。
  3. 价值函数(Value Function):价值函数则是智能体对自己行为好坏的评估,它可以帮助智能体更好地指导自己的决策。价值函数可以根据当前状态或状态-动作对,预测智能体能够获得的期望回报。比如,在一个赛车游戏中,如果智能体在某个状态下选择了某个动作,那么价值函数可以预测出这个动作会获得多少奖励分数。通过不断地优化价值函数,智能体可以学习到在环境中做出最优的决策。
  4. 奖励(Reward):奖励函数就像是老师对学生的评分一样,通过环境的反馈,对智能体的行为进行评价,给出一个分数用来衡量智能体做出的动作是否正确。比如,在一个赛车游戏中,如果智能体成功完成一次绕过障碍的动作,那么就可以获得一定的奖励分数。通过不断地累积奖励分数,智能体可以学习到在环境中做出最优的动作。
  5. 策略模型(Policy Model):策略模型是指智能体根据当前状态选择动作的概率分布。在PPO算法中,策略模型通常使用神经网络来进行建模,输出每个动作的概率。

综上所述,PPO算法需要使用神经网络来表示价值函数和策略模型,根据当前状态选择动作,并通过环境的反馈来获得奖励。通过不断优化策略和价值函数,PPO算法可以使智能体在环境中获得更高的奖励,从而实现智能体的学习和决策能力的提高。

参考:https://spinningup.openai.com/en/latest/algorithms/vpg.html

actor在进行训练之前,会先与环境进行交互,然后得到一组训练数据(由多条状态序列构成)。

每回合Trajectory的奖励

最终目标就是要使期望奖励最大

根据链式法则公式$\nabla \log f(x) = \frac{1}{f(x)} \nabla f(x)$,计算式(2)的梯度

是当前策略的优势函数
$\pi_{\theta}$表示带有参数$θ$的策略,$J(\pi_{\theta})$表示该策略的 期望回报

策略梯度算法的工作原理是通过策略性能的随机梯度上升来更新策略参数:

$\theta ← \theta+\alpha\nabla{R}$

策略梯度(Policy Gradient)方法伪代码


为了使得训练资料可以反复使用,使用两个actor

其中,一个固定参数,另一个可训练,通过Importance Sampling来联系两个分布:

代入式4,梯度计算为:

image.png

代入式2,新的目标函数为:

$L=E_{\tau\in p_{\theta}(\tau)} [A(\tau)]=E_{\left(s_{t}, a_{t}\right) \sim \pi_{\theta^{\prime}}}\left[r_{\theta}(t)A^{\theta^{\prime}}\left(s_{t}, a_{t}\right)\right]$

$r_{\theta}(t)=\frac{p_{\theta}\left(a_{t} \mid s_{t}\right)}{p_{\theta^{\prime}}\left(a_{t} \mid s_{t}\right)}$

Advantages are computed using Generalized Advantage Estimation (GAE): $A_t$叫做策略优势估计,是PPO算法的核心!

PPO 进一步给目标函数添加约束项,防止$p_{\theta}$和$p_{\theta’}$两个概率分布相差太多!PPO 是一种 on-policy 算法,有两种主要变体:PPO-Penalty 和 PPO-Clip。

  • PPO-Penalty:

$L(s,a,θ_k,θ) = r_{\theta}(t)·A^{\pi_{\theta k}}(s,a)-\beta·KL(θ,θ_k)$

$r_{\theta}(t)=\frac{\pi_{\theta}\left(a \mid s\right)}{\pi_{\theta^{\prime}}\left(a \mid s\right)}$

  • PPO-Clip:

PPO方法伪代码

符号解释:

  • $p_{\theta}$表示可训练策略模型
  • $p_{\theta’}$表示参数固定的策略模型
  • $\frac{p_{\theta}(·)}{p_{\theta{‘}}(·)}$表示 Importance Sampling 系数,指产生同样的 token,在 Policy Model 和 Alignment Model 下的概率比值
  • $A$ 或$R$表示奖励,其给出一种利用长期奖励$r_t$与短期奖励$V({s_t})$计算当前步的好坏,在第t步的$A_t$分数越高,则代表该位置生成的质量越高。
    • Reward Model,是一个固定参数的模型,其输出值$r_t$
    • Value Function Model,是一个可训练的价值函数,其输出值$V({s_t})$代表生成的每一个token的质量,是一个短期的奖励
  • $KL()$表示KL散度,用作一个惩罚项,约束着每一次梯度更新以后不要产生与原模型相距甚远的回复。保证了模型训练的稳定性。

PPO要点摘录
http://example.com/2023/03/14/PPO 要点摘录/
作者
Ning Shixian
发布于
2023年3月14日
许可协议