← 返回第 18 天導讀(大人版) 下載打印:PDF 簡體 · PDF 繁體 · 简体网页
第 18 課

用手指點出答案

本課講 2015 年的一篇文章。Vinyals、Fortunato 和 Jaitly 三位科學家發明了「指針網絡」:電腦不再從詞典裡挑詞,而是用「手指」直接指出題目裡的答案。

適合 10 歲左右約 40 分鐘需要:鉛筆、直尺、橡皮筋、一位同伴

1熱身:這是幾號點

紙上有 6 個點,每個點都有編號。看圖回答問題。

123 456
最左邊的是幾號?
最上面的是幾號?
離 3 號最近的是幾號?
一共有幾個點?

每個點上插一顆釘子,用橡皮筋套住所有釘子。橡皮筋會碰到哪幾號?

你發現了嗎?這些題的答案都不是一個「詞」。答案是「第幾號點」。換一張紙,點上 9 個點,答案裡就可能出現 7 號、8 號、9 號。

2翻譯機的詞典

第 15 課講過翻譯機。它讀一句中文,然後一個詞一個詞地寫出英文。每寫一個詞,它都從一本詞典裡挑。這本詞典是練習前就準備好的,裡面有哪些詞,從頭到尾都不變。詞典就像一盒單詞卡片,翻譯機每一步抽出最合適的一張。

第 15 課還講過一個好辦法:翻譯機每寫一個詞,都會回頭看原文,看看這時候該重點看哪個詞。這個本事叫注意力。

可是,有些題的答案不在詞典裡

橡皮筋題的答案是一串點的編號。今天紙上有 6 個點,明天可能有 50 個。假設練習時最多隻有 10 個點,卡片盒裡就只裝了 1 號到 10 號卡片。考試那天來了 50 個點,11 號到 50 號的卡片根本沒有。翻譯機就答不出來了。

3好辦法:不挑卡片,用手指指

回頭看原文時,翻譯機會給原文的每個詞打分。分越高,越要重點看。可是最後,它還是去詞典裡挑詞。

Vinyals 他們想:答案既然就在題目裡,乾脆別查詞典了!分最高的那一個,就是答案。電腦每一步不再挑卡片,而是用手指指向題目裡的一個點。

1讀一遍所有點,記進小本子(第 1 課)
2給每個點打分:像不像下一個答案
3手指指向分最高的點,寫下編號
4蓋住指過的點,準備下一步

↻ 一直指下去,直到電腦指向「完」

已指過 指這裡 1 號2 號3 號 4 號5 號6 號

示意圖:做熱身的橡皮筋題,第 2 步時電腦給每個點打分。1 號已經指過,被蓋住了。2 號分最高,手指就指向 2 號。

把每一步指的點連起來:1 號 → 2 號 → 4 號 → 5 號 → 6 號 → 「完」。這就是熱身橡皮筋題的答案。3 號在裡面,碰不到橡皮筋。你答對了嗎?

這種用手指指答案的電腦程序,叫指針網絡。「指針」就是指東西的針,像鐘錶上的指針,也像老師上課用的教鞭。

4手指不怕點多點少

手指辦法最大的好處是:題目裡有幾個點,手指就在幾個點裡挑。5 個點就 5 選 1,50 個點就 50 選 1。它不用提前準備卡片,所以不會缺卡片。練習時點少,考試時點多,它也照樣能答。

真的管用嗎?誠實地說一說

科學家讓指針網絡練習時最多看 50 個點。考試時直接給它 500 個點,它也能答。可是,一個點都不錯的答案很少。它套出來的範圍,大部分是對的。能答和答得完美,是兩回事。

5論文做了三種題

三種題都給電腦一些點的位置。答案都用點的編號來寫。

① 凸包② 三角剖分③ 旅行商問題 橡皮筋套點連成三角形走一圈,路最短
題目用大白話說,答案長什麼樣
凸包橡皮筋套住所有點,看碰到哪些點。答案是一串點的編號。
三角剖分把點連成三角形的網,三角形儘量胖。每個三角形寫 3 個編號。
旅行商問題每個城市去一次,再回到起點,路越短越好。答案是走的順序。

電腦怎麼學會的?科學家先用別的方法算出很多題的好答案。電腦猜一個答案,再和好答案對一對,猜錯了就調整自己。第 1 課講過,這叫訓練。結果怎麼樣?做凸包題時,指針網絡比第 15 課那種普通翻譯機強很多。做旅行商問題時,城市不超過 20 個,它找的路已經接近最短的路。城市比練習時多,它的路就明顯變長了。

6這和今天有什麼關係

指針網絡的想法很簡單:答案在題目裡,就直接指出來。後來,很多 AI 都用上了這根「手指」。

用在哪裡手指在做什麼
寫摘要遇到人名和數字,AI 直接從原文抄一個詞,不用自己編。2017 年的「指針-生成網絡」就這樣做。
閱讀理解答案就在文章裡。AI 指出答案從第幾個字開始,到第幾個字結束。
聊天 AI 裡面研究者發現,聊天 AI 自己長出了一種抄寫本事:找到前面出現過的樣子,再把後面的詞抄過來。

也要誠實地說:城市非常多時,老牌的專門程序找送信路線仍然比 AI 更準。指針網絡開了一條新路,這條路還沒走完。

7動手:橡皮筋套釘子

玩法(2 個人,約 15 分鐘)

注意:用圖釘要有大人在旁邊,以免扎手。沒有圖釘,就在紙上畫點、畫線。

1. A 在軟木板或厚紙箱上隨便按 6 顆圖釘,旁邊寫上編號 1 到 6。

2. B 用橡皮筋套住所有圖釘,再用手指沿橡皮筋繞一圈,說出碰到的編號。A 記下來。

3. 換 10 顆再做一輪。

第幾輪一共幾個點碰到橡皮筋的點(按順序寫編號)碰到幾個
第 1 輪6
第 2 輪10

你會發現:點的個數每次都不一樣,答案的長短也不一樣。答案裡的每一項都是「第幾號點」。你的手指一個一個指,做的正是指針網絡做的事。

8動手:送信小路

玩法(2 個人,約 15 分鐘)

郵局 12345

郵遞員從郵局出發,給 5 戶人家送信。每戶只去一次,最後回到郵局。

1. 每人在地圖上(或描一張)畫出路線。

2. 用直尺量每一段,加起來寫進表裡。

3. 誰的路最短?最短的路有沒有交叉?

名字路線(寫編號)總長(釐米)
郵局 →         → 郵局
郵局 →         → 郵局

你會發現:「每次走最近的下一家」不一定最短。6 個地方(含郵局)有 60 種不同的一圈,10 個有 181440 種。根本試不完,所以這道題很難。

9詞語小卡片

詞典翻譯機能寫出的所有詞。練習前就定好了,不會變多也不會變少。
指針網絡不查詞典,每一步用「手指」指向題目裡的一個東西,用它的編號當答案。
凸包用橡皮筋套住所有點,橡皮筋圍成的形狀。碰到橡皮筋的點就是答案。
旅行商問題去所有城市各一次,再回到起點,找出最短的一圈路。城市一多就非常難。

10想一想

  1. 只會從詞典裡挑詞的翻譯機,為什麼答不好「橡皮筋碰到哪些點」?
  2. 生活裡還有哪些問題的答案是「從眼前的東西里挑一個」?舉 2 個例子。
  3. 請 AI 把一篇新聞縮短。新聞裡的人名和數字,AI 應該從原文抄,還是自己寫?為什麼?
一句話記住:答案就在題目裡時,電腦不用查詞典,用手指指出來就行。

給家長和老師:本課講的是 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