跳到主要内容

强化学习:试错、奖励与最佳策略

这一章讲三件事: 没有「标准答案」只有奖励时,学习怎么定义(马尔可夫决策过程); 一张算法地图(概率已知走动态规划,未知走蒙特卡洛/时序差分,连续状态上神经网络); 以及 AlphaGo 之后最热门的技术,书里怎么冷静地教。 它是全书最后一章,也是唯一一种「不需要标注数据」的机器学习。

1. 它解决什么:没人给答案,只有奖励

监督学习(有标准答案的学习方式)有标准答案,强化学习没有——只有环境给的奖励。书里的比喻直白:训练狗接飞盘:没人教狗怎么接,主人只管抛飞盘,接到了给食物,接不到不给;反复练习后狗自己学会了。这个「试误法(Trial and Error)」是多阶段的反复求解,书里明说「类似于梯度下降法的求解过程」1

理论底座(马尔可夫决策过程)已有几十年历史,2016 年 AlphaGo 连胜李世乭、柯洁才让它出圈2。应用都在「能在模拟环境里试错+需要决策」的场景:游戏策略、机器人控制、广告投放、金融交易、库存管理——书里甚至直言包括战争决策辅助3

2. 框架:马尔可夫决策过程(MDP)

五个术语撑起整个框架4:代理人(Agent,行动的主人翁:玩家/机器人/接飞盘的狗)、环境(给奖励、定状态)、状态(棋局、位置;21 点里庄家有盖牌看不到,所以状态也叫「观察」)、行动、奖励。

核心原则只有一条:追求长期累计报酬(Return),不是每一步的奖励最大化。 书里的例子:下棋时会故意弃子诱敌——短期亏损买长期胜利5。这与神经网络的优化形成全书式的对照:神经网络最小化损失函数求权重,强化学习最大化报酬求策略(Policy)——「什么状态下该做什么行动」的规则。

主走查(一):马尔可夫链,两行算天气

马尔可夫性质是整套理论的「物理定律」:下一状态只依赖当前状态,与更早的历史无关。书里用天气链演示6:

今天晴 → 明天晴 0.8,明天雨 0.2
今天雨 → 明天晴 0.1,明天雨 0.9

问:今天晴,后天也晴的概率?
两条路:晴→晴→晴 (0.8×0.8) + 晴→雨→晴 (0.2×0.1)
= 0.64 + 0.02 = 0.66

(书里的原始算式。)这条主走查的三步——列出转移概率、枚举路径、加权求和——正是后面所有算法的微缩模型:值函数是它的推广,贝尔曼方程是它的代数化。马尔可夫链再加奖励就是 MRP(书里的学生作息例:每状态按转移概率加权算期望,如 computer 状态 5×0.5−3×0.1+1×0.2+2×0.2=2.8);MRP 再加行动转移矩阵(同一状态下不同行动有不同的转移概率——走迷宫四个方向概率不必相等)就是完整 MDP7

价值的定义随之而来:折扣因子 γ<1 让越久远的奖励越打折(类似复利,「R+γR′+γ²R″+…」);状态值函数 V(s)=从状态 s 出发、按某策略走到底的期望报酬。书里的迷宫手算:三条走法的报酬 0.72、0.72、−1.16,该状态的值函数=(0.72+0.72−1.16)/3≈0.098

贝尔曼方程把「价值」递归化:当前状态的价值=下一步的期望奖励+下一步状态的价值(打折)。它的实用之处配合试误法才成立——要算第 50 回合的值函数,可以用前 49 回合的经验来估9

3. 算法地图:按「概率知不知道」走

状态转移概率已知?(环境明确)
├─ 是 → 动态规划:策略评估+策略改善循环(策略迭代)
│ 值迭代=把两步合一,更快
└─ 否(现实中常态,「无模型」)
├─ 走完一整盘再复盘 → 蒙特卡洛
└─ 边走边学 → 时序差分(TD)
├─ SARSA(On-policy)
└─ Q-learning(Off-policy)

动态规划:概率已知时,反复「评估所有状态的值函数→按最大值函数改善策略」直到收敛;值循环(Value Iteration)把评估与改善合并提速10。天花板也明确:只适合状态空间(所有可能状态的全体)不超过百万的中型问题——围棋状态空间约 3³⁶¹≈1.74×10¹⁷²,表格装不下,而且大部分路径从未走过,样本代表性不足,「维数灾难」11

蒙特卡洛(MC):概率未知就用随机模拟估。名字的来历书里专门讲了:二战核武团队发明,乌拉姆的叔叔总在摩纳哥的蒙特卡洛赌场输钱12。主走查(二)是它的招牌演示13:

正方形里画个内切圆,随机撒一千万个点;圆内点数÷总点数≈π/4,所以 π≈4×圆内占比。书里跑出来 3.1418028(真值 3.14159)——没有一条几何证明,纯靠随机撒点,答案自己浮现。

21 点上的实战:故意用一个不合理策略(≥20 点才停牌),看各算法能不能把胜率救回来;状态是(玩家点数,庄家明牌,是否有 A)三维表格;同一回合同一状态可能经历两次(A 先算 11 后算 1),于是有「首次访问/每次访问」两种记账法14

探索与利用:纯贪婪策略的弱点是「发现一条好路就一直走」——书里的比喻:家庭聚餐每次都去吃过最好吃的那家,新开的餐厅永远没机会被发现ε-greedy 的处方:ε=0.1 就是每 10 步留 1 步给随机探索。实测:21 点低分场景的胜率明显提升15。再进一步,On-policy(评估与改良用同一策略)与 Off-policy(评估用随机策略尽量探路、改良用贪婪尽量求胜,配合重要性加权抽样)各有效果场景16

时序差分(TD):MC 要走完整盘才能回头算,TD 边走边更新——值函数每次加上「下一状态的值 − 当前状态的值」再乘学习率 α;走一步更一次叫 TD(0),n 步一更叫 TD(λ)17。两个经典算法:

  • SARSA(On-policy):名字就是轨迹五元组 s,a,r,s′,a′ 的缩写;Windy Gridworld(会把人往上吹的风力迷宫)上约 50 回合收敛;
  • Q-learning(Off-policy):评估用 ε-greedy、改良用贪婪;Cliff Walking(悬崖迷宫,踩陷阱 −100)上同样约 50 回合收敛。

书里特意提醒的实验纪律:SARSA 与 Q-learning 各自跑在不同游戏上,不能比较优劣——要比就用同一款游戏18。作者还点破一件事:策略循环/值循环的逻辑「与神经网络优化求解,其实有些相似」19——全书首尾就此闭环:第 01 章的梯度下降,在这里换了套语言重新出现。

4. 超越表格:连续状态与两个收官实战

前面算法全靠一张大表记录每个状态的值,表格型(Tabular)只适合离散状态——木棒小车(位置/速度/角度/角速度四个连续变量)装不下。两条出路:连续变量分组离散化;或用神经网络取代表格——Deep Q-learning(DQN)就是「用神经网络的 Q-learning」20

Actor Critic 是后者的代表,书里强调它「类似于 GAN」:两个网络分工,行动者(Actioner)出决策,评论者(Critic)评估好坏并指导更新。Keras 官方范例在木棒小车上第 763 回合达标(连续 100 回合平均报酬超 195);训练初期的动画摇摇晃晃,后期行驶平稳21

井字游戏是「自己搭环境」的完整教学:定义状态(棋盘)、奖励(胜负未定计算机 +0.1/玩家 +0.5——故意不对称让计算机更积极;分出胜负 ±1)、训练 50000 回合后存出两张策略表(先手 policy_p1/后手 policy_p2);之后人类玩家上场——作者试了几回合,「计算机获胜的概率较大」22

收尾两句话值得原样记住:AGV 无人搬运车把办公室平面图做成 Grid World 仿真训练再移植实机;而强化学习最大的工程红利是——「不用搜集大量的训练数据,也不需标记数据」23

判断(我们的,不是书里的): 本书的 RL 教学选择了「从表格法讲起」的经典路线,止步于 DQN/Actor Critic 的入门,未涉及 2015 年后与深度学习深度融合的 AlphaGo 自我博弈,以及 PPO(近年的主流策略梯度算法)等方法。这不是缺陷而是取舍:表格法把「价值、策略、探索」三个概念讲得最透,概念不随算法过时;但要把它当 AlphaGo 的完整理论出处,还需另读 Sutton & Barto(书里也确实推荐了)。 如果错,会错在: 如果读者需要的是现代 RL 工程能力(如 RLHF 中的策略优化),本书这一章只能当概念地基;判断标准是能否独立实现策略梯度类算法。

5. 可带走的

  1. 强化学习=没有标准答案、只有奖励的学习:试误法,训练狗接飞盘;多阶段反复求解,逻辑与梯度下降同源;
  2. 追求长期报酬,不是每步贪:下棋弃子是理性投资;折扣因子 γ 让远期打折(复利);
  3. 马尔可夫性质=下一状态只依赖当前状态;主走查:0.8×0.8+0.2×0.1=0.66;
  4. 状态值函数=从该状态出发的期望报酬(0.72/0.72/−1.16 平均≈0.09);贝尔曼方程把它递归化,经验可以跨回合积累;
  5. 算法按「概率知不知道」分流:已知→动态规划(策略迭代/值迭代);未知→蒙特卡洛(整盘复盘)与时序差分(边走边学);
  6. 蒙特卡洛的哲学:撒一千万个随机点估 π=3.1418028——模拟可以替代解析;
  7. ε-greedy 治「只走老路」:留 1/10 步数探索(新餐厅才有机会被发现);
  8. SARSA 与 Q-learning 的差别是 On/Off-policy(评估与改良用不用同一策略);比较算法必须用同一款游戏;
  9. 表格装不下连续/巨型状态:围棋 3³⁶¹ 是维数灾难;神经网络取代表格即 DQN;Actor Critic 双网络分工(类似 GAN),木棒小车 763 回合达标;
  10. 强化学习不需要标注数据——这是它与前面十三章所有监督式方法最根本的分野。

6. 原文地图

主题原书章原文位置
接飞盘比喻、试误法第15章 强化学习text/122-ch15.txt:7(搜「训练狗接飞盘」)
AlphaGo 出圈第五篇扉页text/121-ch05.txt:7(搜「AlphaGo」)
五术语、观察15-1 强化学习的基础text/123-ch15-15-1.txt:15(搜「代理人或称智能体」) · text/123-ch15-15-1.txt:19(搜「庄家有一张牌盖牌」)
长期报酬、弃子15-1 强化学习的基础text/123-ch15-15-1.txt:35(搜「牺牲某些棋子」)
天气链与 0.66(主走查)15-1 强化学习的基础text/123-ch15-15-1.txt:49(搜「明天也是晴天的概率」) · text/123-ch15-15-1.txt:63(搜「0.8×0.8」)
MRP 期望值、行动转移15-1 强化学习的基础text/123-ch15-15-1.txt:73(搜「V=−1」) · text/123-ch15-15-1.txt:37(搜「行动转移矩阵」)
折扣因子、值函数、贝尔曼15-2 强化学习模型text/124-ch15-15-2.txt:35(搜「折扣因子」) · text/124-ch15-15-2.txt:49(搜「状态值函数(State Value Function」) · text/124-ch15-15-2.txt:59(搜「0.72」) · text/124-ch15-15-2.txt:75(搜「Bellman」)
Gym 与木棒小车规则15-4 Gym库text/126-ch15-15-4-gym.txt:105(搜「195步」)
策略评估/改善、贪婪15-6 动态规划text/128-ch15-15-6.txt:21(搜「策略评估(Policy Evaluation」) · text/128-ch15-15-6.txt:23(搜「贪婪(Greedy」)
值迭代、维数灾难15-7 值循环text/129-ch15-15-7.txt:5(搜「值循环(Value Iteration」) · text/129-ch15-15-7.txt:33(搜「维数灾难」)
蒙特卡洛命名与 π15-8 蒙特卡洛text/130-ch15-15-8.txt:9(搜「乌拉姆」) · text/130-ch15-15-8.txt:35(搜「3.1418028」)
首次访问、ε-greedy、On/Off15-8 蒙特卡洛text/130-ch15-15-8.txt:59(搜「首次访问」) · text/130-ch15-15-8.txt:77(搜「探索与利用」) · text/130-ch15-15-8.txt:101(搜「On-policy」) · text/130-ch15-15-8.txt:115(搜「重要性加权」)
TD、SARSA、Q-learning15-9 时序差分text/131-ch15-15-9.txt:17(搜「TD(0)」) · text/131-ch15-15-9.txt:35(搜「s, a, r, s, a」) · text/131-ch15-15-9.txt:123(搜「Cliff」)
Windy Gridworld 风力15-9 时序差分text/131-ch15-15-9.txt:41(搜「风力1级」)
比较要同游戏、与梯度下降相似15-9 时序差分text/131-ch15-15-9.txt:157(搜「同一款游戏」) · text/131-ch15-15-9.txt:173(搜「有些相似」)
表格型与 DQN15-10 其他算法text/132-ch15-15-10.txt:5(搜「表格型(Tabular」) · text/132-ch15-15-10.txt:9(搜「Deep Q-learning」)
井字游戏实战15-11 井字游戏text/133-ch15-15-11.txt:27(搜「训练50000回合」) · text/133-ch15-15-11.txt:59(搜「获胜的概率较大」)
Actor Critic 763 回合15-12 木棒小车text/134-ch15-15-12.txt:7(搜「Actor Critic类似于GAN」) · text/134-ch15-15-12.txt:15(搜「763回合」)
不需要标注数据15-13 总结text/135-ch15-15-13.txt:9(搜「不用搜集」)

Footnotes

  1. 出处:「第15章 强化学习」第 7 段(text/122-ch15.txt:7,搜「训练狗接飞盘」)。

  2. 出处:「第五篇 强化学习」第 7 段(text/121-ch05.txt:7,搜「AlphaGo」)。

  3. 出处:「第15章 强化学习」第 19 段(text/122-ch15.txt:19,搜「广告投放」)与第 27 段(text/122-ch15.txt:27,搜「残酷的战争」)。

  4. 出处:「15-1 强化学习的基础」第 15 段(text/123-ch15-15-1.txt:15,搜「代理人或称智能体」)、第 19 段(text/123-ch15-15-1.txt:19,搜「庄家有一张牌盖牌」)。

  5. 出处:「15-1 强化学习的基础」第 35 段(text/123-ch15-15-1.txt:35,搜「牺牲某些棋子」)。

  6. 出处:「15-1 强化学习的基础」第 49 段(text/123-ch15-15-1.txt:49,搜「明天也是晴天的概率」)、第 63 段(text/123-ch15-15-1.txt:63,搜「0.8×0.8」)与「15-2」第 21 段(text/124-ch15-15-2.txt:21,搜「马尔可夫性质」)。

  7. 出处:「15-1 强化学习的基础」第 37 段(text/123-ch15-15-1.txt:37,搜「行动转移矩阵」)与第 85 段(text/123-ch15-15-1.txt:85,搜「V=5」)。

  8. 出处:「15-2 强化学习模型」第 35 段(text/124-ch15-15-2.txt:35,搜「折扣因子」)、第 49 段(text/124-ch15-15-2.txt:49,搜「状态值函数(State Value Function」)与第 59 段(text/124-ch15-15-2.txt:59,搜「0.72」)。

  9. 出处:「15-2 强化学习模型」第 75 段(text/124-ch15-15-2.txt:75,搜「Bellman」)与第 89 段(text/124-ch15-15-2.txt:89,搜「1~49回合」)。

  10. 出处:「15-6 动态规划」第 21 段(text/128-ch15-15-6.txt:21,搜「策略评估(Policy Evaluation」)与「15-7 值循环」第 5 段(text/129-ch15-15-7.txt:5,搜「值循环(Value Iteration」)。

  11. 出处:「15-7 值循环」第 33 段(text/129-ch15-15-7.txt:33,搜「维数灾难」)。原文的「3=1.74×10」因公式图片丢失,指数显示不全;3³⁶¹≈1.74×10¹⁷² 是围棋状态空间的标准数(我们的补充,来自通用知识)。

  12. 出处:「15-8 蒙特卡洛」第 9 段(text/130-ch15-15-8.txt:9,搜「乌拉姆」)。

  13. 出处:「15-8 蒙特卡洛」第 21 段(text/130-ch15-15-8.txt:21,搜「πr」)与第 35 段(text/130-ch15-15-8.txt:35,搜「3.1418028」)。

  14. 出处:「15-8 蒙特卡洛」第 47 段(text/130-ch15-15-8.txt:47,搜「20点,才不补牌」)与第 59 段(text/130-ch15-15-8.txt:59,搜「首次访问」)。

  15. 出处:「15-8 蒙特卡洛」第 77 段(text/130-ch15-15-8.txt:77,搜「探索与利用」)与第 97 段(text/130-ch15-15-8.txt:97,搜「胜率比起上例明显提升」)。

  16. 出处:「15-8 蒙特卡洛」第 101 段(text/130-ch15-15-8.txt:101,搜「On-policy」)与第 115 段(text/130-ch15-15-8.txt:115,搜「重要性加权」)。

  17. 出处:「15-9 时序差分」第 13 段(text/131-ch15-15-9.txt:13,搜「边走边计算」)与第 17 段(text/131-ch15-15-9.txt:17,搜「TD(0)」)。

  18. 出处:「15-9 时序差分」第 157 段(text/131-ch15-15-9.txt:157,搜「同一款游戏」)。

  19. 出处:「15-9 时序差分」第 173 段(text/131-ch15-15-9.txt:173,搜「有些相似」)。

  20. 出处:「15-10 其他算法」第 5 段(text/132-ch15-15-10.txt:5,搜「表格型(Tabular」)与第 9 段(text/132-ch15-15-10.txt:9,搜「Deep Q-learning」)。

  21. 出处:「15-12 木棒小车」第 7 段(text/134-ch15-15-12.txt:7,搜「Actor Critic类似于GAN」)与第 15 段(text/134-ch15-15-12.txt:15,搜「763回合」)。

  22. 出处:「15-11 井字游戏」第 17 段(text/133-ch15-15-11.txt:17,搜「计算机加0.1分」)、第 27 段(text/133-ch15-15-11.txt:27,搜「训练50000回合」)与第 59 段(text/133-ch15-15-11.txt:59,搜「获胜的概率较大」)。

  23. 出处:「15-13 总结」第 9 段(text/135-ch15-15-13.txt:9,搜「不用搜集」)。AGV 应用在第 5 段(搜「无人搬运车」)。