试错学习 — 这本书研究的问题到底是什么
这一章讲三件事: 强化学习与「监督、无监督」两条老路的分界线在哪; 它的系统由哪四个零件组成、各自管什么;以及用一个井字棋程序把「从互动里学」这件事完整走一遍。 读完你会拿到全书的第一张地图——后面十五章都在往这张地图上填东西。 不需要任何基础,遇到的生词都在当场解释。
1. 先看现象:没人给它标准答案,它要自己试
小孩学走路,没有人给他一本《走路原理》,他是摔出来的。这本书开篇就认这个理: 从互动中学习,几乎是所有学习和智能理论共同的地基1。
但「从互动中学」具体指什么?先看它不是什么。
我们熟悉的那种学习方式(行业里叫监督学习)是这样的:给他看成千上万张标好答案的图片——这张是猫、那张是狗——他学会的是「照着标好的答案模仿」。监督学习里永远站着一个知道正确答案的老师2。
强化学习的处境完全不同。没有人告诉他此刻正确的动作是什么。 他能得到的只有一件事后的评分:这一步走完,结果好了一点还是坏了一点。书里给这类反馈起了个名字,叫评估性反馈(evaluative feedback)——它只评价你刚才那个动作好不好,不说正确动作是什么3。
这两者的差别,拿学下棋来说最清楚:
| 监督学习 | 强化学习 | |
|---|---|---|
| 拿到什么 | 「这个局面应该走马」 | 走完之后:赢了(+1)或输了(−1) |
| 谁说的算 | 老师给的正确答案 | 只看结果评分 |
| 难在哪 | 模仿得像不像 | 不知道哪个动作才是对的,只能试 |
所以本书给强化学习下的定义是:学习「该做什么」——把局面映射(一一对应)到动作——以最大化一个数值奖励信号。学习者不会被告知该选哪些动作,必须自己试出来哪些动作带来最多奖励4。
2. 两个别人没有的麻烦
定义里藏着全书要对付的两件事。作者明说,这两点是强化学习最重要的标志5:
麻烦一:只能试错。 哪个动作好,事先不知道,唯一办法是把它做出来看结果。这就产生了一个别的学习方式里根本不存在的问题——探索与利用的 两难(exploration–exploitation dilemma):只挑目前已知最好的动作(利用),可能永远发现不了更好的;总去试没试过的动作(探索),眼前又吃亏。作者特意点明,这个两难在监督学习和无监督学习(自己在没答案的数据里找结构)里压根不出现,而它在数学上被研究了几十年,至今没有定论6。第 02 章整章都在讲这个问题。
麻烦二:好处晚点到账。 现在走的这步棋,可能几十步之后才决定输赢。评分来得晚,意味着「刚才哪一步立了功」说不清。这个「功劳该记到谁头上」的问题,早在 1961 年就被 Minsky 点名为这类学习的核心难题(信用分配问题,credit-assignment problem)7——后文所有算法,某种意义上都是在解它。
顺带把「强化学习」这个词本身说清。作者提醒:这个词同时指三样东西——一个问题、一类解法、一个研究领域。问题和解法必须分开:把两者混为一谈,是这类研究里很多糊涂话的源头8。
3. 顶层全景:四个零件
┌─────────────────── agent(就是做决定的学习程序)───────────────────┐│ 策略:局面 → 动作 值函数:这个局面长远看值多少 ││ (可选)想象力:猜环境会怎么回应(第 08 章正式讲) │└──────────┬───────────────────────────▲──────────────┘动作 │ │ 状态 + 奖励(评分)▼ │┌────────────────── 环境(environment)────────────────┐图说:智能体(就是那个做决定的学习程序)看局面、出动作;环境回以新局面和一个分数。循环往复。
除了智能体和环境,一个强化学习系统由四个零件组成,前三个必需,第四个可选9:
| 零件 | 管什么 | 一句话 |
|---|---|---|
| 策略(policy) | 看到局面,选什么动作 | 行为本身 |
| 奖励信号(reward signal) | 每一步环境打回来的那个数 | 定义「好」「坏」 |
| 值函数(value function) | 这个局面长远看能攒多少奖励 | 看得远的眼光 |
| 模型(model) | 猜环境会怎么回应 | 想象力,可选 |
四个零件里最要紧的区分是奖励与值的分别。奖励是眼前的快慢,值是长远的好坏——一个局面可能当下不产奖励,但因为它总通向高奖励的局面,值就高。作者用了一个很重的说法:奖励是第一位的,值是第二位的(没有奖励就没有值);但做决策时我们看的是值,不是奖励——找的是长远带来最多奖励的动作。而值没法直接得到,只能从一生的经验里反复估计。所以作者断言:几乎所有强化学习算法最重要的组成部分,就是一个高效估计值的方法;他还说,「以值估计为中心」也许是六十年来人们对强化学习最重要的一条认识10。
模型的有无也是一条分界线。用模型做规划的方法叫基于模型的方法(model-based),不要模型、直接靠试错学的方法叫无模型方法(model-free)——两者的整合要到第 08 章才完成,这里先记住:本书两种都讲,而且认为它们是同一件事的两个侧面11。
4. 主走查:一个井字棋程序怎么「学会下棋」
空棋盘 ──对手走──▶ 我方局面 ──我走(照值函数选)──▶ 新局面 ──…──▶ 终局(赢=1 / 输或和=0)│ │└──── 赛后把后面的值往回传 ◀┘图说:值函数就是一张表,每个局面格子里存一个数:从这里出发,我赢下来的概率(赢的机会多大)是多少。