强化学习第1章:问题设定、价值函数与 Q-Learning
本章只建立强化学习的最小框架:什么问题属于序列决策,状态、动作和奖励怎样构成 MDP,价值函数为什么能把长期目标写成递归关系,以及 Q-Learning 如何从交互数据中更新动作价值。算法谱系和现代后训练方法分别放到第 2、3 章。
强化学习首先是一个决策问题
Section titled “强化学习首先是一个决策问题”强化学习处理的不是“输入对应什么标签”,而是“连续决策会怎样改变后续状态和长期收益”。智能体根据当前状态选择动作,环境返回新的状态和奖励;训练目标不是逐样本拟合标准答案,而是找到能够提高期望累积回报的策略。
这一区别也限定了它的适用范围。分类、回归,或者已有高质量标签的问题,监督学习通常更直接。只有当动作会改变后续可见信息、奖励延迟出现,或者目标更适合用偏好与效用来表达时,强化学习的建模方式才真正有价值。
本章从 MDP、价值函数和 Q-Learning 建立基本框架,再用 LLM 对齐与分子设计说明“状态—动作—奖励”怎样落到实际问题。
强化学习 vs 监督学习 vs 无监督学习
Section titled “强化学习 vs 监督学习 vs 无监督学习”| 维度 | 监督学习 | 无监督学习 | 强化学习 |
|---|---|---|---|
| 训练数据 | (输入, 正确答案) 对 | 只有输入数据 | (状态, 动作, 奖励) 序列 |
| 学习目标 | 拟合输入到输出的映射 | 发现数据内在结构 | 最大化累积奖励 |
| 反馈方式 | 每个样本都有明确标签 | 无反馈 | 延迟的、稀疏的奖励信号 |
| 典型应用 | 图像分类、语音识别 | 聚类、降维 | 游戏 AI、机器人控制、LLM 对齐 |
| 核心挑战 | 标注成本高 | 评估困难 | 探索-利用权衡、信用分配 |
为什么开放式生成不能只靠固定参考答案?
Section titled “为什么开放式生成不能只靠固定参考答案?”开放式生成往往不存在唯一的“标准答案”。同一个问题可以有多种合理回答,而帮助性、风格、安全性等目标也很难完全写成逐 token 的监督标签。因此,单纯扩大参考答案集合并不能覆盖所有期望行为。
一种做法是把人类比较或其他偏好信号转成可优化的目标。RLHF 是其中一条路线:先从偏好数据中得到奖励信号,再优化模型策略。实践中也常见 SFT、DPO 等其他方法;因此更准确的理解是,强化学习属于“如何利用反馈调整行为”的工具之一,而不是现代语言模型训练的唯一后训练方式。
MDP:强化学习的数学框架
Section titled “MDP:强化学习的数学框架”强化学习用马尔可夫决策过程(Markov Decision Process, MDP)形式化问题。想象一个走迷宫的机器人:
graph LR A[Agent<br/>智能体] -->|Action 动作| B[Environment<br/>环境] B -->|State 状态| A B -->|Reward 奖励| A style A fill:#e1f5ff style B fill:#fff4e6
五大核心要素
Section titled “五大核心要素”1. Agent(智能体)
Section titled “1. Agent(智能体)”决策者,例如:
- 迷宫中的机器人
- 下棋的 AI 程序
- 需要优化的语言模型策略
2. Environment(环境)
Section titled “2. Environment(环境)”智能体之外的一切:
- 迷宫的墙壁、通道和宝藏位置
- 棋盘和对手
- 提示、采样过程,以及用于计算反馈的奖励模型或规则
3. State(状态)
Section titled “3. State(状态)”当前局面的完整描述:
- 机器人在迷宫的坐标
- 棋盘上所有棋子的位置
- 提示与当前已经生成的 token 前缀
4. Action(动作)
Section titled “4. Action(动作)”智能体能做的选择:
- 向上/下/左/右移动
- 落子到某个位置
- 选择下一个 token;有些方法也把整段响应视为一次动作
5. Reward(奖励)
Section titled “5. Reward(奖励)”环境给的反馈分数:
- 撞墙 分,找到宝藏 分
- 吃掉对方棋子 分,被将军 分
- 奖励模型或可验证规则对整段响应给出反馈分数
MDP 的数学定义
Section titled “MDP 的数学定义”- :状态空间(所有可能的状态集合)
- :动作空间(所有可能的动作集合)
- :转移概率(执行动作 后,从状态 到 的概率)
- :奖励函数
- :折扣因子(未来奖励的”贬值率”)
关键洞察:马尔可夫性质
当前状态 包含了做决策所需的全部信息,不需要知道历史路径。就像走迷宫时,只需知道”现在在哪”,不需要记住”是怎么走到这里的”。
策略、价值函数与 Bellman 方程
Section titled “策略、价值函数与 Bellman 方程”策略(Policy)
Section titled “策略(Policy)π\piπ”智能体的”行动手册”,告诉它在每个状态该做什么:
- 确定性策略:(每次都选同一个动作)
- 随机性策略:(按概率分布选择)
价值函数(Value Function)
Section titled “价值函数(Value Function)V(s)V(s)V(s)”“这个状态有多好”的度量:
直觉理解:从状态 开始,按策略 行动,未来能获得的总奖励的期望值。
Q 函数(动作价值函数)
Section titled “Q 函数(动作价值函数)”“在状态 做动作 有多好”:
Bellman 方程:递归的魔法
Section titled “Bellman 方程:递归的魔法”价值函数满足递归关系:
直觉理解:当前状态的价值 = 立即奖励 + 下一个状态价值的折扣。
就像房价评估:这套房的价值 = 今年租金收入 + 明年卖出时的预期价格(打折)。
强化学习的核心挑战:探索与利用权衡
Section titled “强化学习的核心挑战:探索与利用权衡”多臂老虎机问题
Section titled “多臂老虎机问题”想象你在赌场,面前有 10 台老虎机(slot machines),每台的中奖概率未知。你只有 100 次拉杆机会,如何获得最大收益?
-
纯利用(Exploitation):一直拉当前看起来最好的那台
风险:可能只是运气好,错过更优选择 -
纯探索(Exploration):均匀尝试所有老虎机
风险:浪费机会在明显差的机器上
最优策略:在探索和利用之间找平衡。
ε-贪婪策略(Epsilon-Greedy)
Section titled “ε-贪婪策略(Epsilon-Greedy)”最简单的平衡方法:
- :纯探索(初期)
- :主要利用,偶尔探索(后期)
衰减策略:
其他探索策略
Section titled “其他探索策略”Upper Confidence Bound (UCB)
- :已知价值(利用)
- :不确定性奖励(探索不常选的动作)
Softmax(玻尔兹曼探索)
温度参数 控制随机性:
- :接近贪婪
- :接近随机
实际应用中的探索策略
Section titled “实际应用中的探索策略”| 领域 | 策略 | 原因 |
|---|---|---|
| 游戏 AI | ε-贪婪 + 内在奖励(好奇心) | 需要发现隐藏关卡和技巧 |
| 机器人 | 基于模型的探索(主动学习) | 真实试错成本高,需要高效探索 |
| 推荐系统 | Contextual Bandit + Thompson Sampling | 平衡推荐准确率与内容多样性 |
| LLM 训练 | 温度采样 + Top-k 过滤 | 在生成多样性与质量间权衡 |
信用分配问题(Credit Assignment)
Section titled “信用分配问题(Credit Assignment)”假设你下国际象棋,在第 10 步走了一招妙手,但到第 50 步才赢棋。如何让 AI 知道第 10 步的价值?
问题:延迟奖励——只有游戏结束才知道输赢,但需要评估每一步的好坏。
解决方案:
- 时序差分学习(TD Learning):每步都用 Bellman 方程更新价值估计,逐步传播终局奖励
- 资格迹(Eligibility Traces):记住最近走过的状态,获得奖励时回溯更新
- 优势函数(Advantage):,衡量动作比平均水平好多少
直觉类比:
你考试得了 95 分(奖励),但不知道是因为:
- 考前一周刷题(短期因素)
- 过去半年的积累(长期因素)
TD Learning 就像定期小测,让你在学期中就知道哪些章节掌握不好,而不是等到期末才知道。
LLM 后训练中,RL 是一种选择
Section titled “LLM 后训练中,RL 是一种选择”预训练和监督微调解决的是“从数据中学习分布”和“从示范中学习期望行为”。强化学习只在后训练的一部分场景中出现:模型先产生候选输出,再根据奖励模型、规则验证器或其他可优化反馈更新策略。
历史上,InstructGPT 使用了“监督微调 → 人类偏好排序 → 奖励模型 → PPO”的 RLHF 流程。这条路线说明偏好可以转成策略优化目标,但它不是现代 LLM 后训练的唯一结构。直接偏好优化(如 DPO)不需要显式 PPO 环;有些任务只做 SFT 也足够。更完整的比较放在第 3 章。
若把自回归语言模型写成策略,状态更准确地说是“提示词与已经生成的前缀”,动作通常对应下一个 token(工程实现也常按整段序列计算优势和损失),奖励则可能在完整回复或中间步骤上给出。关键不是名称,而是训练过程中是否真的存在基于反馈的策略优化。
生物设计中何时值得使用 RL
Section titled “生物设计中何时值得使用 RL”生物设计问题并不会因为搜索空间大、多目标或需要迭代生成就自动变成强化学习。判断标准仍然是:是否存在序列决策过程,策略是否通过与环境或评分器交互产生数据,以及后续更新是否在优化期望累积回报或等价的策略目标。
一个明确的 RL 例子是分子生成。Olivecrona 等人在 2017 年用强化学习调整序列生成模型,使生成分子朝指定性质移动,包括针对 DRD2 活性的优化(J. Cheminformatics 2017)。这类任务可以把逐步生成分子表示为动作序列,并把活性、可合成性或其他评分组合成反馈。
相反,RFdiffusion 不是强化学习。它是对蛋白骨架进行去噪生成的扩散模型,通过条件信息约束生成轨迹;逐步去噪和条件引导本身不等于奖励驱动的策略优化。RFdiffusion 的机制应放在扩散模型系列中理解。
因此,在生物问题中考虑 RL 时,先问四件事:动作是否会改变后续状态;奖励是否能稳定计算;是否真的需要多步信用分配;与监督学习、贝叶斯优化、主动学习或生成模型相比,RL 是否提供了额外价值。缺少其中几项时,先用更简单的方法通常更合理。
一个最小例子:Q-Learning 走迷宫
Section titled “一个最小例子:Q-Learning 走迷宫”下面用一个离散迷宫展示 Q-Learning 的最小训练循环。算法细节和 SARSA、DQN、PPO 的关系放在第 2 章。
环境:4×4 迷宫
Section titled “环境:4×4 迷宫”S . . .. W W .. . X .. . . GS:起点 (0,0)G:目标 (3,3),奖励 +10X:陷阱 (2,2),奖励 -10W:墙壁(不可通过).:空地,每步 -0.04(生存惩罚,鼓励快速到达目标)
Q-Learning 算法核心
Section titled “Q-Learning 算法核心”Q-Learning 维护一张 Q 表,记录每个 (状态, 动作) 对的价值。更新公式:
- :学习率(如 0.1)
- :折扣因子(如 0.95)
- :立即奖励
- :下一个状态的最大 Q 值
完整代码实现
Section titled “完整代码实现”import numpy as npimport random
# 环境定义GRID_SIZE = 4START = (0, 0)GOAL = (3, 3)TRAP = (2, 2)WALLS = [(1, 1), (1, 2)]ACTIONS = [(0, 1), (0, -1), (1, 0), (-1, 0)] # 右、左、下、上
# Q 表:Q[x][y][action_idx]Q = np.zeros((GRID_SIZE, GRID_SIZE, 4))
# 超参数alpha = 0.1 # 学习率gamma = 0.95 # 折扣因子epsilon = 1.0 # 初始探索率epsilon_decay = 0.995epsilon_min = 0.01
def get_reward(state): if state == GOAL: return 10 if state == TRAP: return -10 return -0.04 # 生存惩罚
def is_valid(state): x, y = state if not (0 <= x < GRID_SIZE and 0 <= y < GRID_SIZE): return False if state in WALLS: return False return True
def choose_action(state, epsilon): """ε-贪婪策略""" if random.random() < epsilon: return random.randint(0, 3) # 探索 else: return np.argmax(Q[state]) # 利用
# Q-Learning 训练episodes = 1000for episode in range(episodes): state = START steps = 0
while state != GOAL and state != TRAP and steps < 100: # 选择动作 action_idx = choose_action(state, epsilon) action = ACTIONS[action_idx]
# 执行动作 next_state = (state[0] + action[0], state[1] + action[1])
if not is_valid(next_state): next_state = state # 撞墙,停在原地
reward = get_reward(next_state)
# Q-Learning 更新 best_next_q = np.max(Q[next_state]) Q[state][action_idx] += alpha * ( reward + gamma * best_next_q - Q[state][action_idx] )
state = next_state steps += 1
# 探索率衰减 epsilon = max(epsilon_min, epsilon * epsilon_decay)
# 每 100 轮打印进度 if (episode + 1) % 100 == 0: print(f"Episode {episode + 1}: epsilon = {epsilon:.3f}")
# 测试学到的策略print("\n学到的最优路径:")state = STARTpath = [state]for _ in range(20): action_idx = np.argmax(Q[state]) action = ACTIONS[action_idx] state = (state[0] + action[0], state[1] + action[1])
if not is_valid(state): break
path.append(state) if state == GOAL or state == TRAP: break
for step, pos in enumerate(path): print(f"Step {step}: {pos}")print(f"到达目标用了 {len(path) - 1} 步")
# 可视化 Q 表(起点的 Q 值)print(f"\nQ 表(起点): {Q[START]}")print("动作价值:右={:.2f}, 左={:.2f}, 下={:.2f}, 上={:.2f}".format(*Q[START]))运行结果解读
Section titled “运行结果解读”Episode 100: epsilon = 0.606Episode 200: epsilon = 0.367...Episode 1000: epsilon = 0.010
学到的最优路径:Step 0: (0, 0)Step 1: (0, 1)Step 2: (0, 2)Step 3: (0, 3)Step 4: (1, 3)Step 5: (2, 3)Step 6: (3, 3)到达目标用了 6 步
Q 表(起点): [8.53, -0.04, 7.21, -0.04]动作价值:右=8.53, 左=-0.04, 下=7.21, 上=-0.04关键理解点:
- Q 表:记录每个 (状态, 动作) 对的长期价值
- ε-贪婪:开始时大量随机探索(ε=1.0),逐渐转向利用已知最优动作(ε→0.01)
- 价值传播:目标的 +10 奖励逐步向起点传播,形成价值梯度场
- 最优策略:训练后,智能体学会避开墙壁和陷阱,找到最短路径
进一步阅读与实现
Section titled “进一步阅读与实现”- Reinforcement Learning: An Introduction (2nd Edition)
作者:Richard S. Sutton & Andrew G. Barto
免费在线阅读
RL 领域的”圣经”,从 MDP 基础到深度 RL,系统完整。第 2 版增加了 AlphaGo、深度 Q 网络等现代内容。
-
Gymnasium
官方文档
标准 RL 环境库,包含 CartPole、Atari 游戏、机器人控制等经典环境。学习 RL 算法的必备工具。 -
Stable-Baselines3
GitHub 仓库
生产级 RL 算法实现(DQN、PPO、SAC 等),代码质量高,适合快速实验和学习算法细节。 -
Hugging Face TRL
文档
专门用于 LLM 的 RLHF 训练,提供 SFTTrainer、RewardTrainer、PPOTrainer 等高层 API,是实践 ChatGPT 式训练的最佳起点。
以下是本章引用的核心文献和工具资源,按主题分类:
[1] Reinforcement Learning: An Introduction (2nd Edition)
Richard S. Sutton and Andrew G. Barto
在线阅读 · Free online textbook
强化学习领域的经典教材,系统讲解 MDP、动态规划、蒙特卡洛方法、时序差分学习等核心算法。第2版(2018年更新)增加了深度强化学习内容。本书从基础概念出发,逐步深入到策略梯度、Actor-Critic 等现代方法,是理解 RL 数学基础的权威资源。
LLM 与 RLHF
Section titled “LLM 与 RLHF”[2] Training language models to follow instructions with human feedback
Long Ouyang et al. (OpenAI)
论文链接 · arXiv:2203.02155
OpenAI InstructGPT 论文,首次系统阐述 RLHF(人类反馈强化学习)方法。论文提出三阶段训练流程:监督微调(SFT)建立基线,训练奖励模型(RM)捕捉人类偏好,用 PPO 算法优化策略。实验证明 RLHF 模型在真实性、有用性和无害性上显著优于纯监督学习模型,且只需 1.3B 参数即可超越 175B 的 GPT-3。这是 ChatGPT 训练方法的理论基础。
[3] Constitutional AI: Harmlessness from AI Feedback
Yuntao Bai et al. (Anthropic)
论文链接 · arXiv:2212.08073
Anthropic 提出的 Constitutional AI 方法,用 AI 反馈替代人类标注来训练安全对齐的语言模型。核心思想是用一组明确的原则(宪法)指导模型自我批评和修正。方法分两阶段:SL-CAI(监督学习阶段让模型根据原则自我修正)和 RL-CAI(用 AI 标注的偏好数据训练奖励模型)。相比 RLHF,CAI 降低了人工标注成本,且让价值观约束变得可审计。
生物计算应用
Section titled “生物计算应用”[4] De novo design of protein structure and function with RFdiffusion
Joseph L. Watson et al.
Nature 论文 · Nature 2023
RFdiffusion 将扩散模型应用于蛋白质结构生成,通过在 RoseTTAFold 结构预测网络上微调去噪任务,实现了全新蛋白质骨架的生成式设计。论文展示了多种设计任务:无条件单体生成、拓扑约束设计、对称低聚物、酶活性位点脚手架等。设计的蛋白质在湿实验中成功验证,展示了 RL 思想(迭代优化)在生物计算中的突破性应用。
[5] Molecular de-novo design through deep reinforcement learning
Marcus Olivecrona et al.
论文链接 · Journal of Cheminformatics 2017
REINVENT 算法将强化学习应用于药物分子生成。方法先在 ChEMBL 数据集上预训练 SMILES-RNN,再通过增强型回合似然函数微调,防止模式崩溃。核心创新是将先验对数似然与奖励函数结合,使智能体在探索新分子的同时保持在类药物分布内。实验中,模型在 DRD2 受体活性优化任务中将成功率从 3% 提升至 97%。
实战工具与框架
Section titled “实战工具与框架”[6] Gymnasium: A Standard API for Reinforcement Learning
Farama Foundation
官方文档 · MIT License
Gymnasium 是 OpenAI Gym 的官方升级版,提供标准化的 RL 环境接口。包含经典控制(CartPole、MountainCar)、Atari 游戏、机器人控制(MuJoCo)等多种环境。文档详细讲解了环境 API(reset、step、render)、观察空间和动作空间的定义、以及如何自定义环境。是 RL 实战的必备工具库。
[7] Stable-Baselines3: Reliable RL Implementations
DLR-RM
文档 · MIT License
生产级强化学习算法库,基于 PyTorch 实现了 DQN、PPO、A2C、SAC、TD3 等主流算法。代码质量高、文档完善、易于使用,适合快速原型开发和实验。提供统一的训练接口、自动日志记录(TensorBoard)、模型保存/加载等实用功能。是学习 RL 算法实现细节的优秀参考。
[8] TRL (Transformer Reinforcement Learning)
Hugging Face
文档 · Apache 2.0
Hugging Face 开发的专门用于语言模型 RLHF 训练的工具库。提供 SFTTrainer(监督微调)、RewardTrainer(奖励模型训练)、PPOTrainer(PPO 优化)等高层 API,简化了 RLHF 流程。支持 LoRA、8-bit 量化等显存优化技术,能在消费级 GPU 上微调大模型。是实践 ChatGPT 式 RLHF 的最佳起点。
[9] UCL Course on RL by David Silver
David Silver (DeepMind)
课程主页 · Educational resource
DeepMind 首席研究员 David Silver 在 UCL 的强化学习课程,YouTube 上有完整视频。课程从 MDP 基础讲到深度 RL,覆盖价值函数近似、策略梯度、Actor-Critic、AlphaGo 等前沿主题。Silver 是 AlphaGo 的核心开发者,课程深入浅出,理论与实践结合,是入门 RL 的最佳视频教程之一。
主题色
字体
字号
视觉效果
即将离开本站
你将前往外部网站:
该网站与本站无关,本站不对其内容、安全性或可用性负责。确定后将在新标签页打开。