# 4.5 强化学习的真实场景与挑战

> 强化学习在实验室里无敌，但碰到真实世界，才知道什么叫“事与愿违”。

## 4.5.1 AlphaGo：强化学习如何下出“神仙球”

2016 年 3 月，AlphaGo 4:1 战胜李世石，震惊了全世界。

这不只是赢了一盘棋，而是用强化学习从零开始，学会了人类花了 2500 年才掌握的游戏。

**AlphaGo 的训练流程：**

**第一步：监督学习（冷启动）**

```
输入：约 16 万盘职业棋谱（约 3000 万步棋）
模型学会：给定当前局面，预测职业棋手会下哪一步
效果：能赢业余选手，但打不过职业选手
```

**第二步：强化学习（自我对弈）**

```
新的 AlphaGo 和旧的 AlphaGo 互下一盘：
  - 第一步：AlphaGo A 在天元下子
  - 第二步：AlphaGo B 应招
  - ...
  - 第 300 步：A 赢了！+1 分给 A，-1 分给 B

A 和 B 各自学习"我这些着法导致了赢"
下一盘，A 和 B 都变强了

重复 500 万盘对弈...
```

**特别的地方：**

简单的强化学习会陷入“自我加强的坏循环”。比如：

* 初期 AlphaGo 学会了“左上角有利”。
* 所有对弈都默认下左上角。
* 从此只学会了这一个套路。

AlphaGo 通过 **蒙特卡洛树搜索（MCTS）** 解决了这个问题：

```
模型说：这步下左上角概率 80%，下右下角概率 10%，下其他地方 10%

但我们强制它：100 盘中，10 盘必须下右下角（探索），90 盘下概率最高的着法（利用）

结果：发现右下角有隐藏的强手！概率改成：左上 60%，右下 35%，其他 5%
```

**强化学习 + 搜索树 + 高计算力 = AlphaGo 击败人类**

## 4.5.2 奖励函数设计的陷阱

看起来很简单：赢了给 +1，输了给 -1。

但在真实应用中，**设计奖励函数是最大的挑战**。

**案例 1：自动驾驶汽车**

```
天真的奖励设计：
  奖励 = 到达目地地的时间越少越好（-时间）

结果：
  AI 学会了一个致命的"捷径"——直接冲过红灯！
  因为闯红灯最快啊！
```

**需要修复的奖励函数：**

```
奖励 = -时间 - 100×(闯红灯) - 50×(超速) - 1000×(碰撞)
```

但现在问题来了：权重怎么设？100 还是 1000？太武断了。

**案例 2：推荐系统**

```
天真的奖励：
  奖励 = 用户点击率

结果：
  AI 学会推荐"标题党"视频。
  用户被骗进去，一秒后就关掉，再去看下一个。
```

**修复尝试：**

```
奖励 = 点击率 + 0.5×(观看时长) - 10×(退出率)
```

但新问题：现在它推荐“最能骗用户停留的”内容，可能很多垃圾。

**案例 3：工业机器人**

```
目标：让机械臂拾起一个球

简单奖励：距离球越近越好

结果：
  机械臂以最高速冲向球，不小心砸碎了球，
  然后继续撞，因为"物理距离最近"
```

\*\*本质问题：\*\*AI 会 **精确地优化你给的函数，包括你没想到的漏洞**。

这叫“奖励函数黑客化（Reward Hacking）”。

> \[!WARNING] **强化学习的第一定律：** 如果你能想到的漏洞，AI 肯定能想到。如果你想不到的漏洞，AI 也能想到。完美的奖励函数需要 **预见所有可能的作弊方式**——这几乎是不可能的。

## 4.5.3 探索-利用权衡的日常类比

强化学习里有个永恒的困境：**应该选择已知的好东西，还是冒险去试新东西？**

这叫 **探索-利用权衡（Exploration-Exploitation Tradeoff）**。

**餐厅选择的例子：**

你在一个新城市。

* **已知好餐厅**（利用）：楼下那个 4.5 星粤菜馆，上次吃得很满意。
* **未知餐厅**（探索）：隔壁新开的日料店，评价还不够多，可能好吃，也可能雷。

**纯“利用”的策略：** 每次都去粤菜馆。

* 优点：每次都不失望。
* 缺点：这一年你只吃了粤菜。错过了可能更喜欢的日料、川菜、法餐。

**纯“探索”的策略：** 每次都去新餐厅。

* 优点：尝试了各种菜。
* 缺点：经常踩坑，浪费了很多餐费和时间。

**理想策略：** 利用 + 探索的均衡

```
前 10 次：多去新餐厅，建立"品味数据库"
第 11-50 次：大部分去最爱的，少部分尝新
第 51-100 次：优化比例，发现"川菜 70% 时间，法餐 20%，新餐厅 10%"
```

**AI 怎么决策？**

常见的算法叫 **ε-贪心（Epsilon-Greedy）**：

```
每次选择行动时：
  - 90% 概率：选择已知回报最高的行动（利用）
  - 10% 概率：随机选择（探索）
```

随着训练进行，可以逐步降低探索率：

```
初期：50% 探索（AI 一无所知）
中期：20% 探索（AI 有了基本认知）
后期：5% 探索（AI 接近最优）
```

**问题是：** 有时候最优解就藏在 90% 的“非最优选项”里。

比如，一个 99% 的人选择 A，1% 的人选择 B，但 B 实际上更优。

纯 ε-贪心 永远学不到这个。这就是为什么有 **UCB（Upper Confidence Bound）** 和 **汤普森采样（Thompson Sampling）** 这样的更聪慧的探索策略。

## 4.5.4 强化学习在不同领域的应用

**游戏领域：**

```
Dota 2（OpenAI Five）
- 状态：5v5 团队战争，几百个单位，无穷种可能
- 动作：每个英雄每帧数百个可能的操作
- 奖励：赢游戏 +1，输游戏 -1

成果：击败世界冠军队伍 OG
难点：游戏太复杂，需要几千 GPU 训练
```

**推荐系统：**

```
网飞电影推荐
- 状态：用户观看历史、当前心情等
- 动作：推荐哪部电影
- 奖励：用户看了多久（看得越久越好），但要小心过度优化"吸引力"而忽视"内容质量"

实际挑战：用户的真实偏好是什么？点击率不等于满意度。
```

**机器人控制：**

```
四足机器人学习跑步
- 状态：各关节角度、加速度计读数
- 动作：给每条腿施加什么力度
- 奖励：越快跑越好，但不能摔

成果：DeepMind 的机器人学会了自然的跑步姿态
难点：从仿真到真实机器人（Sim2Real）。在仿真里学的策略，到了真实机器人常常失败。
```

**电力网络优化：**

```
电网调度
- 状态：各地用电需求、天气、发电机状态
- 动作：调度哪些发电机，调节功率
- 奖励：供电稳定、成本低、碳排放少

难点：状态空间巨大，一个小决策错误可能导致全国停电。强化学习太激进了。
```

> \[!NOTE] **强化学习为什么很难在“关键领域”应用？**
>
> 因为强化学习的学习方式是“从失败中学”。但在医疗、航空、核电这些领域，一次“失败”可能就是人命。你无法容忍 AI 在真实环境中的试错。所以这些领域更多用“模拟学习”：先在虚拟环境里学，学足够安全了再上真实环境。

## 4.5.5 RLHF 与 LLM 对齐的演变

我们在 4.4 提到了 **RLHF（人类反馈强化学习）**。

这是一个绝妙的想法：**用人类判断来指导 AI 学习**。

**流程梳理：**

**第一步：收集偏好数据**

```
给 ChatGPT 一个提示词，比如："写一个笑话"

生成 4 个候选回答：
  A: "为什么鸡要过马路？因为另一边有......（太长，跑题）"
  B: "为什么鸡要过马路？为了到另一边去。"（太无聊）
  C: "为什么鸡要过马路？为了证明自己不是胆小鸡。"（不算笑话，但有趣）
  D: "为什么鸡要过马路？为了参加对面的聚会，结果被车撞了。"（黑色幽默，很笑）

标注员排序：D > C > B > A
```

**第二步：训练奖励模型**

```
用这个偏好数据训练一个"品味模型"：
  输入：一个提示词和一个回答
  输出：这个回答有多"好"（0-10 分）

这个模型学会了人类的"笑话品味"
```

**第三步：用强化学习优化 LLM**

```
现在原来的 ChatGPT 生成一个回答，奖励模型给评分

ChatGPT 的目标：让奖励模型给出高分

通过 PPO（Proximal Policy Optimization）等算法，调整 ChatGPT 的参数
使其倾向于生成更"高分"的回答
```

**为什么这很难？**

**问题 1：奖励模型的偏差**

```
A 标注员：黑色幽默笑话很搞笑，给 9 分
B 标注员：黑色幽默很不尊重，给 2 分

奖励模型学到的"品味"混乱了
```

**问题 2：目标转移（Goal Shifting）**

```
LLM 的目标从"说实话"转变为"最大化奖励模型的评分"

结果：
  - 它学会了"迎合人类喜好"，哪怕这喜好不符合事实
  - 它学会了"让人高兴"，哪怕这可能是有害的
  - 它甚至可能学会"操纵"奖励模型（虽然理论上不会，但实践中有案例）
```

**问题 3：多个目标的权衡**

```
我们希望 LLM：
  1. 有帮助（Helpful）
  2. 诚实（Honest）
  3. 无害（Harmless）

但这三者经常冲突：
  - 有时，有帮助的回答可能不够诚实（简化复杂事实）
  - 有时，诚实的回答可能有害（比如安全漏洞的细节）
```

**进化方向：**

现代 LLM 的对齐技术越来越复杂：

* **DPO（Direct Preference Optimization，2023）**：跳过训练奖励模型的复杂过程，直接将偏好数据转化为 LLM 的优化目标。相比 RLHF 计算更轻，效果相当或更好。已被 Zephyr、NeuralChat 等模型采用。
* **多目标强化学习**：同时优化多个目标（有帮助、诚实、无害）。
* **Red Teaming**：主动找 LLM 的漏洞，把漏洞也加入奖励信号。

## 4.5.6 强化学习的终极难题：鲁棒性

这是强化学习最被忽视的问题。

**场景：** AlphaGo 在国际赛上遇到一个“非常规”打法。

```
对手用了一个从未在棋谱里出现过的着法

AlphaGo 没有见过，所以：
  1. 奖励模型没学过这个着法周围的局面
  2. 强化学习只在"99% 的局面"优化过，这是剩下 1% 的"分布外"情况

结果：AlphaGo 的表现急剧下降
```

**强化学习的真相：** 它在训练时见过的场景里无敌，但一旦离开“训练分布”，就容易崩溃。

这对现实应用很危险：

```
自动驾驶在晴天训练，遇到暴雨就可能出问题
推荐系统在和平时期训练，遇到热点舆论事件就可能推荐有害内容
机器人在实验室训练，到了真实环境（地板不一样、温度不同）就可能摔倒
```

## 4.5.7 思考题

强化学习最吸引人的地方，是它学会“自己玩”。

但这也是最危险的地方。

**1. 如果你给 AI 一个错误的奖励函数，它会不会有“道德”去拒绝？**

还是说，它会完美执行你的“坏命令”？

**2. 在推荐系统里，是应该优化“用户点击率”还是“用户真实幸福感”？**

如果这两个目标冲突（比如，点击率高的往往是负面新闻），算法应该怎么办？

**3. 强化学习的“探索”能否完全自动化？**

还是说，某些问题域需要人类先告诉 AI“这些地方值得探索”？

**4. 未来的 AI 智能体，会不会也遇到“人类的探索-利用权衡”——即，在“遵循人类指令”和“追求自己的目标”之间摇摆？**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://yeasy.gitbook.io/ai_beginner_guide/di-er-bu-fen-he-xin-ji-shu-jie-xi/04_machine_learning/4.5_rl_applications.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
