本课讲 2015 年的一篇文章。Vinyals、Fortunato 和 Jaitly 三位科学家发明了“指针网络”:电脑不再从词典里挑词,而是用“手指”直接指出题目里的答案。
纸上有 6 个点,每个点都有编号。看图回答问题。
每个点上插一颗钉子,用橡皮筋套住所有钉子。橡皮筋会碰到哪几号?
你发现了吗?这些题的答案都不是一个“词”。答案是“第几号点”。换一张纸,点上 9 个点,答案里就可能出现 7 号、8 号、9 号。
第 15 课讲过翻译机。它读一句中文,然后一个词一个词地写出英文。每写一个词,它都从一本词典里挑。这本词典是练习前就准备好的,里面有哪些词,从头到尾都不变。词典就像一盒单词卡片,翻译机每一步抽出最合适的一张。
第 15 课还讲过一个好办法:翻译机每写一个词,都会回头看原文,看看这时候该重点看哪个词。这个本事叫注意力。
橡皮筋题的答案是一串点的编号。今天纸上有 6 个点,明天可能有 50 个。假设练习时最多只有 10 个点,卡片盒里就只装了 1 号到 10 号卡片。考试那天来了 50 个点,11 号到 50 号的卡片根本没有。翻译机就答不出来了。
回头看原文时,翻译机会给原文的每个词打分。分越高,越要重点看。可是最后,它还是去词典里挑词。
Vinyals 他们想:答案既然就在题目里,干脆别查词典了!分最高的那一个,就是答案。电脑每一步不再挑卡片,而是用手指指向题目里的一个点。
↻ 一直指下去,直到电脑指向“完”
示意图:做热身的橡皮筋题,第 2 步时电脑给每个点打分。1 号已经指过,被盖住了。2 号分最高,手指就指向 2 号。
把每一步指的点连起来:1 号 → 2 号 → 4 号 → 5 号 → 6 号 → “完”。这就是热身橡皮筋题的答案。3 号在里面,碰不到橡皮筋。你答对了吗?
这种用手指指答案的电脑程序,叫指针网络。“指针”就是指东西的针,像钟表上的指针,也像老师上课用的教鞭。
手指办法最大的好处是:题目里有几个点,手指就在几个点里挑。5 个点就 5 选 1,50 个点就 50 选 1。它不用提前准备卡片,所以不会缺卡片。练习时点少,考试时点多,它也照样能答。
科学家让指针网络练习时最多看 50 个点。考试时直接给它 500 个点,它也能答。可是,一个点都不错的答案很少。它套出来的范围,大部分是对的。能答和答得完美,是两回事。
三种题都给电脑一些点的位置。答案都用点的编号来写。
| 题目 | 用大白话说,答案长什么样 |
|---|---|
| 凸包 | 橡皮筋套住所有点,看碰到哪些点。答案是一串点的编号。 |
| 三角剖分 | 把点连成三角形的网,三角形尽量胖。每个三角形写 3 个编号。 |
| 旅行商问题 | 每个城市去一次,再回到起点,路越短越好。答案是走的顺序。 |
电脑怎么学会的?科学家先用别的方法算出很多题的好答案。电脑猜一个答案,再和好答案对一对,猜错了就调整自己。第 1 课讲过,这叫训练。结果怎么样?做凸包题时,指针网络比第 15 课那种普通翻译机强很多。做旅行商问题时,城市不超过 20 个,它找的路已经接近最短的路。城市比练习时多,它的路就明显变长了。
指针网络的想法很简单:答案在题目里,就直接指出来。后来,很多 AI 都用上了这根“手指”。
| 用在哪里 | 手指在做什么 |
|---|---|
| 写摘要 | 遇到人名和数字,AI 直接从原文抄一个词,不用自己编。2017 年的“指针-生成网络”就这样做。 |
| 阅读理解 | 答案就在文章里。AI 指出答案从第几个字开始,到第几个字结束。 |
| 聊天 AI 里面 | 研究者发现,聊天 AI 自己长出了一种抄写本事:找到前面出现过的样子,再把后面的词抄过来。 |
也要诚实地说:城市非常多时,老牌的专门程序找送信路线仍然比 AI 更准。指针网络开了一条新路,这条路还没走完。
注意:用图钉要有大人在旁边,以免扎手。没有图钉,就在纸上画点、画线。
1. A 在软木板或厚纸箱上随便按 6 颗图钉,旁边写上编号 1 到 6。
2. B 用橡皮筋套住所有图钉,再用手指沿橡皮筋绕一圈,说出碰到的编号。A 记下来。
3. 换 10 颗再做一轮。
| 第几轮 | 一共几个点 | 碰到橡皮筋的点(按顺序写编号) | 碰到几个 |
|---|---|---|---|
| 第 1 轮 | 6 | ||
| 第 2 轮 | 10 |
你会发现:点的个数每次都不一样,答案的长短也不一样。答案里的每一项都是“第几号点”。你的手指一个一个指,做的正是指针网络做的事。
邮递员从邮局出发,给 5 户人家送信。每户只去一次,最后回到邮局。
1. 每人在地图上(或描一张)画出路线。
2. 用直尺量每一段,加起来写进表里。
3. 谁的路最短?最短的路有没有交叉?
| 名字 | 路线(写编号) | 总长(厘米) |
|---|---|---|
| 邮局 → → 邮局 | ||
| 邮局 → → 邮局 |
你会发现:“每次走最近的下一家”不一定最短。6 个地方(含邮局)有 60 种不同的一圈,10 个有 181440 种。根本试不完,所以这道题很难。
给家长和老师:本课讲的是 Oriol Vinyals、Meire Fortunato、Navdeep Jaitly 2015 年的论文 Pointer Networks(NeurIPS 2015)。论文把第 15 天加性注意力的权重直接当作输出分布:解码器每一步在输入位置上做 softmax,输出的是输入元素的下标。输出类别数因此等于输入长度。论文在凸包、Delaunay 三角剖分和平面旅行商问题上用监督学习训练,标签来自现成解法。
讲义中的“卡片盒”比喻、热身 6 个点、打分柱状图、三种题的小图和送信地图都是示意,不是原文内容。三角剖分小图只为说明“连成三角形”,没有严格按 Delaunay 规则画。走法数量按 (n−1)!/2 计算,不来自论文。送信地图最短的一圈是:邮局 → 1 → 3 → 4 → 2 → 5 → 邮局(或反向)。
想深入可看本站的 第 18 天中文导读,代码见开源项目 30u30 第 18 天目录(英文)。
极客教育 jikejiao.com 原创讲义 · 2026-10