首发于 Deep Learning深度学习笔记
PPO 算法

PPO 算法

最近火出圈的 RLHF 主要采用了就是 PPO 进行强化学习训练

主要运用在微调阶段(微调整个 10B~100B+ 参数的成本其实也非常高 )使用策略梯度强化学习 (Policy Gradient RL) 算法、近端策略优化 (PPO) 微调初始 LM 的部分或全部参数。
以下主要参考台大李宏毅的推导过程

1. Vanilla policy gradient

轨迹可以表示为一个集合 \tau = \{s_1,a_1,s_2,a_2,...,s_T,a_T\}

\begin{equation} \begin{aligned} p_{\theta}(\tau)&=p(s_1)p_{\theta}(a_1|s_1)p(s_2|s_1,a_1)p_{\theta}(a_1|s_1)p(s_3|s_2,a_2)...\\ &=p(s_1)\prod_{t=1}^T p_{\theta}(a_t|s_t)p(s_{t+1}|s_t,a_t) \end{aligned} \end{equation} \\

一个轨迹的奖励总和为:

R(\tau)=\sum_{t=1}^T r_t \\

则奖励的期望为:

\bar{R}_\theta = \sum_{\tau}R(\tau)p_\theta(\tau)=E_{\tau\sim p_\theta(\tau)}[R(\tau)] \\

R(\tau) 看成常量,对其求微分:

\begin{equation} \begin{aligned} \nabla\bar{R}_\theta &= \sum_{\tau}R(\tau)\nabla p_\theta(\tau)\\ &=\sum_{\tau}R(\tau)p_\theta(\tau) \frac{\nabla p_\theta(\tau)}{p_\theta(\tau)}\\ &=\sum_{\tau}R(\tau)p_\theta(\tau)\nabla\log{p_\theta(\tau)} \ \ \ {\nabla f(x)=f(x)\nabla\log f(x)}\\ &= E_{\tau\sim p_\theta(\tau)}[R(\tau)\nabla \log p_\theta(\tau)]\\ &\approx \frac{1}{N} \sum_{n=1}^N R(\tau^n)\nabla \log p_\theta (\tau^n) \\ &= \frac{1}{N} \sum_{n=1}^N \sum_{t=1}^{T_n} R(\tau^n)\nabla \log p_\theta(a_t^n|s_t^n) \end{aligned} \end{equation} \\

策略网络梯度更新:

可以看成一个分类问题(游戏中通过键盘输入来互动,分类类别为所有可操作的键位):

\nabla\bar{R}_\theta= \frac{1}{N} \sum_{n=1}^N \sum_{t=1}^{T_n} (R(\tau^n) {-b} )\nabla \log p_\theta(a_t^n|s_t^n)\\ {b \approx E[R(\tau)]} \\

在电子游戏中,奖励值常常为正(通常为游戏分数)。这时需要增加一个偏置来保证同时有正样本和负样本

一个高分的游戏轨迹中也可能存在错误的动作,同样的,一个低分的游戏轨迹也可能存在正确的动作,而上文中的计算将最后的奖励值(最后的游戏分数)都一视同仁视为该游戏轨迹每个动作的学分。

为了更准确地描述每个动作所得到的学分,将一个动作执行后对应的学分为后续的所有奖励值的总和

\nabla\bar{R}_\theta= \frac{1}{N} \sum_{n=1}^N \sum_{t=1}^{T_n} ({R(\tau^n)} -b )\nabla \log p_\theta(a_t^n|s_t^n)\\ \Downarrow\\ \nabla\bar{R}_\theta= \frac{1}{N} \sum_{n=1}^N \sum_{t=1}^{T_n} ({\sum_{t'=t}^{T_n} r_{t'}^n} -b )\nabla \log p_\theta(a_t^n|s_t^n) \\

当某个动作执行以后,其对后续的奖励分数的影响在慢慢减少,再增加一个衰减因子:

\nabla\bar{R}_\theta= \frac{1}{N} \sum_{n=1}^N \sum_{t=1}^{T_n} ({\sum_{t'=t}^{T_n} r_{t'}^n})\nabla \log p_\theta(a_t^n|s_t^n)\\ \Downarrow\\ \nabla\bar{R}_\theta= \frac{1}{N} \sum_{n=1}^N \sum_{t=1}^{T_n} ({\sum_{t'=t}^{T_n} \gamma^{t'-t} r_{t'}^n} -b )\nabla \log p_\theta(a_t^n|s_t^n),{\gamma<1} \\

2. 从 on-policy 到 off-policy

两者区别

重新看看 \nabla\bar{R}_\theta 的表达式:

\nabla\bar{R}_\theta = E_{{\tau\sim p_\theta(\tau)}}[R(\tau)\nabla \log p_\theta(\tau)] \\

2.1 重要性采样(Importance Sampling)

考虑一个场景,假如正在尝试计算函数 f(x) 的期望值,其中 x \sim p(x) 服从某种分布。则对 E(f(x)) 有以下估计:

E_{x\sim p}[f(x)] = \int f(x)p(x)dx \approx \frac{1}{n} \sum_i f(x_i) \\

蒙特卡洛抽样方法是简单地从分布 p(x) 中抽出 x,然后取所有样本的平均值来得到期望值的估计。那么问题来了,如果 p(x) 非常难取样怎么办?是否能够根据一些已知的、容易抽样的分布来估计期望值?

答案是肯定的。公式的一个简单转换就可以做到

E_{x \sim p}[f(x)] = \int f(x)p(x)dx = \int f(x)\frac{p(x)}{q(x)}q(x)dx =E_{x \sim q}[f(x){\frac{p(x)}{{q(x)}}}] \\

其中 x 从分布 q(x) 中采样,q(x) 不应为 0。通过这种方式,估计期望能够从另一个分布 q(x) 中采样, p(x)/q(x) 是称为采样率或采样权重,它作为校正权重以抵消来自不同分布的概率采样

虽然重要性采样保证了期望的一致,但是这里来计算一下方差是否一致

方差的计算:

Var[X] = E[X^2] - (E[X])^2 \\

分别计算方差:

Var_{x\sim p}[f(x)] = E_{x\sim p}[f(x)^2] - (E_{x\sim p}[f(x)])^2 \\ \begin{equation} \begin{aligned} Var_{x\sim q}[f(x)\frac{p(x)}{q(x)}]&=E_{x\sim q}[(f(x)\frac{p(x)}{q(x)})^2] - (E_{x\sim q}[f(x)\frac{p(x)}{q(x)}])^2\\ &=E_{{x\sim p}}[f(x)^2{{\frac{p(x)}{q(x)}}}]-(E_{{x\sim p}}[f(x)])^2\\ \end{aligned} \end{equation} \\

可以发现两者虽然期望相等但方差并不一致

2.2 从 on-policy 到 off-policy

我们使用重要性采样将 on-policy 调整为 off-policy

\nabla\bar{R}_\theta = E_{{\tau\sim p_{\theta'}(\tau)}}[{\frac{p_{\theta}(\tau)}{p_{\theta'}(\tau)}}R(\tau)\nabla \log p_\theta(\tau)] \\

梯度更新过程:

\begin{equation} \begin{aligned} &= E_{(s_t,a_t)\sim \pi_\theta}[A^{\theta}(s_t,a_t)\nabla \log p_\theta (a_t^n|s_t^n)]\\ &=E_{(s_t,a_t)\sim {\pi_{\theta'}}}[{\frac{p_\theta (s_t,a_t)}{p_{\theta'} (s_t,a_t)}A^{\theta'}(s_t,a_t)}\nabla \log p_\theta (a_t^n|s_t^n)]\\ &=E_{(s_t,a_t)\sim {\pi_{\theta'}}}[{\frac{p_\theta (a_t|s_t)}{p_{\theta'} (a_t|s_t)} \frac{p_\theta (s_t)}{p_{\theta'}(s_t)} A^{\theta'}(s_t,a_t)}\nabla \log p_\theta (a_t^n|s_t^n)]\\ &=E_{(s_t,a_t)\sim {\pi_{\theta'}}}[{\frac{p_\theta (a_t|s_t)}{p_{\theta'} (a_t|s_t)}A^{\theta'}(s_t,a_t)}\nabla \log p_\theta (a_t^n|s_t^n)]\\ \end{aligned} \end{equation} \\

目标函数可以表示为:

由于 \nabla f(x)=f(x)\nabla\log f(x) 再结合不定积分,目标函数可以表示为:

J^{\theta'}(\theta) = E_{(s_t,a_t)\sim \pi_{\theta'}}[\frac{p_\theta (a_t|s_t)}{p_{\theta'} (a_t|s_t)}A^{\theta'}(s_t,a_t)] \\

3. PPO/TRPO

为了消除重要性采样的缺陷的影响,以下为两种方式


{PPO\ algorithm:}\\ J^{\theta^k}_{PPO}(\theta) = J^{\theta^k}(\theta) - \beta KL(\theta,\theta^k)\\ J^{\theta^k}(\theta) = E_{(s_t,a_t)\sim \pi_{\theta^k}}[\frac{p_\theta (a_t|s_t)}{p_{\theta^k} (a_t|s_t)}A^{\theta^k}(s_t,a_t)]\approx\sum_{(s_t,a_t)}\frac{p_\theta (a_t|s_t)}{p_{\theta^k} (a_t|s_t)}A^{\theta^k}(s_t,a_t)\\ \\

自适应 KL 惩罚:如果 KL(\theta,\theta^k)>KL_{\max},增大 \beta;如果 KL(\theta,\theta^k)<KL_{\min} ,减小 \beta

{PPO2\ algorithm:}\\ J^{\theta^k}_{PPO2}(\theta) \approx \sum_{(s_t,a_t)} \min(\frac{p_\theta (a_t|s_t)}{p_{\theta^k} (a_t|s_t)}A^{\theta^k}(s_t,a_t),clip(\frac{p_\theta (a_t|s_t)}{p_{\theta^k} (a_t|s_t)},1-\varepsilon,1+\varepsilon)A^{\theta^k}(s_t,a_t)) \\


J^{\theta'}_{TRPO}(\theta) = E_{(s_t,a_t)\sim \pi_{\theta'}}[\frac{p_\theta (a_t|s_t)}{p_{\theta'} (a_t|s_t)}A^{\theta'}(s_t,a_t)]\\ KL(\theta,\theta') < \delta \\

TRPO 和 PPO 在各个测试上性能差不多。但相比 PPO ,TRPO 计算要更复杂

参考

代做工资流水公司温州工资银行流水图片肇庆车贷流水打印昆明开贷款银行流水福州签证工资流水公司上饶车贷银行流水 多少钱吉林工资银行流水制作潮州代办背调银行流水武汉办理工资流水桂林薪资银行流水费用福州打印个人工资流水曲靖做银行流水账太原个人银行流水多少钱洛阳流水账单荆州查询对公银行流水唐山打印转账流水查询房贷工资流水新乡办对公银行流水肇庆对公账户流水代开沈阳贷款工资流水 样本无锡查工资流水app截图中山开银行流水单宁德办入职银行流水宿迁办转账流水福州薪资银行流水多少钱襄阳公司银行流水多少钱武汉企业流水打印代开北京办理企业对公流水南昌个人工资流水 价格莆田做房贷流水阜阳企业流水打印图片香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化