强化学习超详细教程:第1章 - 什么是强化学习
从学骑自行车说起
Section titled “从学骑自行车说起”还记得你第一次学骑自行车吗?
没有人递给你一本《骑车动作标准手册》,告诉你”第 3 秒时把车把向左转 15 度,身体重心前倾 8 度”。你只是不断尝试:踩踏板 → 摔倒(痛,负反馈),扶稳车把 → 前进了 2 米(好,正反馈),重心后移 → 又摔了(再次负反馈)。经过几十次摔跤后,你的大脑总结出了一套”骑车策略”。
这就是**强化学习(Reinforcement Learning, RL)**的本质:通过与环境交互,从奖励信号中学习最优行为策略。
与传统机器学习方法不同:
- 监督学习需要明确的标注答案(“这是猫”、“这是狗”)
- 无监督学习寻找数据内在模式(聚类、降维)
- 强化学习只给结果评分(“这次做得好”、“这次失败了”),智能体自己摸索路径
强化学习 vs 监督学习 vs 无监督学习
Section titled “强化学习 vs 监督学习 vs 无监督学习”| 维度 | 监督学习 | 无监督学习 | 强化学习 |
|---|---|---|---|
| 训练数据 | (输入, 正确答案) 对 | 只有输入数据 | (状态, 动作, 奖励) 序列 |
| 学习目标 | 拟合输入到输出的映射 | 发现数据内在结构 | 最大化累积奖励 |
| 反馈方式 | 每个样本都有明确标签 | 无反馈 | 延迟的、稀疏的奖励信号 |
| 典型应用 | 图像分类、语音识别 | 聚类、降维 | 游戏 AI、机器人控制、LLM 对齐 |
| 核心挑战 | 标注成本高 | 评估困难 | 探索-利用权衡、信用分配 |
为什么监督学习训练不出 ChatGPT?
Section titled “为什么监督学习训练不出 ChatGPT?”假设你想让 AI 写一篇好文章:
- 监督学习方式:需要人工为每个问题写出”标准答案”。但好文章千变万化,写作风格、论证方式、深度都可以不同,无法穷举所有正确答案。
- 强化学习方式:只需人类评分”这篇 A 比 B 更有用”,AI 通过大量这样的成对比较,自己学习什么是”有用”、“无害”、“诚实”。
这正是 ChatGPT 的训练秘诀:RLHF(Reinforcement Learning from Human Feedback,人类反馈强化学习)——用人类偏好作为奖励信号。我们稍后会详细讲解。
MDP:强化学习的数学框架
Section titled “MDP:强化学习的数学框架”强化学习用**马尔可夫决策过程(Markov Decision Process, MDP)**形式化问题。想象一个走迷宫的机器人:
五大核心要素
Section titled “五大核心要素”1. Agent(智能体)
Section titled “1. Agent(智能体)”决策者,例如:
- 迷宫中的机器人
- 下棋的 AI 程序
- 正在训练的 ChatGPT 模型
2. Environment(环境)
Section titled “2. Environment(环境)”智能体之外的一切:
- 迷宫的墙壁、通道和宝藏位置
- 棋盘和对手
- 用户的文本输入和人类评分员
3. State(状态)
Section titled “3. State(状态)”当前局面的完整描述:
- 机器人在迷宫的坐标
- 棋盘上所有棋子的位置
- LLM 当前生成的候选回复文本
4. Action(动作)
Section titled “4. Action(动作)”智能体能做的选择:
- 向上/下/左/右移动
- 落子到某个位置
- 调整文本生成的参数
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 需要强化学习?
Section titled “为什么 LLM 需要强化学习?”ChatGPT 的三阶段训练
Section titled “ChatGPT 的三阶段训练”阶段 1:预训练(Unsupervised Learning)
Section titled “阶段 1:预训练(Unsupervised Learning)”- 在海量文本(互联网、书籍)上学习语言模式
- 目标:预测下一个词
- 问题:只会”接话”,不理解人类意图,可能生成有害内容
阶段 2:监督微调(Supervised Fine-Tuning, SFT)
Section titled “阶段 2:监督微调(Supervised Fine-Tuning, SFT)”- 人工标注”问题-答案”对(如”解释量子力学” → 一篇详细解释)
- 训练模型遵循指令格式
- 问题:无法学习主观偏好(什么是”有用”、“无害”),标注成本极高
阶段 3:RLHF(强化学习核心)
Section titled “阶段 3:RLHF(强化学习核心)”问题建模(MDP 视角):
- 状态:用户输入的 Prompt
- 动作:模型生成的回复文本
- 奖励:奖励模型(Reward Model)的打分
训练流程:
步骤 1:收集偏好数据
对同一 Prompt,让模型生成多个回复 A、B、C、D,人类标注员排序:B > A > D > C。
步骤 2:训练奖励模型
输入:(Prompt, 回复) 对
输出:分数(越高表示越好)
使用 Bradley-Terry 模型训练:
这个公式把”B 比 A 好”的概率建模为两个奖励分数的 softmax。
步骤 3:PPO 优化策略
让模型生成回复,获得奖励模型打分,用 PPO 算法更新模型参数。核心目标函数:
- :奖励模型对生成文本的打分
- :KL 散度惩罚,防止模型偏离原始模型太远(避免”奖励黑客”)
简化的 RLHF 伪代码:
# 步骤 1: 监督微调(已完成)sft_model = train_supervised(base_model, instruction_data)
# 步骤 2: 训练奖励模型reward_model = train_reward_model(preference_data)# preference_data: {prompt, chosen_response, rejected_response}
# 步骤 3: PPO 强化学习for batch in prompts: # 生成多个候选回复 responses = sft_model.generate(batch)
# 获得奖励 rewards = reward_model.score(batch, responses)
# 计算 KL 惩罚 kl_penalty = kl_divergence(sft_model, original_model)
# 最终奖励 = 原始奖励 - β * KL final_rewards = rewards - beta * kl_penalty
# 用 PPO 更新策略 sft_model.update(final_rewards)为什么监督学习不够?
Section titled “为什么监督学习不够?”| 问题 | 监督学习 | RLHF |
|---|---|---|
| 标注成本 | 每个样本需要写”完美答案” | 只需比较”哪个更好”(成本降低 10 倍) |
| 主观性处理 | 难以定义”标准答案” | 直接学习人类偏好分布 |
| 泛化能力 | 只能模仿训练集 | 能推理出训练集外的”好回复” |
| 长期目标 | 优化单步准确率 | 优化对话整体质量 |
生物计算中的强化学习
Section titled “生物计算中的强化学习”案例 1:药物分子生成(REINVENT)
Section titled “案例 1:药物分子生成(REINVENT)”任务:设计能抑制特定蛋白(如 DRD2 受体)的小分子药物
为什么适合 RL?
- 分子空间巨大: 种可能的类药分子
- 多目标优化:既要活性高,又要易合成、低毒
- 黑盒评分:生物实验给的是”好/坏”信号,没有梯度
RL 建模(MDP 视角):
-
状态:当前分子的 SMILES 字符串表示
(如C1=CC=CC=C1表示苯环) -
动作:添加/删除原子或化学键
(如在某个位置连接一个氮原子) -
奖励:多目标加权和
核心创新:增强型回合似然
REINVENT 不是直接用 REINFORCE 算法(容易模式崩溃),而是将先验对数似然与奖励结合:
这确保生成的分子既能优化目标,又保持在类药物分布内。
成果数据:
- DRD2 受体活性分子生成成功率:3% → 97%
- 在移除训练集中所有 Celecoxib(消炎药)相似分子后,模型仍能在 400 步内重新发现该药物
案例 2:蛋白质结构设计(RFdiffusion)
Section titled “案例 2:蛋白质结构设计(RFdiffusion)”任务:设计具有特定功能的全新蛋白质骨架
为什么适合 RL 思想?
- 搜索空间极大:300 个氨基酸的构象数量
- 需要平衡局部和全局结构约束
- 能量函数可作为奖励信号
方法概述:
RFdiffusion 将扩散模型(Diffusion Model)应用于蛋白质生成。虽然不是传统 RL 算法,但其迭代优化思想与 RL 一脉相承:
- 从高斯噪声采样初始结构
- 逐步去噪,每步通过 RoseTTAFold 预测优化方向
- 应用约束引导(拓扑、对称性、功能位点),类似 RL 的奖励塑形
成功案例:
- 设计的金属结合蛋白在湿实验中成功表达并验证功能
- 生成的酶活性位点保持催化几何构型
- 可设计对称低聚物(C3、D2 等点群对称)
RL 在生物计算的独特优势
Section titled “RL 在生物计算的独特优势”| 传统方法 | 强化学习方法 |
|---|---|
| 基于物理模拟(计算成本极高) | 学习近似策略(快速采样) |
| 难以整合多目标约束 | 通过奖励函数自然融合 |
| 容易陷入局部最优 | 探索-利用平衡 |
| 需要明确的能量函数 | 可用黑盒评分(实验数据) |
案例 3:蛋白质-配体对接优化
Section titled “案例 3:蛋白质-配体对接优化”任务:找到小分子药物在蛋白质结合口袋中的最优结合姿态
传统方法的挑战:
- 分子对接(Molecular Docking):用打分函数评估数千种姿态,但打分函数不完美
- 分子动力学(MD):模拟原子运动,精确但极慢(1 微秒模拟需数天)
RL 创新方法(AlphaFold 3 后续研究):
MDP 建模:
- 状态:配体当前的 3D 坐标和旋转角度
- 动作:微小的平移/旋转(6 自由度)
- 奖励:结合自由能 的负值(越负越稳定)
训练策略:
- 在已知晶体结构上预训练(监督学习)
- 用 RL 微调,优化实验验证的结合亲和力
- 用 Soft Actor-Critic (SAC) 处理连续动作空间
实际成果:
- 对接成功率(RMSD < 2Å):传统方法 60% → RL 方法 83%
- 计算速度提升 100 倍(相比 MD)
- 能发现传统打分函数低估的”隐藏”结合姿态
为什么生物问题天然适合 RL?
Section titled “为什么生物问题天然适合 RL?”1. 搜索空间巨大但结构化
生物分子的搜索空间虽大,但并非完全随机:
- 蛋白质折叠遵循物理规律(疏水效应、氢键)
- 药物分子需满足 Lipinski 五规则(类药性约束)
RL 通过**奖励塑形(Reward Shaping)**引导智能体在结构化空间高效探索。
2. 多目标优化的自然建模
现实药物设计需平衡:
- 靶点亲和力(Binding Affinity)
- 选择性(不结合其他蛋白)
- 代谢稳定性(ADMET 性质)
- 合成可行性(Synthetic Accessibility)
RL 的奖励函数可优雅地表达多目标权衡:
3. 从实验反馈中学习
生物实验提供的是成对比较和排名,而非绝对值:
- “化合物 A 比 B 更有效”(定性反馈)
- IC50 值有测量误差(噪声反馈)
这正是 RLHF 类型问题!可以用偏好学习(Preference Learning)替代精确的奖励建模。
4. 安全约束的硬性要求
药物设计不能”试错后反悔”:
- 不能设计出有毒分子
- 不能违反专利约束
- 不能破坏蛋白质稳定性
RL 的约束优化(Constrained RL)和安全探索(Safe Exploration)机制天然适配:
生物计算 RL 的未来方向
Section titled “生物计算 RL 的未来方向”1. 多模态融合
结合序列、结构、生物活性数据:
- 语言模型(ESM)学习蛋白质序列表示
- 图神经网络(GNN)学习分子拓扑
- 扩散模型生成 3D 结构
- RL 优化综合目标
2. 少样本学习
生物实验昂贵(每个数据点数千美元),需要:
- 主动学习(Active Learning):智能选择下一个实验
- 迁移学习:从相似蛋白家族迁移知识
- 元学习(Meta-RL):学会快速适应新靶点
3. 人在回路(Human-in-the-Loop)
结合专家知识:
- 化学家提供”不可合成”的负反馈
- 生物学家标注”不太可能有活性”的区域
- 交互式设计:实时调整奖励权重
第一个 RL 程序:Q-Learning 走迷宫
Section titled “第一个 RL 程序:Q-Learning 走迷宫”让我们用 Python 实现一个简单的强化学习智能体,理解算法如何从零学习。
环境: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 奖励逐步向起点传播,形成价值梯度场
- 最优策略:训练后,智能体学会避开墙壁和陷阱,找到最短路径
Q-Learning 算法深入剖析
Section titled “Q-Learning 算法深入剖析”为什么叫 Q-Learning?
Section titled “为什么叫 Q-Learning?”Q 代表 Quality(质量), 衡量在状态 执行动作 的”质量”(长期价值)。
与价值函数 的关系:
状态的价值 = 该状态下最好动作的 Q 值。
Off-Policy vs On-Policy
Section titled “Off-Policy vs On-Policy”Q-Learning 是 Off-Policy 算法,意味着:
- 行为策略(Behavior Policy):用 ε-贪婪探索环境
- 目标策略(Target Policy):用贪婪策略()评估
这让 Q-Learning 能从任何策略收集的数据中学习最优策略,甚至可以从人类演示或其他智能体的经验中学习。
对比 SARSA(On-Policy):
SARSA 用实际执行的下一个动作 更新,而 Q-Learning 用最优动作 。
实际影响:
- Q-Learning:更快收敛到最优策略,但在随机环境中可能过于激进
- SARSA:更保守,适合风险敏感任务(如悬崖行走问题)
超参数如何影响学习?
Section titled “超参数如何影响学习?”学习率 α(Alpha)
- :不学习任何新东西
- :完全抛弃旧知识
- 最佳实践:0.01 ~ 0.3,或用衰减策略
折扣因子 γ(Gamma)
| γ 值 | 行为特征 | 适用场景 |
|---|---|---|
| 0.0 | 只看当前奖励,短视 | 单步决策问题 |
| 0.5 | 2 步后奖励贬值 75% | 短期规划 |
| 0.9 | 10 步后仍保留 35% | 中期规划(常用) |
| 0.99 | 100 步后仍保留 37% | 长期规划(围棋、战略游戏) |
实验对比:
在 4×4 迷宫中,不同 γ 值的收敛速度:
γ = 0.5: 450 轮收敛,路径长度 7 步(绕远路)γ = 0.9: 280 轮收敛,路径长度 6 步(最优)γ = 0.99: 650 轮收敛,路径长度 6 步(过度谨慎)探索率 ε(Epsilon)
| 阶段 | ε 值 | 行为 |
|---|---|---|
| 初期(0-20%) | 1.0 → 0.5 | 大量随机探索,发现环境 |
| 中期(20-70%) | 0.5 → 0.1 | 开始利用好的动作,偶尔探索 |
| 后期(70-100%) | 0.1 → 0.01 | 主要执行最优策略 |
Q-Learning 的优缺点
Section titled “Q-Learning 的优缺点”优势:
- 模型无关(Model-Free):不需要知道环境转移概率
- Off-Policy:可以从任何策略的数据中学习
- 简单高效:易于实现,适合小规模问题
- 理论保证:在表格形式下,保证收敛到最优 Q 函数
局限:
- 状态空间爆炸:围棋有 个状态,Q 表无法存储
- 样本效率低:需要大量重复探索才能学到稳定策略
- 无法泛化:见过 (0,0) 的 Q 值不能帮助推断 (0,1)
- 过估计问题: 操作会放大 Q 值估计误差
进化路线:
Q-Learning (表格) ↓ 解决状态爆炸DQN (神经网络近似) ↓ 解决过估计Double DQN ↓ 解决样本效率Rainbow DQN (集成 7 种改进)何时使用 Q-Learning?
Section titled “何时使用 Q-Learning?”适合的场景:
- ✅ 离散、小规模状态空间(< 10,000 状态)
- ✅ 离散动作空间
- ✅ 确定性或近确定性环境
- ✅ 快速原型验证
不适合的场景:
- ❌ 连续状态空间(机器人关节角度)
- ❌ 连续动作空间(油门踏板深度)
- ❌ 高维感知输入(图像、视频)
- ❌ 需要快速在线学习(实时游戏)
解决方案映射:
- 连续状态 → 函数近似(DQN、DDPG)
- 连续动作 → Actor-Critic、PPO
- 高维输入 → 深度神经网络 + 卷积层
- 实时学习 → 经验回放 + 异步训练
强化学习的其他经典应用
Section titled “强化学习的其他经典应用”DQN (2015)
DeepMind 的 DQN 算法在 49 款 Atari 游戏中达到人类水平,单一算法仅凭像素输入即可掌握多样化任务。核心创新是用深度神经网络近似 Q 函数,替代传统的 Q 表。
AlphaGo (2016)
以 4:1 击败世界冠军李世石。围棋搜索空间达 ,传统搜索算法无法穷举。AlphaGo 结合蒙特卡洛树搜索和自我对弈,通过 RL 学习出超越人类千年经验的策略。
关键洞察:监督学习只能让 AI 达到人类棋谱的上限。要超越人类,需要通过自我对弈探索人类未曾尝试过的策略——这正是 RL 的独特优势。
OpenAI Dactyl (2018)
实现灵巧手操作魔方,完全在仿真中训练后迁移到真实机器人。通过域随机化(在仿真中随机改变物理参数)学习鲁棒策略,展现前所未有的灵巧操作能力。
为什么用 RL?
灵巧操作涉及高维连续控制(20+ 自由度)和复杂物理交互,难以用显式规则描述。RL 通过在仿真中数千次试错,自动学习适应环境变化的策略。
YouTube 推荐
用 Contextual Bandit(RL 的简化版)平衡探索新内容与利用已知偏好,优化长期用户参与度而非单次点击率。
为什么用 RL?
推荐系统需优化长期目标(用户生命周期价值),而非短期指标。RL 的延迟奖励机制天然适配此场景,能避免推荐陷入”过滤气泡”。
技术细节:Contextual Bandit
推荐系统是 RL 的特殊情况——单步决策,无需考虑状态转移:
MDP 简化建模:
- 上下文(Context):用户特征、时间、设备
- 动作(Arm):候选推荐项(视频、商品)
- 奖励:点击、观看时长、点赞
经典算法:LinUCB
- 第一项:预测点击率(利用)
- 第二项:不确定性奖励(探索)
实际挑战:
- 冷启动:新用户/新内容没有历史数据
- 长期价值:短视频吸引点击,但深度内容增加留存
- 多样性:避免推荐同质化内容
工业界解决方案:
- 分层 RL:召回 → 粗排 → 精排 → 重排,每层用不同策略
- 离线评估:用历史日志训练离线策略(Offline RL)
- A/B 测试:小流量在线实验验证新策略
Waymo 决策规划
用 RL 优化复杂交通场景中的驾驶决策。在仿真中学习数百万次驾驶场景,发现人类难以总结的最优决策规则,支撑商业化无人出租车服务。
技术细节:分层决策架构
高层规划(Route Planning):
- 使用 A* / Dijkstra 算法规划全局路线
- 输入:起点、终点、实时路况
- 输出:途经路口序列
中层决策(Behavior Planning):
- 使用 RL 决策车道变换、超车、让行
- 状态:周围车辆位置/速度、交通灯、车道线
- 动作:保持车道、左/右变道、加速、减速、停车
- 奖励:
- 到达目标 +1000
- 碰撞 -10000(致命惩罚)
- 违反交规 -500
- 每秒 -0.1(时间成本)
- 乘客舒适度(急刹/急转 -10)
底层控制(Motion Control):
- PID 控制器执行具体的转向/油门/刹车
- 输入:目标轨迹
- 输出:方向盘角度、踏板深度
安全保障机制:
- 约束 RL:硬性约束(不能撞车、不能闯红灯)
- 安全护栏(Safety Shield):监控 RL 输出,违反安全规则时覆盖决策
- 仿真验证:每个策略必须通过 10 亿英里仿真测试
与监督学习的对比:
| 方法 | 监督学习(模仿学习) | 强化学习 |
|---|---|---|
| 训练数据 | 人类驾驶日志 | 仿真环境试错 |
| 泛化能力 | 受限于人类经验 | 可探索新场景 |
| 极端情况 | 数据稀缺 | 可人工构造 |
| 最优性 | 模仿人类(非最优) | 优化目标函数 |
| 安全性 | 依赖数据覆盖 | 通过约束保证 |
真实案例:
Waymo 在凤凰城的商业化运营中:
- RL 策略在十字路口让行决策上比人类更保守(安全第一)
- 在高速合流时更激进(基于精确的距离/速度计算)
- 平均每千英里接管次数:0.02(人类:8.5)
核心概念回顾
Section titled “核心概念回顾”mindmap
root((强化学习))
基本概念
Agent 智能体
Environment 环境
State 状态
Action 动作
Reward 奖励
数学框架
MDP
策略 π
价值函数 V
Q 函数
Bellman 方程
关键挑战
探索 vs 利用
延迟奖励
信用分配
奖励稀疏
现代应用
LLM 对齐 RLHF
蛋白质设计
药物发现
游戏 AI
机器人控制 记住这些要点
Section titled “记住这些要点”- RL 的独特性:通过试错学习,只需奖励信号,无需标注答案
- MDP 五要素:状态、动作、转移、奖励、折扣
- 马尔可夫性质:当前状态包含决策所需的全部信息
- Bellman 方程:价值函数的递归定义,是所有 RL 算法的基础
- RLHF:ChatGPT 的核心技术,用人类偏好对齐 LLM
- 探索-利用权衡:既要尝试新动作,又要利用已知好的动作
思考题 1:适用场景判断
Section titled “思考题 1:适用场景判断”以下哪些场景更适合用强化学习而非监督学习?为什么?
a) 识别医学影像中的肿瘤
b) 训练机器人学会走路
c) 预测股票明天的价格
d) 让 AI 玩《超级马里奥》并通关
e) 优化数据中心的能耗
点击查看分析
适合 RL:b、d、e
- b) 机器人走路:典型的序列决策问题,有明确的奖励信号(前进距离、能耗),需要探索不同的步态。
- d) 玩游戏:有明确的得分和输赢,可以自我对弈无限生成训练数据。
- e) 能耗优化:多目标优化(性能 vs 能耗),需要长期策略,环境动态变化。
不适合 RL:a、c
- a) 肿瘤识别:有大量标注数据,监督学习更直接有效。
- c) 股票预测:时间序列预测问题,监督学习更合适;且股市是非平稳环境,RL 难以稳定学习。
思考题 2:AlphaGo 为什么需要 RL?
Section titled “思考题 2:AlphaGo 为什么需要 RL?”为什么 AlphaGo 不能只学习人类棋谱,而需要通过自我对弈的强化学习?
点击查看分析
人类棋谱只能让 AI 达到人类水平的上限。围棋是一个信息完全、零和博弈的游戏,存在客观的最优策略,但人类还远未找到。
通过自我对弈,AlphaGo 能够:
- 探索人类从未尝试过的落子位置和策略
- 通过试错发现更优的中盘定式
- 不受人类认知偏见的限制
AlphaGo Zero 甚至完全不用人类棋谱,纯靠自我对弈从零学习,最终超越了学习过人类棋谱的 AlphaGo。这证明了 RL 在探索复杂策略空间时的独特价值。
思考题 3:奖励函数设计
Section titled “思考题 3:奖励函数设计”你要训练一个送餐机器人,从厨房送餐到餐桌。以下哪种奖励函数设计更合理?
方案 A:
- 成功送达 +100
- 每秒 -0.1(鼓励快速)
- 撞到障碍物 -50
方案 B:
- 成功送达 +100
- 每靠近目标 1 米 +1
- 撞到障碍物 -50
- 洒出食物 -100
点击查看分析
方案 B 更优,原因:
-
密集奖励:“每靠近 1 米 +1” 提供了方向引导,解决了奖励稀疏问题。方案 A 中,机器人可能长时间随机游走都得不到正反馈。
-
关键约束:“洒出食物 -100” 是任务的核心约束。方案 A 只优化速度和碰撞,可能学会”快速撞到餐桌把餐盘甩过去”。
-
潜在改进:还可以加入”保持直立 +0.01/秒”(稳定性奖励)、“偏离最短路径 -0.5”(效率引导)。
核心原则:奖励函数要同时覆盖主要目标(送达)、关键约束(不洒)和效率引导(快速、安全)。
思考题 4:RLHF 的局限
Section titled “思考题 4:RLHF 的局限”RLHF 让 ChatGPT 变得更有用,但这项技术有什么潜在问题?
点击查看分析
主要局限:
-
奖励黑客(Reward Hacking)
模型可能学会”钻空子”获得高分,而非真正解决问题。例如,过度迎合用户(阿谀奉承)而非诚实回答。 -
人类偏好的局限性
人类标注员也会犯错、有偏见。模型会学到这些偏见,甚至放大它们。 -
短期 vs 长期
人类评分员往往偏好”看起来有用”的回复,而非真正解决长期问题的答案。 -
可扩展性
高质量人工标注成本极高,难以覆盖所有场景和语言。
解决方向:
- Constitutional AI(用明确原则替代隐式偏好)
- AI 反馈(RLAIF)降低人工标注需求
- 多样化评分员(减少单一视角偏见)
思考题 5:Q-Learning 的局限
Section titled “思考题 5:Q-Learning 的局限”我们的 4×4 迷宫用 Q 表很有效,但如果换成《超级马里奥》会怎样?
点击查看分析
Q 表的致命问题:状态空间爆炸。
- 4×4 迷宫:16 个状态 × 4 个动作 = 64 个 Q 值
- 超级马里奥:屏幕分辨率 256×240,每个像素 256 色,加上马里奥位置、速度、敌人状态……状态数 >
解决方案:Deep Q-Network (DQN)
用神经网络 近似 Q 函数,将状态(像素)映射到 Q 值。神经网络能泛化到相似状态,不需要为每个状态单独存储。
这就是深度强化学习的起点,我们会在后续章节详细讲解。
- 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 式训练的最佳起点。
- David Silver 的 RL 课程
课程主页 | YouTube 播放列表
DeepMind 首席研究员、AlphaGo 核心开发者的经典课程。从 MDP 讲到深度 RL,理论与实践结合,深入浅出。
在第 2 章,我们将深入马尔可夫决策过程(MDP)的求解方法:
- 动态规划:策略评估、策略迭代、值迭代
- 如何在已知环境模型时求解最优策略
- GridWorld 上的完整实现和可视化
- 为理解 Q-Learning、SARSA 等无模型算法打基础
准备好深入数学细节了吗?我们下一章见!
以下是本章引用的核心文献和工具资源,按主题分类:
[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 的最佳视频教程之一。
主题色
字体
字号
视觉效果
即将离开本站
你将前往外部网站:
该网站与本站无关,本站不对其内容、安全性或可用性负责。确定后将在新标签页打开。