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、DQN:
4.2 基于策略 policy-based
该方法就是多次尝试不同的策略,当策略取得好结果时,增加该策略的信心,当策略取得坏结果时,减少该策略的信心。策略由参数
定义,我们通过最大化期望汇报来优化它:
代表算法就是REINGORCE->PPO
5. PPO训练CartPole
仅介绍大致原理,具体内容还请自行查看
![]()
5.1 状态、动作、奖励与策略
状态(State):表示智能体看到了什么?是对环境当前局面的数值化描述,不同任务有不同的状态
| 编号 | 含义 | 观测空间边界 | 实际范围 |
| 0 | 小车位置 | -4.8~4.8 | -4.8~4.8 |
| 1 | 小车速度 | 无硬限制 | -3~+3 |
| 2 | 杆子角度 | ±24° | -0.21~0.21 rad |
| 3 | 杆子角速度 | 无硬限制 | -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更新:裁剪让训练更稳定。PPO(Proximal 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 fraction):KL散度衡量新旧策略之间的差异程度,KL=0表示完全没变,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和Accuracy
Training 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)、未来打几折(
)。
S(State):状态集合。状态是环境在某一时刻的完整描述。MDP最核心的假设是马尔可夫性:主要看清当前状态,不需要知道之前是怎么走到这个局面的,就能做出最优决策。状态必须包含做决策所需的所有信息。
A(Action):动作集合。动作空间的类型直接决定了算法选择:离散空间具有可枚举所有选择,挑选最好的特点,可以使用Q-learning/DQN算法;连续空间则无法枚举,可以用策略梯度算法。
P(Transition Probability):转移概率。表示在状态s下采取动作a后,转移到s'的概率。如果转移矩阵P已知,就能用动态规划直接算最优策略;P不知,则只能通过交互来摸索。
R(Reward):奖励函数。表示在状态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 Programming,DP)
DP计算价值的核心叫做策略评估(Policy Evaluation),其实就是把贝尔曼期望方程的等号换成了赋值箭头,反复对所有状态执行更新,V最终会收敛到的精确值,但是这要求环境的转移概率和奖励函数都知道。
使用折扣因子的目的有两个:1.让无限长的任务不爆掉,如果等于1,无限期任务可能把奖励一直加下去,最后没有有限答案。2.表达“眼前更重要”,未来不是不重要,但是太远的未来的值会被缩减。
DP的策略迭代(Policy Iteration)是 评估策略-改进策略-再评估 的一个循环,主要做的就是策略评估的策略改进,理论上可以保证收敛到最优策略。目标是在状态s选择让最大的动作:
由于是最高分动作,所以它至少不会比旧策略原来选的动作差:
对左边的公式进行展开可以得到:
当的时候,贪心策略不再改变,意味着达到了贝尔曼最优方程的条件:
9.2 蒙特卡洛方法(Monte Carlo,MC)
MC的策略很简单,在不知道规则的情况下,就直接进行探索,探索完成计算最终得分。用很多次真实探索的平均结果替代原本不知道的环境公式。更新规则如下:
式中,表示原来以为状态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 Difference,TD)
TD的核心思想是不用等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可以一边继续玩游戏、一边服用旧的经验,所以是online+off-policy;DPO可以在固定的数据集上进行训练,所以是offoline;PPO/GRPO每轮都让当前模型生成新回答,再用这批回答更新模型,所以是online+on-policy。
11.1 行为策略和目标策略
待续