尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
从RL基础概念到GRPO
今天五月末之后我裸辞了这份工作虽然工作了两年多但感觉跟个人发展方向有一点的差距经历了一段时间的修整现在开始逐渐开始求职及个人研究的相关工作。这篇文章是我之前在职时对GRPO前置知识及推导的对应总结作为一个新的开始吧希望也可以给其他人提供一定的帮助。一、常用RL方案介绍1. 强化学习的基本概念强化学习简单来说由三部分组成智能体Agent就是这个别把它太高大上区别心理作用和实际应用、环境Environment 和 动作Action。以游戏“超级玛丽”为例Environment 就是指游戏画面Agent 是指玩家Action 是指在当前时刻玩家所采取的动作。强化学习的最终目的是训练一个 Agent 可以在当前 Environment 中获得最大的 奖励Reward。2.强化学习与监督学习的区别监督学习模型训练在监督学习中我们首先需要定义任务优化的目标、建立模型结构和准备数据不过这一切需要满足两个假设输入的数据标注的数据都应是没有关联的。因为如果输入的数据多是重复数据和相似度较高的数据学习器learner是不好学习的。。需要告诉学习器正确的标签是什么这样它可以通过正确的标签来修正自己的预测。这两个假设在强化学习中面临挑战首先以游戏为例画面存在大量重复元素差异性小其次只有游戏结束才能得到结果标签相比于图片识别等任务得到结果的过程过长且难以定义中间过程对结果的贡献。3.强化学习的数学基础3.1 马尔可夫过程马尔可夫过性质如果一个状态的下一个状态只取决于它当前状态而跟它当前状态之前的状态都没有关系。那我们就说这个状态转移符合马尔可夫性质如上图所示这里有一个包含之前的所有状态的ht对于sts_tst​转到st1s_{t1}st1​来说对st1s_{t1}st1​状态的影响有且只与st有关。如果某一个过程满足马尔可夫性质(Markov Property)就是说未来的转移跟过去是独立的它只取决于现在。马尔可夫过程的例子上图为一个马尔可夫过程的例子这里有七个状态。比如从s1 开始它有0.4的概率到s2 有 0.6 的概率留在当前的状态。 s2有 0.4 的概率到s1有 0.4 的概率到 s3另外有 0.2 的概率留在当前状态。如果我们从s3进行采样我们就会得到3条轨迹。◆ s3,s4,s5,s6,s6◆ s3,s2,s3,s2,s1◆ s3,s4,s4,s5,s5通过对状态的采样我们可以生成很多这样的轨迹。马尔科夫链离线的马尔可夫过程称为马尔可夫链马尔可夫奖励过程马尔可夫奖励过程是在马尔可夫链的基础上加入了奖励函数也就是说我们每到达一个状态时会有一个回报。我们用R表示全体奖励r表示当前时刻的奖励t表时间则在t时刻的奖励为Gtrt1γrt2γ2rt3.....γT−t−1rTG_tr_{t1}γr_{t2}γ^2r_{t3}.....γ^{T−t−1}r_TGt​rt1​γrt2​γ2rt3​.....γT−t−1rT​针对上面的例子如果R5,0,0,0,0,0,10γ0.5则G计算为s4,s5,s6,s7的回报为00.5×00.25×00.125×101.25s4,s3,s3,s1的回报为00.5×00.25×00.125×50.625其Gt对应的期望为状态价值函数Vt(s)E[Gt∣sts]V^t(s)E[G_t|s_ts]Vt(s)E[Gt​∣st​s]Vt(s)E[rt1γrt2γ2rt3.....γT−t−1rT∣sts]V^t(s)E[r_{t1}γr_{t2}γ^2r_{t3}.....γ^{T−t−1}r_T|s_ts]Vt(s)E[rt1​γrt2​γ2rt3​.....γT−t−1rT​∣st​s]状态价值函数可以通过贝尔曼方程的形式计算其推导过程如下马尔可夫决策过程相对于马尔可夫奖励过程马尔可夫决策过程多了决策决策是指动作其他的定义与马尔可夫奖励过程的是类似的。此外状态转移也多了一个条件变成了。未来的状态不仅依赖于当前的状态也依赖于在当前状态智能体采取的动作。马尔可夫决策过程满足条件对于奖励函数它多了一个当前的动作变成了。当前的状态以及采取的动作会决定智能体在当前可能得到的奖励多少。不过这里就涉及了一个问题那就是如何决定我们采取何种动作呢通常这由一个策略函数π决定。πa∣sp(ata∣sts)πa|sp(a_ta|s_ts)πa∣sp(at​a∣st​s)在此情况下状态转移函数和奖励函数变化为价值函数这里我们另外引入了一个 Q 函数Q-function。Q 函数也被称为动作价值函数action-value function。Q 函数定义的是在某一个状态采取某一个动作它有可能得到的回报的一个期望即这里的期望其实也是基于策略函数的。所以我们需要对策略函数进行一个加和然后得到它的价值。 对 Q 函数中的动作进行加和就可以得到价值函数对Q函数的贝尔曼推导为简单的来说就是决定奖励r的元素不止取决于当前状态s还有当前动作a为了描述s和a的转换关系我们引入了决策函数ππ这个字母要记好了以后要理解策略和智能体会多次用到这个符号。3.2 策略梯度策略与轨迹的定义我们回顾一下强化学习的三个基本概念行为actor、环境environment、奖励reward例如在电视游戏中actor 做的事情就是去操控游戏的摇杆environment 就是游戏的主机reward function 采取某一行为时得到的分数。actor的行为由策略决定而策略可以理解为当给定外界条件时我们进行的动作输出根据上一节内容定义为πa∣sp(ata∣sts)πa|sp(a_ta|s_ts)πa∣sp(at​a∣st​s)环境、行为的关系如上图所示首先environment 是游戏主机可以由一个公式表示。这个环境产出一个状态s1将此状态输入策略π的神经网络中产生动作然后动作进一步引起环境的变化重复产生状态si与ai。我们把环境输出的 s与演员输出的动作 a全部组合起来就是一个轨迹即Trajectory在人工智能的相关方法中演员就是模型其参数为θ给定演员的参数 θ我们可以计算某个轨迹τ发生的概率为奖励函数及梯度在强化学习里面除了环境与演员以外还有奖励函数。如上图所示奖励函数也是一个公式每个s和a都有其对应的奖励r。我们把所有的r相加就得到了总奖励我们要做的事情就是调整 actor 的内部参数θ使得R的值越大越好。那么如何对奖励求梯度呢我们用了梯度上升对R求相应的梯度通过蓝框公式的转换可将其转化为上图的最后形式。由于R的计算公式中带有π函数所以更新的梯度可以作用于策略函数。推导过程如下二、PPO及变体GRPO同策略与异策略在 reinforcement learning 里面我们要学习的agent如果 跟和环境互动的 agent 是同一个的话 这个叫做on-policy(同策略)反之如果要学习的 agent 跟和环境互动的 agent 不是同一个的话 那这个叫做off-policy(异策略)。那么我们如何将同策略转化为异策略呢重要性采样具体做法如上图所示这里有一个函数f(x)两个分布p(x)与q(x)假设p(x)不能做积分q(x)却可以积分。这样的话我们可以从q(x)上采样通过p(x)和q(x)上的装换关系来求期望。在将同策略换为异策略之后策略梯度为而在实际的策略梯度计算中我们往往是将每个状态和动作分开计算的更新过程可写为近端策略优化PPOPPOPPO2PPO2 即近端策略优化裁剪。近端策略优化裁剪的目标函数里面没有 KL 散度其要最大化的目标函数为其中■操作符operatormin 是在第一项与第二项里面选择比较小的项。■第二项前面有一个裁剪clip函数裁剪函数是指在括号里面有3项如果第一项小于第二项那就输出 1−ε第一项如果大于第三项那就输出 1ε。■ε 是一个超参数是我们要调整的可以设置成 0.1 或 0.2GRPO优化前的PPO2GRPO的公式主要基于PPO2的公式演化而成不同的是将环境由s符号换成了q动作符号由a换成了o这样PPO2公式就变成了其中优势函数的计算为优势函数中r的计算为:GRPO其中KL散度的公式为■GRPO与PPO的区别其中GRPO舍弃了奖励函数就是省掉了一些需要训练的模型用优势的平均计算价值极大的节省了成本也加快的收敛速度。三、deepseek训练流程1.思维链2.DeepSeek-R1训练流程3.SFT与RLSFT公式RFT公式GRPO公式
RELATED

相关推荐

RAG私有知识库毕设实战:从文档切分到本地LLM问答全流程

RAG私有知识库毕设实战:从文档切分到本地LLM问答全流程

简介:这是一套面向计算机专业本科生的高分毕业设计级RAG私有知识库智能问答系统实现方案,专为毕设实战、课程设计与深度学习项目练手打造,解决学生缺乏端到端AI应用开发经验的痛点。资源包含545个文件,主体为145个Python源码&…

📅 2026/9/11 20:00:51
基于YOLOv5与ResNet18的手骨X光片骨龄检测系统实践

基于YOLOv5与ResNet18的手骨X光片骨龄检测系统实践

简介:这套基于Python与YOLOv5的手骨骨龄检测项目,面向毕业设计、课程设计及项目开发场景,提供从数据处理、模型训练到结果演示的完整工程实践。资源共189个文件,整体约436.79MB,涵盖Python脚本(py&#xff…

📅 2026/9/11 19:55:51
Docker生产环境应急处理指南:故障排查与常用命令速查

Docker生产环境应急处理指南:故障排查与常用命令速查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/11 19:55:51
MORE NEWS

更多资讯

📰

Agent学习记录三:完成 Agent Loop

一、最基础的 Agent Loop。修改代码from openai import OpenAI import jsonclient OpenAI() def calculator(a, b):return a * btools [{"type": "function","name": "calculator","description": "计算两个数字的乘…

📰

文档加密不等于万事大吉:剖析容易被忽略的终端行为类安全风险

前言 提起终端数据防泄露,大家第一反应就是文档加密、禁用 U 盘、管控文件外发。这些属于对 “文件本身” 做防护。但实际安全事件里,大量风险并不产生于文件拷贝,而是来自人的操作行为:复制敏感内容粘贴到聊天框、在 AI 大模型输…

📰

基于PyTorch的建筑物识别:从语义分割到掩膜矢量化

简介:基于Python和PyTorch的建筑物识别器源码,面向计算机视觉入门者及城市规划、灾害管理等行业应用,采用MaskRCNN模型对卫星或航拍图像进行建筑物自动识别与定位。资源共16个文件,以13个Python脚本为主体,涵盖数据预处…

📰

STC89C52与RC522读写M1卡源码解析:从SPI到防碰撞认证流程

简介:面向嵌入式初学者、电子竞赛参赛者和 RFID 应用开发者,这份 STC89C52-RC522 源码包以 STC89C52 单片机控制 RC522 模块,完整实现 M1 非接触式 IC 卡的读写操作,解决从底层驱动到扇区密钥验证、数据存取的落地问题。压缩包内共…

📰

Pico+W5500实现工业级TCP客户端实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

电厂数据预测:GA-ACO-RFR组合模型优化实践

1. 项目背景与核心价值 电厂运行数据预测是能源行业的核心需求之一。传统方法往往依赖单一算法,难以应对复杂工况下的非线性关系。我们团队开发的这套GA-ACO-RFR组合预测模型,通过遗传算法(GA)优化特征选择、蚁群算法(…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬