简介
文章详细解析了PPO算法中clip机制的工作原理和作用。在Actor Model中,clip通过设置上界(1+ε)和下界(1-ε)控制哪些动作概率需要更新,避免对表现好的动作概率过度优化;在Critic Model中,clip和max操作剔除掉更接近return的new value,防止对优秀样本过度更新。这些clip机制都是为了防止模型对已表现良好的样本过度优化,避免"过犹不及",增强训练稳定性。
一、Actor Model:最大化目标函数
网络上大部分 PPO 博客有个共识:PPO-Clip 引入了 clip 方法来控制策略(即动作概率)更新的幅度,确保新旧策略之间的变化在一定范围内,避免了过大的策略更新导致的性能下降或不稳定性。
https://zhuanlan.zhihu.com/p/7461863937
对于初学者,这其中可能蕴含着两个疑惑:
- 如果 clip 是用于控制动作概率变化幅度的,那为什么还需要 min?比如说按照下界进行 clip ,结果取完 min 操作保留的却还是未 clip 的值?
- 对概率比值做 clip,固定在阈值处,究竟意味着什么?
借这篇文章我向大家分享我的思考:PPO-Clip 通过设置了上界 1 + ε(适用于 A > 0)和下界 1 -ε(适用于 A < 0)来控制哪些动作概率需要更新,哪些不要更新,确保新策略不因为针对某些优秀动作概率的继续更新,与旧策略相差太大,而最终导致模型性能下降或训练不稳定性(所谓过犹不及)。
对比之前的表述:PPO-Clip 引入了 clip 方法来控制策略(即动作概率)更新的幅度,确保新旧策略之间的变化在一定范围内,避免了过大的策略更新导致的性能下降或不稳定性。
我认为 clip 的效果应该从优化对象筛选的角度来思考,以下进行分类讨论:
Proximal Policy Optimization Algorithms
https://blog.csdn.net/v_JULY_v/article/details/128965854
A > 0,要提升动作概率:
- rt_(θ)>= 1 + ε,说明当前动作概率很大,不需要再过度提升了(可能会崩),所以选择 clip 后的标量值(对应取 min 操作)参与计算目标函数值,此时 actor model 不会被更新(因为此时的待优化变量「动作概率」被 clip 成一个常数,也就是说把这个变量从目标函数中移除了)。
- rt_(θ)<= 1 + ε,当前动作概率没那么大,可以正常对动作概率计算梯度,以进行更新(变大)。
A < 0,要降低动作概率:
- rt_(θ)<= 1 - ε,说明当前动作概率很小,不需要再降低了(可能会崩),所以选择 clip 后的标量值(对应取 min 操作)参与计算目标函数值,此时 actor model 不会被更新(原因同上)。
- rt_(θ)>= 1 - ε,当前动作概率没那么小,可以正常对动作概率计算梯度,以进行更新(变小)。
PPO 论文中第三小节“Clipped Surrogate Objective”提到:“we take the minimum of the clipped and unclipped objective, so the final objective is a lower bound (i.e., a pessimistic bound) on the unclipped objective.”
之所以说新的 clip 目标函数是原始目标函数的下界(悲观界),是因为原始目标函数(未 clip)包含了所有动作概率,包括那些表现很好的动作概率:对于 A > 0 的情况,概率比率 rt_(θ) 大的算表现好;对于 A < 0 的情况,概率比率 rt_(θ) 小的算表现好。
而新的 clip 目标函数给那些表现很好的动作概率设定了控制阈值,以部分忽视它对目标函数的贡献。
类似于统计班级平均分的时候,考试分数为 100 分的学霸仅仅记录为 95 分,所以最终统计出来的分数自然比真实平均分更多,所以说是下界。
事实上,PPO-Clip 的目标函数还可以做进一步简化,更能体现「阈值 ε」所实际产生的筛选作用。
https://drive.google.com/file/d/1PDzn9RPvaXjJFZkGeapMHbHGiWWW20Ey/view
所以:
- 术(怎么做的):clip 通过设置了上界 1 + ε(适用于 A > 0)和下界 1 - ε(适用于 A < 0)来控制哪些动作概率需要更新,哪些不要更新,确保新策略不因为继续更新某些优秀动作概率而与旧策略相差太大,避免「过犹不及」的风险。
- 道(为什么要这么做):这样能够使得新旧策略之间的变化在一定范围内,避免了激进的策略更新导致的性能下降或不稳定性(防止模型训歪)。
二、Critic Model:最小化目标函数
old value 的上界小于 return,generated by ChatGPT
所以,clip 和 max 操作剔除掉了相比于 old value 更接近 return 的 new value,这些优秀样本不应该用来过度更新 critic model,防止「过犹不及|的风险。
在此感谢我的 RL 搭子 @DIoInRUC 与我讨论,让我最终产出了本篇博客。
Actor Model 和 Critic Model 中的 clip 和 min(max) 函数都是为了防止模型对那些已经表现很好的样本进行过度优化,避免过犹不及的风险,增强模型训练的稳定性。
三、如何学习AI大模型?
如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!
第一阶段:从大模型系统设计入手,讲解大模型的主要方法;
第二阶段:在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段:大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段:大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段:大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段:以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段:以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
100套AI大模型商业化落地方案
大模型全套视频教程
200本大模型PDF书籍
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
LLM面试题合集
大模型产品经理资源合集
大模型项目实战合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓