楼层: 首页/ 算法与AI/ 模块九 · 强化学习
棋

模块九 · 强化学习

Reinforcement Learning · 试错拿奖励,RLHF 的理论祖宗

AlphaGo 赢李世石靠的就是它。今天大模型对齐用的 RLHF,底层就是这一套。不理解 RL,就理解不了 ChatGPT 最后一步怎么"学做人"的。

上一模块让模型会用工具,这一模块讲它怎么"学做人"。为什么需要?ChatGPT 最后那点"有用无害、说人话",底层就是强化学习 RLHF。不理解 RL,就理解不了大模型对齐的最后一步。学完你能说清 MDP、策略梯度和 PPO/DPO。下一模块讲模型怎么打分、怎么上线。

本模块要学什么(按这个顺序学)
MDP(状态/动作/奖励) → 值函数/贝尔曼方程 → Q-Learning → 策略梯度/PPO → RLHF三步 → DPO简化

9.1 马尔可夫决策过程 MDP

Markov Decision Process · RL 的数学骨架

想五元组

MDP = (S, A, P, R, γ):

S 状态空间,A 动作空间。P(s'|s,a) 在状态 s 做动作 a 后到 s' 的转移概率。R(s,a) 奖励。γ 折扣因子(0~1),越远的奖励越不重要。

马尔可夫性质:下一个状态只依赖当前状态和动作,跟历史无关。这是 RL 数学可解的前提。

目标:学一个策略 π(a|s),最大化期望累计折扣回报 E[∑ γt rt]。

记
小结

① MDP 五元组 S/A/P/R/γ。② 马尔可夫=未来只看现在。③ 目标是最大化折扣累计奖励。

9.2 Q-Learning

Q-Learning · 给每个"状态-动作"打分

想核心思想

Q(s,a):在状态 s 做动作 a,往后最多能拿多少分。学完这个表,每次选 Q 最大的动作就行。

更新公式(贝尔曼方程):

Q(s,a) ← Q(s,a) + α [r + γ · maxa' Q(s',a') − Q(s,a)]

括号里的项叫 TD 误差:实际拿到的 r + 下一步最优 Q − 旧估计 Q。α 是学习率,γ 是折扣。

问题:状态空间一大,Q 表存不下(棋盘 1000 格就 1000×动作数,雅达利游戏画面直接爆炸)。于是有了 DQN——用神经网络逼近 Q 函数。

例:走迷宫一次更新
在状态 s 走到出口 s',拿到 r=+10。旧 Q(s,a)=3,max Q(s',·)=2,α=0.1,γ=0.9。
解:新 Q = 3 + 0.1×[10 + 0.9×2 − 3] = 3 + 0.1×8.8 = 3.88。这次拿到大奖,把"在 s 走 a"的价值往上调。反复试错,Q 表收敛到最优。
记
小结

① Q(s,a) 是动作价值。② 贝尔曼更新:旧 Q + 学习率×TD误差。③ 状态多了用神经网络逼近(DQN)。

9.3 策略梯度与 DQN、PPO

Policy Gradient / DQN / PPO · 从学 Q 到学策略

想从值函数到策略

策略梯度:不学 Q 表,直接学策略网络 πθ(a|s)(给定状态,输出动作概率)。梯度:

∇θ J(θ) = E[ ∇θ log πθ(a|s) · A(s,a) ]

A 是优势函数(这个动作比平均好多少)。直觉:好动作概率调大,坏动作概率调小。

DQN:用 DeepMind 的 DQN(2015),DQN = Q-Learning + 神经网络 + 经验回放 + 目标网络。首次让 AI 玩雅达利游戏超过人类。

PPO(Proximal Policy Optimization):OpenAI 2017 提出,RLHF 的默认算法。核心是"每次别改策略太多",用 clip 限制新旧策略比率:

L(θ) = E[ min( rt(θ)·At,   clip(rt(θ), 1−ε, 1+ε)·At ) ]

rt(θ) = πnew/πold 是新旧策略动作概率比。ε 通常 0.2。简单、稳定、效果好,这就是它统治 RLHF 的原因。

记
小结

① Q-Learning 学值,策略梯度学策略。② DQN=深度Q网络。③ PPO=clip 约束步幅,RLHF 标配。

9.4 RLHF 全流程

RLHF · 让大模型学会"做人"

想三步对齐

第一步:SFT。用人工标注的问答对微调。

第二步:训奖励模型(RM)。让 SFT 模型对同一问题生成多个回答,人排序。训练一个 RM 给回答打分,越符合人偏好分越高。

第三步:PPO 强化学习。把 LLM 当策略网络,RM 当奖励,用 PPO 优化让 LLM 输出 RM 高分的回答。同时加一个 KL 惩罚项,防止模型跑偏(离 SFT 太远)。

DPO 替代:如上所述,跳过 RM 和 PPO,直接用偏好对优化。简单稳定,2024 年后成为主流。

记
小结

① SFT → RM → PPO 三步对齐。② KL 惩罚防跑偏。③ DPO 是简化版,现在更流行。

费曼学习法:讲给别人听

① 用自己的话解释:用"训练小狗"的比喻讲清奖励信号怎么让模型学会行为。

② 举个反例 / 生活例子:反例——为什么 RLHF 要加 KL 惩罚项?不加会发生什么?

③ 哪里还说不清:DPO 相比 PPO 省掉了哪两步,为什么现在更流行?