强化学习RL学习(未完待续) 1.什么是强化学习强化学习是一类解决序列决策问题的计算方法。一个智能体Agent处在某个环境Environment中在每个时刻观察环境的状态State据此选择一个动作Action环境接收动作后转移到新状态并给智能体一个标量奖励Reward作为唯一的反馈信号。智能体的目标最大化整个交互过程中的累积奖励。三要素序列决策当前决策影响未来、唯一反馈是奖励没有标准答案、目标是累积回报不贪心单步奖励2.强化流程图强化学习的交互过程是一个不断重复的循环1. 智能体观察到当前状态选择动作2. 环境执行动作转移到新状态返回奖励3. 回到第1步强化学习的学习目标就是最大化目标奖励值得注意的一点强化学习是一个多轮的交互最终会产生一个轨迹我们需要最终的的总和最大但是Agent只能知道当前的奖励是多少无法知道未来的奖励是多少这里就需要引入折扣引子一般在0-1之间通常为0.95-0.99为的就是体现未来的1分可能不如现在的1分它决定了Agent的视野。下面给出未来奖励和的计算公式3.如何设计一个Reward函数在传统的游戏控制任务中如马里奥“奖励”是环境自带的吃金币1掉坑里-100。但是当我们把强化学习用到大语言模型LLM上让AI学会“好好说话”时问题来了人类的偏好极其复杂环境根本没法自动给出一句回答是1 分还是-1分。这就引出了大模型时代RL的两条关键路线1.基于偏好的对齐RLHF/DPO当判断标准是“人类是否喜欢”如语气是否礼貌、回答是否安全时环境没法自动 给分。我们先让人类给AI的回答打分训练一个奖励模型RewardModel,RM来“模仿”人类偏好再用它来指导RL 训练。2.基于可验证奖励的纯强化学习Pure RL/RLVR当我们转向数学、代码或复杂推理Reasoning任务时答案的对错是客观可验证的。DeepSeek-R1-Zero等前沿工作证明不再需要预先进行SFT或训练RM只要给模型一个基于规则的反馈比如代码能否跑通、数学题结果是否正确纯粹的强化学习就能驱动基础模型BaseModel自发涌现出长思维链Chain-of-Thought和强大的推理能力。4. 策略的探寻RL的目标是最大化奖励但是奖励是由动作决定的我们将agent选择动作称为-策略policy这样训练的最终目标就是找到最优策略。策略分两种确定性策略和随机性策略随机性兼顾了探索存在概率去尝试非首选动作。4.1 基于价值 value-based先搞清楚每个动作值多少分再去选最高分你可以清楚的看清当前各个动作的得分表这个表就是动作价值函数Q函数但是你或许会疑问为什么还没到最后就知道了该动作之后未来的得分RL正是靠“先瞎猜后一步步纠正”这就是马尔可夫决策过程MDP。MDP的核心假设是“未来只依赖当前与过去无关”该假设把无限长的未来从中间切断-这就是贝尔曼方程Bellman Equation他将Q值拆解为当前的Q值眼前的即时奖励下一步的Q值。通过不断的试错Q值最终会向真实的分数收敛满足贝尔曼最优方程这是最佳策略就自然而然的出来了代表算法Q-Learning、DQN4.2 基于策略 policy-based该方法就是多次尝试不同的策略当策略取得好结果时增加该策略的信心当策略取得坏结果时减少该策略的信心。策略由参数定义我们通过最大化期望汇报来优化它代表算法就是REINGORCE-PPO5. PPO训练CartPole仅介绍大致原理具体内容还请自行查看5.1 状态、动作、奖励与策略状态State表示智能体看到了什么是对环境当前局面的数值化描述不同任务有不同的状态编号含义观测空间边界实际范围0小车位置-4.8~4.8-4.8~4.81小车速度无硬限制-3~32杆子角度±24°-0.21~0.21 rad3杆子角速度无硬限制-3~3动作Action表示智能体能做什么动作空间的类型可以分为连续和离散在很大程度上决定了算法的选择。Q-learning类算法天然适合离散动作空间而策略梯度方法则对两种空间都能胜任。动作含义0向左推小车1向右推小车奖励Reward表示智能体能得到什么反馈 奖励信号是延迟的、稀疏的。在RL中只有最终的总回报中间过程需要智能体通过反复交互来自行推断。CartPole中的奖励规格每存活一步1分回合结束条件杆子倾角±12°或小车位置超出±2.4满分500分策略Policy表示智能体怎么决策把上面三个要素串起来就得到了RL的核心概念-策略。RL的策略有三种形态表格策略Tabular Policy建一张表把每个状态对应的最优动作写死。然而当状态空间很大时表格的存储需求将远超任何物理设备的容量。线性策略Linear Policy用一个线性函数把状态映射到动作概率。计算简单、理论分析方便但是对于非线性关系表达能力还不够。神经网络策略Neural Network Policy用多层非线性变换来拟合。只要网络足够宽可以拟合任何连续函数。5.2 训练方式和网络结构Actor-Critic网络即做决策又做评估。核心思想是Actor演员就是策略网络输入状态输出每个动作的概率。Critic评委输入状态输出一个分数该分数就是从这个状态出发未来预期能拿多少总奖励。Actor和Critic可以使用同一个主干网络也可以使用两个独立的主干网络。收集轨迹Rollout让智能体与环境交互一轮。GAE优势估计这个动作与预期好多少优势Advantage表示每一个动作到底比“平均水平”好了多少。PPO更新裁剪让训练更稳定。PPOProximal Policy Optimization用一个简单的裁剪技巧替代了KL约束在保持训练稳定性的同时大幅简化实现。裁剪的含义是新策略和旧策略的差异超过了约定的最大值就不再鼓励它继续往那个方式变化。PPO更新步骤还会记录两个健康指标KL散度和裁剪比例。KL散度过大说明单次更新幅度过大裁剪比例过高说明策略变化过快。5.3 训练结果观察奖励、熵、Value Loss和KL回合平均奖励mean reward是判断训练效果最直接的指标。一次正常的训练中平均奖励曲线在初始阶段数值较低之后会迎来快速上升阶段和收敛阶段。曲线持续上升并趋于稳定即表示训练成功。若曲线始终持平或出现突然暴跌则说明训练过程存在异常。策略熵policy entropy是度量智能体在动作选择上的不确定性。高熵表示智能体仍在广泛探索低熵表示智能体逐渐确定了最优动作。一条健康策略熵曲线应从高到低缓慢下降与奖励曲线成交叉--奖励上升的同时熵下降。若早期就为0存在过早收敛到非最优模式的可能。价值损失value loss的任务是预测状态价值函数度量的就是Critic的预测值与实际回报之间的偏差。value loss减少并不等同于策略在改善。他仅表明Critic评估更为准确策略本身表现由平均奖励为判断。若是出现价值损失长期不降或反而增加通常意味着Critic未能跟上策略的变化速度。KL散度approxiamte KL divergence与裁剪比例clip fractionKL散度衡量新旧策略之间的差异程度KL0表示完全没变KL越大说明变得越多当数据过大时有崩溃的风险。裁剪比例表示当前更新中触发PPO裁剪机制的样本占总样本的比例。6. DPO偏号微调直接偏好优化Direct Preference Optimization是一种无需显式训练奖励模型即可对齐语言模型与人类偏好的方法。DPO跳过了外部的奖励模型通过直接拉大”好回答相对于参考模型的概率提升”与”坏回答相对于参考模型的概率提升”之间的差距来优化模型。6.1 DPO的基本元素训练目标为人类偏好对齐Alignment要求判断给定的回答是否符合人类的价值观、是否有用、是否诚实。该方式需要关注模型是否会存在过度顺从的情况是否会迎合用户从而生成一些错误的回答。虽然看似友好但是是不诚实的表现。偏好对齐假设目标可以表示为对两个不同回复的相对偏好因此该训练方式的数据集一般由提示词prompt、被选中的好回答chosen和被拒绝的坏回答rejected组成一般称其为偏好数据集。6.2 DPO和SFT的区别监督微调SFT训练只使用chosen数据模型不知道“盲目符合”是错误的。DPO同时使用chosen和rejected数据rejected提供了明确的负信号。因此DPO在偏好学习上通常比SFT更高效从正反两面同时学习不仅仅是模仿正面回答。6.3 DPO优化目标DPO的损失函数公式中的符号含义表示用户的提问promt表示好的回答chosen response表示坏的回答rejected response表示正在训练的策略模型policy model表示冻结的原始模型测试reference model。第一步条件概率。模型根据输入输出回答对回答中的每个token一次给出概率并将其乘起来就得到了整个回答的条件概率。在DPO中我们关注生成好回答的概率和生成坏回答的概率。第二步引入参考模型用比值替代绝对概率。为了解决模型为了提高好回答的概率发生偏离合理输出分布的情况引入原始模型权重作为参照该变量在整个训练过程中不会发生变化。优化方向不是直接优化而是优化与的比值第三步好坏对比取对数。DPO的目标是让好回答的比值高于坏回答的比值。由于概率是多个token概率的乘积直接进行比值容易产生数值下溢。取对数进行计算会更稳定。其核心的奖励差距如下当时说明模型比训练前更倾向于生成这段文本小于0时则相反。DPO的目标是让好回答对应的值大于坏回答对应的值。第四步构成损失函数。最后需要将越多越好的差距转化为越小越好的损失函数就要用到Sigmoid函数。该函数将任意实数x映射到0,1区间x约到约接近1。将上述步骤进行组合就得到了最终的DPO损失函数6.4 训练结果观察Loss、Reward Margin和AccuracyTraining Loss训练损失健康变化为曲线持续下降并趋于稳定。Reward Margin奖励边界奖励边界是损失函数中Sigmoid内部的奖励差距项反映模型的区分能力。Margin为正且越大说明模型越确信”好回答比坏回答好得多“。一条健康的曲线应该从零附近逐步上升并趋于稳定。当Margin变为负数或在零附近发生震荡说明模型完全无法区分回答的优劣。常见原因包括好坏回答的长度差异过大、数据本身存在歧义、或者学习率设置不当。Reward Accuarcy偏好准确率表示在一个训练批次中模型给好回答的隐式奖励高于坏回答隐式奖励的样本占比7. MDP与价值函数7.1 RL框架S,A,P,R一个MDP马尔可夫决策过程由五个要素定义写作S,A,P,R。任何一个RL问题都可以转化为问自己五个问题站在哪S、干什么A、会怎么样P、得几分R、未来打几折。SState状态集合。状态是环境在某一时刻的完整描述。MDP最核心的假设是马尔可夫性主要看清当前状态不需要知道之前是怎么走到这个局面的就能做出最优决策。状态必须包含做决策所需的所有信息。AAction动作集合。动作空间的类型直接决定了算法选择离散空间具有可枚举所有选择挑选最好的特点可以使用Q-learning/DQN算法连续空间则无法枚举可以用策略梯度算法。PTransition Probability转移概率。表示在状态s下采取动作a后转移到s的概率。如果转移矩阵P已知就能用动态规划直接算最优策略P不知则只能通过交互来摸索。RReward奖励函数。表示在状态s下采取动作a后获得的奖励奖励是RL中唯一的学习信号。Discount Factor折扣引子。用于控制智能体对“延迟满足”的重视程度。7.2 折扣累积回报MDP五元组定义了“单步”规则但RL不是一步游戏每一步都会产生状态、动作和奖励一串下来形成一条轨迹trajectory。需要注意的是越往后的奖励对于当前的动作需要存在贬值不能和即时奖励一视同仁。的递归结构可以看成是从时刻t还是的总回报这一步的奖励折扣后下一步的总回报。7.3 策略智能体的决策规则决策规则是指在每一个状态下选哪个动作。策略就是这个决策规则训练的总目标就是找到让最大的最优策略。策略有两种新式确定性策略和随机性策略。确定性策略优点是简洁缺点是缺乏探索随机性策略则天然兼顾探索总有小概率去尝试非首选动作。8. 状态价值函数与贝尔曼方程8.1 状态价值函数的定义状态价值函数的定义是其中表示从现在开始把未来奖励加起来表示越远的奖励打折越多表示环境和策略可能有随机性所以取平均结果。价值函数总结成一句话就是从状态s出发按策略玩下去平均能拿多少分。8.2 贝尔曼方程价值函数面对的两大问题1.未来太长有些任务没有明确的终点2.可能性太多因为环境和策略都有随机性无法遍历全部的状态。因此贝尔曼方程将对未来的无限穷举遍历等价替换成只要眼前一步的递归计算。8.2.1 将条件从当前状态推到下一状态的证明下面用到的符号说明当前状态、下一状态、未来的总回报。目标是证明第一步展开的期望。由于是在给定条件下未来回报的期望因此可以展开为要计算的期望就是要求第二步对下一状态再次展开期望第三步注入马尔可夫性。未来回报只和刚好发生的那一刻的状态有关和更早之前的状态无关可以将上面式子写为第四步概率的乘法公式与边缘化。由条件概率公式可以得到乘法公式将额外条件C作为大前提式子则变为则上面的式子可以化简为8.3 Q函数与状态-动作价值之前的价值函数是基于固定的策略但是我们不仅需要知道“状态好不好”还需要知道“在这个状态下采取某个动作好不好”。这就引出了Q函数Q-function也叫动作价值函数Action-value function。它表示在某一个状态采取某一个动作后未来可能得到的期望总回报V和Q的关系是是是由可能动作按策略概率的加权和通过上面的内容就可以对Q函数推导它的贝尔曼方程公式说明了采取动作的价值动作带来的即时奖励动作导致的下一状态的平均价值。8.4 贝尔曼期望方程策略评估有了上面的V和Q的转换关系我们就可以得到贝尔曼期望方程把的展开式带入的公式中就得到评估给定策略的方程8.5 贝尔曼最优方程寻找最优策略贝尔曼期望方程回答的是按策略行动状态值多少分但是RL最终训练是要找到最好的策略这就引出了最优价值函数和最优动作价值函数将最优价值函数和最优动作价值函数带入上面的期望方程中就可以得到贝尔曼最优方程其区别就在于将就平均变成了求最大值9. DP、MC、TD第八章中我们介绍了贝尔曼方程但是它需要环境的完整说明书转移概率P和奖励函数R在没有说明书的情况下怎么通过自己动手“试错”把估算出来。下面介绍RL中经典的单个方法DP、MC和TD。9.1 动态规划Dynamic ProgrammingDPDP计算价值的核心叫做策略评估Policy Evaluation其实就是把贝尔曼期望方程的等号换成了赋值箭头反复对所有状态执行更新V最终会收敛到的精确值但是这要求环境的转移概率和奖励函数都知道。使用折扣因子的目的有两个1.让无限长的任务不爆掉如果等于1无限期任务可能把奖励一直加下去最后没有有限答案。2.表达“眼前更重要”未来不是不重要但是太远的未来的值会被缩减。DP的策略迭代Policy Iteration是 评估策略-改进策略-再评估 的一个循环主要做的就是策略评估的策略改进理论上可以保证收敛到最优策略。目标是在状态s选择让最大的动作由于是最高分动作所以它至少不会比旧策略原来选的动作差对左边的公式进行展开可以得到当的时候贪心策略不再改变意味着达到了贝尔曼最优方程的条件9.2 蒙特卡洛方法Monte CarloMCMC的策略很简单在不知道规则的情况下就直接进行探索探索完成计算最终得分。用很多次真实探索的平均结果替代原本不知道的环境公式。更新规则如下式中表示原来以为状态s值多少分表示这次从s触发完成探索之后实际拿到多少分表示现实和预测的差表示每次改变多少。但是MC的奖励需要等到一个episode结束才能获得面对长任务或者无限制的任务较难适用。9.2.1 MC更新公式推到MC的思想就是用很多次完整回报的平均值该估计V(s)。假设状态s被访问了N次每次得到的回报为只需要保留平均值就能对于后面的新样本直接算出对齐进行整理得到如下式子这就可以理解为 新估计旧估计步长*(新样本-旧估计)最后把步长换成固定学习率就得到了MC方程9.2.2 MC无偏说明“无偏”表示估计值的期望等于真实值MC用的就是真实的完整回报从状态s触发实际跑完整个episode拿到的总回报。9.2.3 MC方差大说明MC的回报把从时刻t到episode结束的所有随机奖励加到一起每一步都是随机的不确定性在累加中逐渐增大。例子如果每步奖励方差固定为则随着长度指数级增长。9.3 时序差分学习Temporal DifferenceTDTD的核心思想是不用等episode结束走一步就结一次小账。其做法就是将 这一步的真实奖励 和 下一站的预估价值 拼起来得到一个临时目标 TD Target表示如果我从s走到了s这一步已经真实发生了从s往后的未来先暂时相信当前的估计9.3.1 TD的更新规则具体公式如下新估计旧估计*(小账目标-旧估计)式中表示原来以为当前状态s值多少分表示这一步真实拿到的奖励表示下一状态s现在估计值多少分是TD Target表示这一步真实奖励打折后的下一站估计是TD Error表示新看到的小账和旧预测之间差了多少。9.3.2 TD偏差说明TD Target中的是估计值并不是真实回报在训练前期会出现评估不正确的情况这u是偏差的来源9.3.3 TD方差说明相比于MC将全部奖励等到episode结束才返回TD Target只用了一个真实奖励后面的未来先用当前估计接上虽然不真实但是波动小很多。这就解释了TD核心就是牺牲一点无偏性换来更快、更稳定、更及时的更新。10. 策略目标上面都是通过价值来进行优化当面对无限动作时该如何通过策略来优化呢下面给出本节的重点公式该公式的物理意义就是agent按当前这套参数去行动平均可以拿多少分最终目标就是求最好的策略参数使得总成绩最大其期望就是“把每种可能的结果乘以它的发生概率然后全部加起来”这样目标函数就可以转化为对参数求导就可以得到这里的关键是得分是环境给的只跟轨迹有关不依赖于参数。再使用对数求导技巧即可得到式中的就是标准的期望定义因此对上面的公式进行转换就得到式中是转移概率可以理解为将其带回上面的式子就得到了策略梯度Policy Gradient估计式的基本形态11. 算法数据来源该部分最重要就是要记住on-policy/off-policy问的是这批样本是不是由“我要更新的策略”自己采集出来的online/offline问的是训练过程中我还能不能继续让策略去采集新样本。判断问题对于概念看什么这批数据由哪个策略产生on-policy/off-policy行为策略与目标策略的关系训练时还能不能继续采集新数据online/offline数据集是否继续增长不能把这两个问题有混淆。例如DQN可以一边继续玩游戏、一边服用旧的经验所以是onlineoff-policyDPO可以在固定的数据集上进行训练所以是offolinePPO/GRPO每轮都让当前模型生成新回答再用这批回答更新模型所以是onlineon-policy。11.1 行为策略和目标策略待续