强化学习入门教程
写给完全新手:少术语、无复杂公式,先建立直觉。
读完后你应能回答:强化学习在干什么?和监督学习有什么不同?常见算法大概分哪几类?
先用一个故事建立画面
想象你在玩一个迷宫游戏:
- 你看到当前在哪个格子(状态)
- 你决定往哪走(动作)
- 迷宫给你反馈:撞墙 -1 分,走到出口 +100 分(奖励)
- 你根据经验调整「下次怎么走」(学习策略)
你一开始会乱走(探索),后来越走越熟,更常选好路(利用)。
这就是强化学习:在环境里试错,靠奖励慢慢学会更好的行为。
再对比一下常见的机器学习:
| 监督学习 | 强化学习 | |
|---|---|---|
| 像什么 | 做带答案的试卷 | 玩游戏,靠得分进步 |
| 老师给什么 | 每题标准答案 | 往往只有「好/坏」的分数 |
| 目标 | 预测正确 | 把长期总分尽量打高 |
一句话记住:
强化学习 = 在互动中试错,学会让长期奖励变大。
1. 六个核心词(只要懂意思)
不用背符号,先记住中文含义:
| 词 | 白话解释 | 生活例子 |
|---|---|---|
| 智能体 | 做决定的那一方 | 玩家、机器人、对话模型 |
| 环境 | 外面的世界 | 游戏、房间、用户对话场景 |
| 状态 | 现在看到的情况 | 棋盘局面、当前位置 |
| 动作 | 可以怎么做 | 上/下/左/右、生成下一句 |
| 奖励 | 这一步好不好的分数 | 通关加分、答错扣分 |
| 策略 | 「看到什么就怎么做」的规则 | 你的走法习惯、模型的回答风格 |
它们怎么转起来:
看状态 → 按策略选动作 → 环境给新状态和奖励 → 再看状态……循环足够多次后,策略会变好。
关于「回报」和「折扣」(直觉即可)
- 回报:不是只看眼前这一步分,而是把以后很多步的分也算进来。
- 折扣:通常更在乎近期分数;太远的未来可以打折看。
比如:现在吃到糖很开心,但一周后的糖对你吸引力弱一些。
目标很简单:找到一种策略,让长期总分尽量高。
2. 价值:给局面和动作「打分」
光有奖励还不够,因为奖励常常来得晚(走了很久才通关)。
所以我们常学一个「预估未来能拿多少分」的东西,叫价值。
可以把它想成游戏攻略里的评分:
| 概念 | 白话 | 怎么用 |
|---|---|---|
| 状态价值 V | 「站在这里,以后大概能拿多少分?」 | 评估局面好不好 |
| 动作价值 Q | 「在这里选这个动作,以后大概能拿多少分?」 | 用来选动作 |
| 优势 A | 「这个动作比平均水平好多少?」 | 比平均好就多选,差就少选 |
入门只要记住:
价值 ≈ 对未来总分的预估;优势 ≈ 某个动作相对一般水平的好坏。
以后你看到 PPO、Actor-Critic,就会反复碰到「优势」这个词。
3. 三种学法(先分清,别一上来背算法名)
强化学习方法很多,入门先分三大类:
① 先学「谁更好」,再选动作(价值方法)
- 想法:先估计每个动作大概值多少分,再选分高的。
- 代表:Q-learning、DQN(玩 Atari 那种)
- 适合:动作选项不多、好枚举的情况
类比:先给每道菜打分,再点最高分的那道。
② 直接改「怎么做决定」(策略方法)
- 想法:不先建完整打分表,直接调整策略本身。
- 代表:REINFORCE
- 核心直觉:
- 这次玩得好 → 当时那些动作下次多出现一点
- 这次玩得差 → 当时那些动作下次少出现一点
类比:球打得好,就强化那套挥杆习惯。
③ 边做决定边打分(演员-评论家)
- 演员(Actor):负责选动作(策略)
- 评论家(Critic):负责打分(价值),告诉演员「刚才那步相对好不好」
- 代表:A2C、PPO
这是现在最常用的骨架,大模型对齐里的 PPO 也属于这一路。
价值方法:先学打分,再选动作 策略方法:直接改行为习惯 演员-评论家:一个负责演,一个负责评,一起进步4. 探索 vs 利用(新手最容易忽略)
只利用:永远选现在觉得最好的 → 可能永远发现不了更好走法。
只探索:一直乱试 → 学得很慢,也难稳定。
好的学习需要两者平衡。常见简单做法:
- 大多数时候选当前最优
- 偶尔随机试一试(比如 ε-greedy)
记住一句:
不探索,就很难学到新东西;不利用,分数就上不去。
5. 两种用数据的方式(知道区别就行)
| 类型 | 白话 | 特点 | 常见例子 |
|---|---|---|---|
| On-policy | 用「我现在这套打法」打出来的数据,来改进我自己 | 更稳,但数据容易过期 | PPO、A2C |
| Off-policy | 也可以用别人/旧策略打出来的数据 | 更省样本,但更难调 | DQN |
你做大模型 RLHF 时,常听到的 PPO,大体属于 on-policy 这一族。
6. 一次训练到底在循环什么
别管细节,先记住这个循环:
1. 用当前策略去和环境互动,收集一堆经历 2. 看看哪些做得好、哪些不好(算回报或优势) 3. 更新策略(以及可能的价值网络) 4. 重复,直到表现够好如果是训练聊天大模型,循环长这样:
给提示词 → 模型生成回答 → 打分(规则或奖励模型) → 判断哪些回答更好 → 更新模型 → 再生成7. 奖励设计:比算法更常决定成败
算法再高级,奖励设错也会学歪。常见坑:
| 问题 | 现象 | 怎么办 |
|---|---|---|
| 奖励黑客 | 分数很高,但行为并不是你想要的 | 检查奖励是否被钻空子 |
| 太稀疏 | 很久才给一次分,学不会 | 增加中间反馈,或从简单任务练起 |
| 尺度乱 | 分数忽大忽小,训练不稳 | 把奖励控制在合理范围 |
| 目标打架 | 又要有用又要安全,没权衡好 | 明确优先级,分开监控 |
原则很朴素:
- 奖励要对准你真正想要的行为
- 能给更及时的反馈就更好
- 不要只看分数,也要看真实表现有没有变好
8. 常见算法,用一句话认识就够
先不用深挖实现,能对上号即可:
| 名字 | 你可以怎么理解 |
|---|---|
| Q-learning / DQN | 学「动作值多少分」,再选高分动作 |
| REINFORCE | 玩得好就强化当时行为 |
| Actor-Critic | 一个选动作,一个负责点评 |
| PPO | 每次只小步改进策略,更稳,很常用 |
| GRPO 等 | 大模型场景常见;用一组回答互相比较来学 |
入门建议只抓这条线:
REINFORCE(直接强化)→ Actor-Critic(加上点评)→ PPO(小步、更稳)
9. 和大模型的关系(建立直觉)
把对话模型放进强化学习框架里:
- 状态:用户问题和目前已生成内容
- 动作:下一个要输出的词
- 奖励:回答好不好(人工偏好、规则、奖励模型)
- 策略:模型本身如何生成回答
所以 RLHF 可以粗理解为:
让模型多生成高分回答,少生成低分回答,同时又别偏离原来太远。
细节以后再学;现在有这个对应关系就够了。
10. 七天入门路线(可执行)
| 天数 | 学什么 | 怎样算过关 |
|---|---|---|
| Day 1 | 智能体、环境、状态、动作、奖励、策略 | 能用迷宫故事讲清楚 |
| Day 2 | 回报、价值、优势(只懂直觉) | 能区分「即时奖励」和「未来预估」 |
| Day 3 | 三种学法:价值 / 策略 / 演员-评论家 | 能各举一个生活类比 |
| Day 4 | 探索与利用、on/off-policy | 能说出为什么要偶尔随机试 |
| Day 5 | 看 PPO 在干什么(小步更新、更稳) | 能解释「为什么不能一次改太猛」 |
| Day 6 | 奖励设计的坑 | 能举一个「刷分但没用」的例子 |
| Day 7 | 动手:跑一个小游戏环境 | 看到分数随训练上升 |
推荐上手环境:Gymnasium(如 CartPole,立杆游戏,很适合入门)。
11. 新手常见误解
「每一步都选当前最高奖励就行」
不行。短期最优常常毁掉长期总分。「上了神经网络就等于会强化学习」
网络只是工具;关键仍是互动、奖励、探索和稳定更新。「价值函数就是奖励」
奖励是当下这一下;价值是对未来一长串的预估。「探索只在一开始需要」
环境一变,或策略变差时,仍需要保持一点探索。「分数涨了就一定学对了」
可能在钻奖励空子。要看真实行为是否符合目标。
12. 小结:先记住这一条主线
在环境中试错 → 用奖励判断好坏 → 估计未来值不值(价值/优势) → 改进怎么做决定(策略) → 边探索边利用,逐步变强你现在不需要会推公式。
先把画面建立起来,再去看《强化学习精通教程》或具体算法(如 PPO)会轻松很多。
接下来可以看什么
- 同目录《强化学习精通教程》:更细的算法与调参
- 同目录 verl 架构文档:大模型 RL 工程怎么落地
- OpenAI Spinning Up:英文入门很友好
- Gymnasium:动手跑小环境
备注:AI生成