捷徑學習(shortcut learning)
/ SHORT-kut LER-ning /
捷徑學習,指的是模型用省事的法子解決一個任務——靠鑽一個「恰好在訓練資料上管用」的膚淺線索的空子——而不去學那個本意要它學的、更深的本領。它相當於機器版的那個學生:靠背下「答案通常是C」來通過考試,而非真懂這門學科。模型給出了對的答案,於是皆大歡喜,可它學到的完全是錯的東西;而一旦那個省事的線索失了靈,幻象便應聲破碎。
歷史上那個經典的警示,是「聰明的漢斯」——1900年代初德國的一匹馬,似乎能用蹄子敲地來做算術。它根本不會數數——它讀的是提問者身體語言裡那些細微、無意識的線索,以此知道該在何時停止敲擊。把那個知道答案的人撤走,漢斯就抓了瞎。模型幹的正是這件事:它去找那個「最容易預測出標籤」的訊號;如果一條捷徑比真任務更容易學,那它每一次,學的都會是這條捷徑。
捷徑學習之所以要緊,是因為它解釋了機器學習裡一種根深蒂固、反覆出現的失望:模型在基準上拿滿分,卻無法泛化。它與虛假相關直接相連(那條捷徑通常就是一個虛假相關),也正是「基準表現可能極具誤導性」的緣由。一個艱難的真相是:捷徑並非一個可以打補丁修掉的bug,而是「模型如何優化」的一個自然後果——它們走的是阻力最小的那條路。要避開它們需要刻意的功夫:更難、更多樣的資料、專門為「去掉那些捷徑」而設計的測試、以及對「一個高分究竟證明了什麼」的謙卑。
一個閱讀理解模型在某個基準上拿到了近乎滿分——後來有人發現:它根本不用讀那段文章,僅靠挑出「與問題用詞重疊最多」的那個選項,就能答對許多題。它學會的是一套猜題的小把戲,而非理解。在那些把戲失靈的題目上,它的表現並不比瞎矇強。
不做任務就刷爆基準:這正是一條「習得捷徑」的標誌。
捷徑學習,不是模型偷懶或出了毛病——它恰恰是在做我們要求它做的事:沿著可得的最省力路徑去優化那個指標。過錯通常出在資料和基準上,是它們留下了一條省事的路。修正它,意味著去改資料或改測試,而不是去責備模型。