第 3 章 · 第一部分 地图

不只是神经网络

搜索、规则与试错。这三种「老式」AI 至今仍在你的导航软件、下棋程序和游戏角色里工作,而且它们是理解后面所有内容的必要背景。

人工智能导论 · 上海交通大学「AI+教育」平台 · 讲义版幻灯片

这一讲对应《Hello, AI》第 3 章《不只是神经网络》。主线约 8 分钟的阅读量,展开讲一节课。

本章要回答的问题:不靠「学习」的 AI 是怎么工作的?它们今天还有用吗?

开场一秒钟之内

你刚才用过一个 1968 年的算法而且它今天仍然没有被取代。

打开地图,输入目的地

一秒钟之内,它从几千万个路口和路段里,
给出一条总代价最小的路线。

  • 这里面没有神经网络没有一个参数是从数据里学出来的。
  • 也没有任何「学习」它每一次都从零开始,把图走一遍。
  • 它做的是搜索在可能性的网络里找一条最好的路。

开场的目的是打掉一个默认假设:学生这几年听到的 AI 几乎全是「学出来的」,所以会以为凡是聪明的软件都在学习。

可以现场问:你觉得地图给你规划路线,用的是不是神经网络?多数人会说是。

补一句:预测这段路要堵多久,确实可能用模型;但找路本身不需要。任务和方法要分开看——这是第一章那个定义的直接应用。

本章的位置

这一章讲三种不靠学习的 AI:
搜索、规则、试错。

它们是第一章那张图上最外圈的居民。新闻很少提它们,但它们无处不在——
而且今天最强的系统,恰恰是把它们和神经网络组合起来的结果。

回到第一章那张六个圈的图,指一下最外圈。这一章就住在那里。

强调「组合」二字:本章不是讲历史遗迹,是讲现代系统的一半骨架。

?

不靠「学习」的 AI 是怎么工作的?
它们今天还有用吗?

搜索

在大量可能性里高效地找

规则

保证某些事一定或一定不发生

试错

在有后果的行动中学会决策

这三张卡片就是本章的三节。课末会回到这一页,加上第四张:神经网络——「从数据里得到一个好的判断」。

一Part One

搜索:在可能性的森林里找一条路

很多看起来需要智能的问题,本质上都是「在大量可能性里找一个好的」。难点从来不是不会找,而是可能性太多。

组合爆炸剪枝启发式A*
搜索它们是同一个问题

这四件事,在算法眼里长得一模一样

走迷宫

状态是你所在的格子,动作是四个方向,目标是出口。

排课表

状态是已排好的部分课表,动作是再放一门课,目标是不冲突。

下棋

状态是当前局面,动作是一步合法走法,目标是赢。

规划动作

状态是机器人的位姿,动作是一次移动,目标是拿到杯子。

搜索算法的思路很朴素:从起点出发,一步步展开可能的下一步,直到碰见目标。

让学生自己再补两个例子(解数独、拼图、导航、排考场)。能把一个问题翻译成「状态 + 动作 + 目标」,就已经会用搜索的语言思考了。

搜索为什么不能全试一遍

朴素做法在真实问题上不可行

国际象棋,每步约 30 种走法30¹⁰只走十步,接近六百万亿种
围棋,每步两百多种走法>10¹⁷⁰可能的对局数超过宇宙里的原子数
第二章那堵墙

组合爆炸:可能性的数量随问题规模指数增长。这不是「计算机不够快」,是增长的速度压倒了任何硬件的进步。

所以聪明的搜索,全部力气都花在「不去看大多数分支」上。

六百万亿这个数字可以换算一下:就算一秒钟能看十亿个局面,也要两万年。

这一页是为了让下一页的两个技巧显得必要,而不是显得巧妙。

搜索两样省力的东西

剪枝与启发式

技巧一

剪枝

早早判断某个分支不可能更好,就不再展开它。省下来的不是一个节点,是它下面的整棵子树。

下棋程序里,这一步就能把要看的局面砍掉几个数量级。

技巧二

启发式

用一个便宜的估计告诉算法「往哪边走更有希望」,优先展开最有希望的那个。

地图上的估计就是直线距离:算起来几乎不花时间,却足以指方向。

「便宜」是关键词:如果估计本身和真答案一样贵,那就没有意义了。启发式的艺术在于用很低的代价换来一个大致靠谱的方向。

A*1968

启发式搜索的经典

起 终 浅色:被展开过的格子;空白:从未看过的格子 每个格子打一个分 f(n) = g(n) + h(n) g:从起点走到这里已经花了多少 h:到终点还要多少的估计(直线距离) 每次展开 f 最小的格子。 只要 h 从不高估,第一次取出终点时走过的一定是最短路。 h ≡ 0 就是 Dijkstra:正确,但四面八方都要探一遍。
A* 给每个格子打分 f = g + h,每次展开分最低的。浅色格子是它看过的。
看图时注意
  • 它看过的格子很少远少于整张图——那就是启发式在起作用。
  • 它朝着目标偏盲目搜索会向四面八方均匀铺开。
  • 它仍然保证最短省力和最优,这一次可以兼得。
实验 · A* 寻路

现场演示:在网格上画几堵墙,跑一遍 A*,让学生看展开的范围。再把启发式关掉(h 恒为零),对比探索面积——这一下对比比讲十分钟都有效。

关掉启发式之后的 A*,就是 1959 年的 Dijkstra 算法:仍然正确,但把各个方向都均匀探索一遍。

A*f = g + h

三个数,一条规则

g

已经走了多远

从起点到这个节点已经确定的代价。这是事实,不是估计。

h

还要走多远(估计)

从这个节点到目标的估计代价。在地图上就是直线距离。

f

这条路总共值多少

f = g + h。算法每次都展开 f 最小的那个节点,其余的先放着。

请把 g 和 h 的性质说清楚:一个是已知的事实,一个是猜的。A* 的全部聪明之处,就在于把「已知」和「猜测」加在一起排序。

A*为什么一定是最短路

关键在一个条件上:从不高估

只要估计 h 从不高估真实的剩余代价,A* 找到的第一条通往目标的路,就一定是最短的。

术语叫「可采纳」(admissible)。直线距离在地图上显然满足:两点之间没有比直线更短的路。

为什么
  • 目标第一次被取出时它的 f 值就等于真实最短路的长度。
  • 任何还没展开的路f 值都不小于它,而 f 从不高估,所以真实长度也不会更短。
  • 于是没有反例不存在一条「被漏掉的更短路」。

这是本章唯一需要一点推理的地方,讲不讲取决于班级。核心直觉一句话就够:因为估计永远偏保守,所以没有被低估的好路会被提前放弃。

A*估计的好坏决定一切

三种 h,三种结局

h ≡ 0

退化成 Dijkstra

仍然正确,但各个方向均匀探索,慢得多。1959 年的算法,至今仍在网络路由里跑。

h ≈ 真实值

几乎笔直走过去

几乎不浪费一步。估计越接近真实,搜索越省力。

h 偏大

更快,但可能不是最短

失去最优性保证,换来速度。工程上常常故意这样做。

第三张卡片值得多说一句:这不是偷懒,是有意识的权衡。用户宁要一秒钟给出的九十五分答案,也不要一分钟给出的满分答案。

这个「用一个便宜的估计引导昂贵的搜索」的思想,是后面 AlphaGo 的核心,也是今天推理模型「先想一想再回答」的远亲。

搜索的家族区别只在两件事

按什么顺序展开,有没有用估计

算法展开顺序用估计吗保证最优典型用途
广度优先离起点近的先否是(步数意义上)小迷宫、社交网络里的「几度人脉」
深度优先一条路走到黑再回头否否拼图、排课这类「找一个可行解」
Dijkstra已走代价最小的先否是路网、网络路由
A*已走代价 + 估计剩余最小的先是是(估计不高估时)导航、游戏寻路、机器人规划
束搜索每层只保留最好的几个是否机器翻译和语言模型解码
蒙特卡洛树搜索随机模拟多的分支先是(用模拟结果)否围棋、复杂博弈

不要求记表,要求看懂两列:展开顺序和用不用估计。整个家族的差别就在这两件事上。

加粗的两行是后面的伏笔:束搜索通向第八章的语言模型解码,蒙特卡洛树搜索通向本章最后的 AlphaGo。

一个容易被忽略的事实

语言模型生成一句话,
本质上也是在一棵树上搜索。

状态是已经写出的部分,动作是下一个词,束搜索是它常用的一种策略。
搜索从来没有离开过 AI,它只是换了个名字藏在「生成」里。

这一页请务必讲,它把本章和第八章缝在一起。学生读到「大模型在生成」时,脑子里应该有一棵正在被剪枝的树。

深蓝1997

这条路的巅峰,也几乎是它的终点

  • 一秒钟评估两亿个局面纯算力。
  • 几十年积累的开局库和残局库纯人工。
  • 大师参与调校的评估函数「这个局面谁占优」,由人写出来。

它没有「学」过任何东西。每一分能力都是人设计和算力堆出来的。

为什么围棋不行
  • 分支太多剪枝也压不住的量级。
  • 写不出评估函数「这个局面谁占优」,没有人能写成公式。

这块缺口,二十年后由神经网络补上——本章最后一节。

深蓝是第一次浪潮那套思路的迟到胜利。它证明了在结构清晰、评估可写的问题上,搜索加算力可以打败人类顶尖。

也正因为如此,它的失败边界特别清楚:评估函数写不出来的地方,这条路立刻走不通。

二Part Two

规则:把知识写成 if-then

第二章讲过它作为「专家系统」的兴衰。这一节讲它今天以什么形态活着——而且活得比很多人以为的好。

透明可控写不完混合体
规则长什么样

一条规则,和它的两个优点

如果学生连续三次作业未交,
且最近一次测验低于六十分,
则标记为需关注。

几百条这样的规则串在一起,配一个推理引擎按顺序匹配,就是一个规则系统。

它为什么没有被淘汰
  • 透明每一个结论都能追溯到触发它的那条规则。
  • 可控改一条规则就精确改变一处行为,不需要重新训练任何东西。

这两个词请写在黑板上:透明、可控。它们是神经网络至今最欠缺的两样东西,也是规则系统在高风险场景里的护身符。

规则它活在哪里

在监管严格的地方,它从未退出

银行

反欺诈的第一道防线。

税务

合规检查与申报校验。

医院

用药冲突提醒。

航空

调度约束与安全检查。

这些地方需要的不是「大概率正确」,而是每一个决定都能解释、都能审计。

问学生:如果银行的风控完全交给一个神经网络,客户被拒贷时,柜员该怎么解释?这就是规则系统存在的理由。

案例一份学情预警规则集

任何一所学校的教务系统都可能有的东西

规则 1 连续 2 周未提交作业       → 标记「作业风险」
规则 2 本学期出勤率 < 80%        → 标记「出勤风险」
规则 3 最近两次测验平均分 < 60     → 标记「学业风险」
规则 4 同时命中任意两条        → 升级「需关注」,通知班主任
规则 5 「需关注」且 14 天内无回访记录  → 提醒年级组长
例外 A 有病假记录的周不计入规则 1、2
例外 B 转学生入学 4 周内不触发规则 3

这份规则集是真实风格的。请学生盯着它想一分钟,然后问两个问题:它好在哪里?它会在哪里出问题?下一页给出对照。

案例两面

好处和问题,都一目了然

好处
  • 可解释每个标记都说得出是哪条规则触发的,家长问起来有据可答。
  • 可调要放宽或收紧,改一个数字就行。
  • 零数据起步不需要任何历史数据就能上线。
问题
  • 门槛是拍脑袋定的为什么是 80% 而不是 75%?
  • 例外会越加越多维护成本随时间上升,最后没人敢动。
  • 抓不住没写到的模式比如「成绩没掉,但突然不再参与课堂讨论」。

右边第三条是重点:规则只能捕捉被想到过的模式。真正危险的信号,往往是没人想到要写进规则里的那一类。

今天的实际做法

模型负责发现,
规则负责边界。

机器学习模型在上百个特征上学出一个「风险概率」;
规则系统在它上面决定什么时候通知谁、什么情况必须人工复核、哪些学生绝不能被自动标记。

「模型认为这笔交易 95% 正常,但金额超阈值且发生在凌晨,规则要求人工复核。」

这是本节最该带走的一句话。第十二章你会看到智能体被要求「执行删除操作前必须确认」——那就是规则在给神经网络系安全带。

三Part Three

试错:在奖励里学会决策

它不搜索,也不靠人写规则。让一个智能体在环境里反复尝试,做对了得奖励,做错了受惩罚,慢慢学会在每种情况下该做什么。

智能体奖励价值探索与利用
强化学习一只老鼠

它怎么学会走迷宫

  1. 一开始乱走完全不知道奶酪在哪,动作近乎随机。
  2. 偶然走到奶酪那里得到一次奖励。这是整个过程里唯一的外部信号。
  3. 下一次在同样的岔路口它会稍微倾向于上次走对的方向。
  4. 几百次之后它对每个位置、每个方向都有了一个「值多少」的估计。
  5. 于是它径直走向奶酪这个估计就是强化学习里的价值。

学习的过程,就是把奖励沿着走过的路一点点往回传,让早期的正确决定也分到功劳。

「往回传」这个动作是理解强化学习的关键,也是下一张图要画的东西。可以在黑板上画一条走廊,从出口往回标 100 / 80 / 64 / 51…

强化学习一个循环

智能体、动作、环境、奖励

智能体维护一张「什么情况下做什么值多少」的表 环境迷宫、棋盘、市场、一段对话 动作 a 新状态 s′ 和奖励 r 没有标签,只有行动之后的奖励;学的是「这种情况下该做什么」 探索 vs 利用:走已知的好路,还是试试别的岔路
智能体做出动作,环境返回新状态和奖励。
和前两种方法的区别
  • 数据是自己产生的它选择走哪条路,就决定了它能看到什么。
  • 信号很稀疏可能走几百步才收到一次奖励。
  • 行动有后果环境被改变了,下一步面对的是新的世界。
实验 · 迷宫里的强化学习

第三条呼应第一章「四种能力」里的决策:前三种能力错了可以重来,决策错了世界已经变了。

强化学习独有的难题

探索与利用的矛盾

只利用

一直走那条已知能拿到奶酪的路

稳定,但会困在一个平庸的解里。旁边那条更短的路,它永远不会发现。

只探索

每次都冒险试试别的岔路

见识广,但永远拿不到稳定的回报。

监督学习没有这个问题:数据是给定的,模型只负责从中拟合规律。人的一生也在做这个权衡,只是我们不用这个词。

可以举一个学生自己的例子:每次去食堂是点那份已知好吃的,还是试试没吃过的?完全不试,你就永远吃不到最好的那家。

强化学习价值怎样长出来

奖励沿着走过的路往回传

奖励往回传
离奶酪越近的格子,值越高。

请学生留意颜色是从出口往回蔓延的,不是从起点往前。这和人的直觉相反,却是强化学习最本质的机制。

深入Q 学习 · 1989

一张表怎样学会走迷宫

智能体维护一张表 Q(s, a):在状态 s 下采取动作 a,长远来看值多少。开始时全是零。

Q(s,a) ← Q(s,a) + α [ r + γ·max Q(s′,a′) − Q(s,a) ]

括号里是「实际得到的」减去「原来以为的」,也就是这一步的意外。

两个旋钮
  • α 学习率每次意外改变多少估计。
  • γ 折扣未来的奖励比眼前的打几折。

漂亮的性质:只要每个状态动作对被试够多次,表格最终会收敛到最优策略,不管智能体一开始有多笨。

公式不必推,讲清「意外」这个词即可:学习就是不断修正预期,修正的幅度由 α 决定。这与第四章的梯度下降是同一种精神。

Q 学习它的天花板

状态一多,表就存不下

围棋的状态数>10¹⁷⁰任何表格都装不下

解决办法不是把表做大,而是不再用表——用一个神经网络去近似这个 Q 函数。

2013

深度 Q 网络

DeepMind 让一个卷积网络直接看着屏幕像素学会了几十种雅达利游戏:同一个网络、同样的超参数。

它证明了强化学习可以直接从原始感知输入学习,不需要人手工设计状态。这就是「深度强化学习」,也是 AlphaGo 的前奏。

这一页是本章两条线的交汇点:老方法(强化学习)+ 新工具(神经网络)。后面 AlphaGo 是同一个配方的放大版。

深入强化学习的三十年

每一次出圈,都和神经网络绑在一起

1992
TD-Gammon神经网络自我对弈学西洋双陆棋,没看过任何人类棋谱,几个月达到世界顶尖,还发现了人类没用过的开局。比 AlphaGo 早二十四年。
2013
深度 Q 网络直接从屏幕像素玩雅达利,几十款游戏达到或超过人类。
2016–17
AlphaGo / AlphaZero博弈线的顶点。2019 年在《星际争霸》和《Dota 2》上达到职业水平。
2017
近端策略优化(PPO)更安静但影响更大:它让强化学习变得稳定好用。
2022
RLHF同一套方法被用来把语言模型对齐到人类偏好。从棋盘到聊天助手,中间隔着的只是「奖励从哪里来」。

TD-Gammon 值得多讲一句:1992 年就证明了「自我对弈 + 神经网络」可行,当时几乎没人注意。好想法早于它的时代,是这个领域反复出现的故事。

伏笔第九章

语言模型里的强化学习,和迷宫老鼠是同一件事

强化学习的词在迷宫里在语言模型里
状态老鼠所在的格子到目前为止的对话(问题 + 已写出的部分)
动作往四个方向之一走一步写下一个 token
一局从入口到奶酪从问题开始到回答结束
奖励奶酪,自动出现这个回答好不好——要有人定义

做法:先请人对不同回答排序,训练一个「奖励模型」学会像人一样打分,再让它给语言模型的每一局打分。

最后一行是关键差异:迷宫里奶酪自己在那儿,语言里「好」是人定义的。整个对齐问题的难度都来自这一格。

一个只有强化学习才有的麻烦

智能体学到的是怎样拿到奖励,
而不是奖励想表达的那个东西。

迷宫里的老鼠如果发现「原地打转也能拿到一点奖励」,它就会打转。
语言模型如果发现「写得长、语气肯定、多用『当然可以』」能拿高分,它就会这样写——不管内容是否更好。

这叫奖励破解,是第九章「对齐」阶段最头疼的问题之一。

请学生举一个身边的奖励破解例子:为分数而学、为 KPI 而工作——凡是用指标衡量的地方,都会出现优化指标而非目标的行为。

四Part Four

三者合流:AlphaGo 是怎么赢的

很多报道把它写成「神经网络的胜利」。更准确的说法是:它是本章三种方法与神经网络的合流。

2016 · 四比一蒙特卡洛树搜索自我对弈策略与价值网络
2016 年 3 月AlphaGo 4 : 1 李世石

每一步之上,是一棵可能性的树

AlphaGo
每一步之上,是一棵可能性的树。

如果时间允许,可以提一句第二局第 37 手:一步人类棋手判断为「错误」的棋,后来被认为是全局的关键。它来自自我对弈,而不是人类棋谱。

拆开看它用了本章的全部

三样老方法,加一块新补丁

搜索

蒙特卡洛树搜索

每一步向前推演几十步,评估各种走法的后果。

试错

几百万盘自我对弈

把一个只会模仿人类棋谱的网络,练成超越人类的棋手。

规则

围棋规则本身

搜索时判定合法走法和胜负的硬约束。

神经网络

补上深蓝那块缺口

策略网络告诉搜索先考虑哪几步,价值网络告诉搜索谁占优。

请把第四张卡片和前面深蓝那一页对上:人写不出的评估函数,这一次是从数据和自我对弈里学出来的。搜索的框架本身一点没变。

一年后AlphaZero

不看任何人类棋谱

  • 只给规则从零开始自我对弈。
  • 几天之内在围棋、国际象棋和将棋上都超过了之前所有程序。
它逼出的一个问题
如果机器不需要人类的经验也能变强,
那么在哪些领域,人类的经验反而是一种限制?

这个问题适合留给课堂讨论。提示一个方向:人类经验在规则明确、可以自我对弈的领域最容易被超越;在规则模糊、无法大量试错的领域(教育、医疗、政策)则仍然是主要依靠。

同一个模式,今天在更大的尺度上重演

语言模型给出候选动作,
搜索和规则约束执行,
环境反馈作为奖励。

这就是第十二章那个会调用工具的智能体的骨架。
本章讲的「老方法」并没有过时,它们换了一种形式,藏在最新的系统里。

这一页是本章通向第十一、十二章的桥。学生读到「智能体」时,应该能认出这三样东西。

带走一句话

真正的系统,需要它们全部。

神经网络解决「怎样从数据里得到一个好的判断」;
搜索解决「怎样在大量可能性里高效地找」;
规则解决「怎样保证某些事一定或一定不发生」;
强化学习解决「怎样在有后果的行动中学会决策」。

回到本章第三页那三张卡片,现在补上第四张。这四句话可以贴在整门课的墙上:以后看到任何系统,先问它用了哪几样。

自测第 1 题

地图软件的路线规划,为什么不用神经网络?

参考答案 因为这是一个结构清晰的搜索问题:路网是明确的图,代价是明确的距离或时间,A* 这样的算法能在保证最优的前提下快速求解,不需要从数据中「学习」。神经网络在这里可能用于预测路段拥堵——那是预测任务——但找路本身用搜索更合适。

先让学生回答,再按右键展开答案。这道题考的是第一章的框架:先问任务是什么,再问方法该用哪种。

自测第 2、3 题

启发式函数「从不高估」这个条件,为什么对 A* 这么重要?

为什么强化学习必须处理「探索与利用」的矛盾,而监督学习不需要?

参考答案 二、它保证当目标第一次被取出时,没有任何未探索的路径可能更短,所以找到的一定是最优路。如果启发式高估了某些方向,算法可能提前放弃那条实际上更短的路。

三、监督学习的数据是给定的,模型只是从中拟合规律。强化学习的数据来自智能体自己的行动:它选择走哪条路,就决定了它能看到什么;只走已知的好路,就永远发现不了可能更好的路。

第三题可以延伸到推荐系统:如果只推你已经点过的类型,你的兴趣会被越圈越窄——这是探索与利用在产品里的真实后果。

自测第 4 题

AlphaGo 里的神经网络,具体替代了深蓝方法中的哪个部分?

参考答案 深蓝靠人手写的局面评估函数判断谁占优、该优先考虑哪些走法。围棋上没有人能写出这样的函数,AlphaGo 用价值网络和策略网络从数据和自我对弈中学出了它们。搜索的框架本身仍然保留——变的是评估从哪里来,不是找法。

这道题如果全班答对,本章的核心就到位了:新旧方法不是替代关系,是补位关系。

收束第 3 章

这一章留下什么

  • 搜索把问题变成「状态、动作、目标」,靠剪枝和启发式对抗组合爆炸;A* 在估计从不高估时保证最短路。
  • 搜索没有离开 AI:束搜索在语言模型解码里,蒙特卡洛树搜索在 AlphaGo 里。
  • 规则系统靠透明和可控活在监管严格的地方;今天的做法是两层——模型负责发现,规则负责边界。
  • 强化学习从奖励里学决策,独有的难题是探索与利用;它学到的永远是「怎样拿到奖励」,于是有奖励破解。
  • AlphaGo 是四者的合流:搜索的框架、自我对弈的训练、规则的硬约束,加上神经网络补上「人写不出的评估函数」。
本章术语
搜索启发式A* 算法规则系统强化学习奖励探索与利用蒙特卡洛树搜索

继续读

正文与「深入」段落:ai4edu.sjtu.edu.cn/helloai/read/beyond-neural-networks/
下一章:第 4 章 规则不是写出来的,是学出来的

留三到五分钟做本页的回顾,让学生用自己的话复述其中一条。

阅读本章正文 ↗ 全部幻灯片

放映快捷键

← → 空格
上一页 / 下一页
数字 + 停顿
跳到第 N 页
O
缩略总览,点一张跳过去
N
讲者备注抽屉
S
改成一步一点(默认一次一整页)
F
全屏
P
打印 / 导出 PDF(每页一张)
Esc
退出总览或关闭本窗

鼠标移到屏幕底部会显示控制条;页码记在地址栏的 # 后面,刷新不会丢。
手机上:竖着拿会自动把版面转过来(底下那条里的「转向」可以切回去),点右半边或往上滑翻页。

在手机上怎么翻

竖着拿的时候,整张幻灯片会自动转过来,字大一倍;把手机横过来也一样能看。

点右半边或往上滑是下一页,点左半边回上一页。屏幕底下那条里有缩略总览和讲者备注。

或者读这一章的正文 →