本課講 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