📝 强化学习 (Reinforcement Learning) 深度学习笔记
角色设定
- 费曼教授 (Feynman): 擅长用直觉和比喻解释复杂概念的物理学家,注重"为什么"。
- 学生 (Student): 勤奋好学,喜欢追问细节和技术实现的求知者。
1. 核心定义:什么是强化学习?
Student: 教授,我最近总听到 RL (Reinforcement Learning),它和我们之前学的"监督学习"有什么本质区别?
Feynman: 想象一下教一只小狗坐下。你不会给它画图纸(监督学习中的 Label),也不可能直接操纵它的肌肉。你通过奖励(给骨头)或惩罚(不给骨头)来训练它。
这就是 RL 的直觉:一个智能体在环境中通过"最大化奖励"来改进策略。
严谨定义: 强化学习是智能体 (Agent) 通过与环境 (Environment) 进行交互,观察状态 ($S_t$)并执行动作 ($A_t$),在不断的试错 (Trial-and-Error) 中平衡探索与利用,旨在最大化长期累积折扣回报 ($G_t$) 的序列决策过程。
💡 关键区别:
- 监督学习 (Supervised Learning): 老师直接告诉你正确答案(Instruct)。
- 强化学习 (Reinforcement Learning): 老师只给你打分(Evaluate),你需要自己悟出怎么拿高分。
2. 基础框架:马尔可夫决策过程 (MDP)
Feynman: 我们可以用一个五元组来描述 RL 的世界,这被称为 MDP。
RL 世界的五大要素
- Agent (智能体): 决策的大脑。
- 例子: 超级马里奥、ChatGPT、自动驾驶汽车。
- Environment (环境): 智能体之外的一切,规则的制定者。
- 例子: 游戏关卡、人类的对话反馈、物理世界。
- State ($S_t$ - 状态): 智能体感知到的"现状"。
- 例子: 屏幕上的像素画面、当前的对话上下文历史。
- Action ($A_t$ - 动作): 智能体能做的事情。
- 例子: 按下跳跃键、生成下一个单词"Apple"。
- Reward ($R_t$ - 奖励): 环境给出的即时反馈信号(标量)。
- 例子: 吃到金币 (+10),掉进坑里 (-100),用户点赞 (+1)。
- 注意: 奖励是评估性 (Evaluative) 的,而非指示性的。它只告诉你结果好坏,不告诉你"最佳操作是什么"。
3. 核心难题与机制
Student: 听起来就是"趋利避害",那难点在哪里呢?
Feynman: 难在三个地方:你看得多远?功劳归谁?是冒险还是求稳?
3.1 远见 vs 短视 (折扣因子 $\gamma$)
我们追求的不是单步奖励 $R_t$,而是回报 (Return, $G_t$)。
$$ G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots $$
- $\gamma$ (Gamma, 0~1): 决定了智能体有多"看重未来"。
- $\gamma = 0$: 极度短视,只在乎眼前的快乐。
- $\gamma \to 1$: 极度有远见,为了未来的大奖愿意忍受当下的痛苦。
3.2 信用分配 (Credit Assignment)
- 问题: 你下围棋赢了,是因为第 100 步的绝杀,还是第 5 步的一个不起眼的布局?现在的动作可能导致很久之后才得分(延迟奖励)。
- 解决方案: 引入 价值函数 (Value Function, $V$ 或 $Q$)。
它充当"预言家",预测处于当前状态未来能拿多少分。
贝尔曼方程 (Bellman Equation): 将未来的价值回传给现在:
$$ V(s) \approx R + \gamma V(s’) $$
(当前状态的价值 = 现在的奖励 + 打折后的下一状态价值)
3.3 探索 (Exploration) vs 利用 (Exploitation)
- 利用 (Exploitation): 贪婪模式。去那家你已知最好吃的餐厅吃饭。
- 探索 (Exploration): 冒险模式。去尝试一家新开的店(可能会踩雷,但也可能发现新大陆)。
- RL 必须在二者之间寻找平衡,否则会陷入局部最优。
4. 算法流派:如何解题?
Student: 既然有了目标,我们具体怎么训练 Agent 呢?
Feynman: 这里的门派主要分为三类,就像武林高手的不同修炼路径。
| 流派 | 代表算法 | 核心逻辑 (一句话) | 优缺点分析 | 适用场景 |
|---|---|---|---|---|
| Value-based | DQN, Q-Learning | **“找价值” (Critics)**先算出每一步的价值$Q(s,a)$,然后选分最高的那个动作。 | **缺点:**在连续动作空间(如机器人关节角度)中,很难计算$\arg\max Q$。 | 离散动作 |
(如:走迷宫、雅达利游戏) | | Policy-based | Policy Gradient (REINFORCE) | **“学概率” (Actors)**不计算价值,直接输出动作的概率分布$\pi(a|s)$,从中采样。 | **优点:**天然支持连续动作。**缺点:**学习效率低,方差大,容易收敛慢。 | 连续动作
(如:机械臂控制) | | Actor-Critic | A3C, PPO, TRPO | **“动静结合"Actor (运动员):**输出动作。**Critic (教练):**打分,纠正 Actor。 | **SOTA (当前最强):**结合了 Policy 的灵活性和 Value 的稳健性。 | 复杂场景
(如:Dota 2, ChatGPT) |
💡 关键认知:Actor-Critic 的精髓
在 Actor-Critic 架构中,TD Error (预测误差) 起到了双重作用:
- 更新 Critic: 让"教练"的眼光更准(预测更接近真实回报)。
- 更新 Actor: 如果 TD Error 是正的(表现比预期好),就鼓励这个动作;反之则抑制。
5. 前沿应用:RLHF (ChatGPT 背后的引擎)
Student: 我知道 ChatGPT 用了 RLHF,它到底是怎么运作的?
Feynman: RLHF (Reinforcement Learning from Human Feedback) 是让 GPT 从"能说话"进化到"说人话"的关键。
核心三步走:
- SFT (有监督微调):
- 先找人类写好的高质量问答对,让模型学会基本的对话能力。(这是热身)
- Reward Modeling (奖励模型 - RM):
- 痛点: 人类不可能实时守在电脑前给 AI 的每一句回复打分(太慢、太贵)。
- 解法: 我们训练一个替身模型 (Reward Model) 来模仿人类的喜好。人类给几个回答排序,RM 学习这种排序逻辑。
- PPO (强化学习优化):
- Agent: GPT 模型。
- Environment: 奖励模型 (RM)。
- Process: GPT 生成文本 -> RM 给出分数 -> PPO 算法利用这个分数更新 GPT 的参数。
- 目的: 强行调整 GPT 的概率分布,让它生成的每一个词都更符合人类的价值观和偏好。
6. 费曼教授的总结 (Cheat Sheet)
最后,把这些记在你的脑子里:
- Reward 是信号,Value 是预判。 真正的高手看的是 Value (长期价值)。
- Value-based 怕连续动作(算力爆炸),Policy-based 怕方差大(学得慢)。
- Actor-Critic 是完美的"联姻”,现在的工业界标准(如 PPO)几乎都是这一派。
- RLHF 的本质是用一个 Reward Model 充当虚拟裁判,通过大规模强化学习来对齐人类意图。