谷歌40人发表59页长文:为何真实场景中ML模型表现不好?
文 | 白鹡鸰
編 | 夕小瑤
~前不久,在賣萌屋NLP群里默默潛水的白鹡鸰被群友提到的一篇Google幾天前放出的59頁超長論文炸得飛了起來。
來,大家來感受一下氣勢浩大的論文首頁
文章名字是Underspecification Presents Challenges for Credibility in Modern Machine Learning。論文作者大都來自Google,橫跨了計算機視覺、自然語言處理、生物信息多個領域,他們一起分析了真實場景中的機器學習模型表現欠佳的原理。
論文題目:
Underspecification Presents Challenges for Credibility in Modern Machine Learning
論文鏈接:
https://arxiv.org/abs/2011.03395
Arxiv訪問慢的小伙伴也可以在【夕小瑤的賣萌屋】訂閱號后臺回復關鍵詞【1127】下載論文PDF~
眾所周知……
在機器學習領域撲騰的朋友們可能都遇到過一個問題:
你拉取了一個美妙的pipeline,訓練了若干個小時,測試效果也的確絲滑:
然后,你高高興興把模型投入了真實場景,結果它的表現變成了這樣:
這差距咋就這么大呢?
谷歌說,這大概率是因為你的模型學到假特征了。拿NLP的情感分析舉個例子,假若你的數據庫中恰好有有一個張三,這張三既不尊老愛幼,也不遵紀守法,獲得了許多負面的評價:“張三真差勁!”。“張三”反反復復和“差勁”一起出現,那么你的模型就有一定概率把“張三”而不是“差勁”學成了檢測負面情感的特征詞。
可能會覺得,這就是數據集不夠完備的問題啊,要不是窮,數據不夠多,這模型必然能學好的!但是,什么樣的數據集才算得上完備呢?哪怕數據集有上億樣本,也一定會存在采樣偏差,那么模型照樣可能學到假特征。這就是文章的核心思想之一:機器學習模型普遍會出現學到假特征的情況。
核心論點和億些例子
文章特地造了一個新詞underspecification用來更加規范地描述這一現象:機器學習模型的訓練pipeline不變時,能夠訓練出參數不同但在訓練集上表現相同的多個模型。從這一表述當中可以看出文章在試圖解釋模型會學到假特征的機理:模型訓練階段的參數量往往遠多于真實場景中描述數據實際需要的特征數量,進而,這些冗余的參數干擾了關鍵特征的學習,導致模型存在多解——顯然,這么多解當中最多只會有一個正確描述了真實世界的情況,所以顯然你通過訓練隨機得到的那個解大概率不是那個全部特征恰好學習正確且完備的那個解。
白鹡鸰看到這里,覺得十分有道理,并期待著下文出現詳細的推導,然而文章卻急著舉了三個(并沒有很直觀的)例子來說明underspecification長什么樣。
首先是一個流行病學的模型,如下圖所示。
▲圖1 流行病曲線因參數變化而發生顯著的集體痊愈預估總時長變化這組圖描述了潛伏期和傳染率兩個參數的細小變化會如何影響到整個感染人口數量隨天數的變化。如圖1所示,在病例上漲的初期,只有有限的40個數據點(圖中左側加粗的藍色線條),如果要用數學模型來擬合這40個數據,當然可以存在(幾乎無限)多種概率分布模型和配套參數的選擇了(圖中給出了兩條可能的曲線代表兩個模型對未來的預測結果,藍色是正態分布模型,紅色是伽馬分布模型)。所以,盡管兩條線的訓練loss相同,但是對未來的預測結果(即真實場景中的表現)是有相當大的差異的。但直到未來到來前,我們無法確定哪個模型是正確的。
此外論文還舉了一個隨機特征模型的例子和一個基因風險評估模型的例子,這里就不展開講了,感興趣的小伙伴自行去論文里翻翻細節~
上面的例子容易被誤解成數據采集的完整度是提升模型表現的關鍵,但是從接下來幾個較為復雜的機器學習模型的例子,可以清楚地看出模型學習到假特征是與數據集規模無關的普遍問題。
圖像處理:對ImageNet數據集中圖像進行對比度、清晰程度、亮度等方面的調整,然后比較ResNet-50和BiT在修改過的圖片上的檢測精度。如表格所示,稍作擾動,精度就會顯著降低(其實就是搬出來了對抗樣本的問題)。
| ResNet-50 | 0.759 (0.001) | 0.197 (0.024) | 0.091 (0.008) | 0.100 (0.007) | 0.607 (0.003) | 0.259 (0.002) |
| BiT | 0.862 (0.001) | 0.555 (0.008) | 0.462 (0.019) | 0.515 (0.008) | 0.723 (0.002) | 0.520 (0.005) |
表1 圖像經過變換后,兩類預測器檢測物體準確率的變化,括號內為準確率的標準差
醫學圖像:測試了在ImageNet數據集上預訓練的Inception-V4在遷移到糖尿病相關視網膜病變和膚質數據集上的效果。對檢測視網膜病變的模型,使用了不同類型相機拍攝的癥狀圖像作為測試數據,模型精度受到很大影響;對分類膚質的模型,發現對于不同類型膚質預測精度的方差不同。這一部分沒有給出太多定量的測試結果,只是簡單地說機器學習模型不能暴力遷移到臨床數據上。
自然語言處理:通過分析基于OntoNotes數據集的BERT學習到的特征與刻板印象關聯是否正確,檢驗模型是否正確理解了語義。以性別關聯的職業偏見為例,雖然預測器們最終正確率相仿,但并不是每一個預測其都正確理解了偏見的成因。
臨床診斷記錄:通過RNN分析美國從2011到2015年703782名急性腎損傷(acute kidney injury, AKI)患者就診數量在一周內變化的規律(精確到小時),發現模型沒能透徹理解就診人數和各科室工作節奏的關聯。
這幾個都是領域內挑選的pipelines也是在各個領域公認表現較好的,盡管如此,訓練出來的模型仍然被證明會學習到數據中的偽關聯,導致在實際任務中表現不佳。看到這里,論文的另一點核心思想也被論證得很明確了:Underspecification是阻礙機器學習模型在真實場景下表現提升的關鍵因素。
問題仍待解決
既然定位了問題,那么如何解決問題呢?遺憾的是,目前還沒有什么革命性的辦法,只能多做測試! 論文的這一部分寫得有點勉強,開始新瓶裝舊酒,提(mìng)出(míng)了三類壓力測試(stress test):
分層表現評估(Stratified performance evaluations):選取部分特征,根據這些特征分層數據集,測試在不同層中預測器的表現是否穩定。比如我們把蘋果按紅綠黃三種顏色分類,然后測試模型在檢測這三種蘋果時的正確率是否相同。
遷移表現評估(Shifted performance evaluations):依據特定的規則將數據映射到另一個數據分布上,然后測試預測器表現是否穩定。比如你將一張蘋果的照片加了一點點動態模糊(人類依舊能識別),如果模型也能認出這還是個蘋果,那它才有可能是一個學到了正確特征的好模型。
對比評估(Contrastive evaluations):用特例集檢驗預測器表現。除卻上述兩種特殊數據測試以外,所有應用場景中可能出現的奇葩案例都應該丟進模型試一試,就像當年那個測試工程師的酒吧笑話一樣。
這三類測試的設計思想并不新奇,本科概統課上必然提過,歸根到底就是舉特例舉反例。文末進行的討論也表達了同樣的思想,再次強調了大家應當具體問題具體分析,盡可能對模型多做測試。
讀后感碎碎念
看了這篇文章,白鹡鸰有些失望,開篇氣勢如虹,仔細一看,問題還是老問題,最期待的原理分析被吃掉了,最后也沒有提出什么新穎的解決辦法。
文章涉及了很多領域,拼拼湊湊,有點像Google幾個小組在各自測評模型后的聯合吐槽文,文中存在不少排版和拼寫問題(這大概是有一頁長的作者團隊的必然后果)。篇幅是很長,但沒有解決科學問題。花了很多筆墨介紹各領域的背景知識,稍微硬核點的推導只能放到附錄。
可以預見的是,工程師們未來在評估模型效果時的工作量又要增加了。樂觀地想,模型在真實場景的表現不佳的原理分析仍未定量給出,那也意味著還有研究空間(和發paper空間),而且連大牛們都說了,模型要針對實際數據間的聯系進行調整才能在應用中提升表現,這不就是給了大家秉持暴力美學給模型加億點點細節的正當理由嗎[doge]。
萌屋作者:白鹡鸰
白鹡鸰(jí líng)是一種候鳥,天性決定了會橫跨很多領域。在上海交大棲息的第五年,進入了名為博士的換毛期。目前以圖像語義為食,但私下也對自然語言很感興趣,喜歡在賣萌屋輕松不失嚴謹的氛圍里浪~~形~~飛~~翔~~
知乎:白鹡鸰,歡迎造訪。
作品推薦:
NLP太卷,我去研究蛋白質了~
總結
以上是生活随笔為你收集整理的谷歌40人发表59页长文:为何真实场景中ML模型表现不好?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【深度学习】非极大值抑制Non-Maxi
- 下一篇: 【NLP】Transformer温故知新