老生常談:什麼樣的(機器學習)結果才有推廣(泛化)價值

【方向】發表於2018-05-10

人工智慧是研究一種可以直接處理重要應用的方法,比如試圖改進語音識別或醫學成像的生產系統。但是,大多數研究,即使是在計算機視覺等應用領域,都是在高度簡化的真實世界的代理上完成的。目標識別基準的進展:從像MNISTNORBCaltech101這樣的資料集開始到現在像ImageNetPascal VOC這樣複雜而富有挑戰性的產品,它們本身並沒有什麼價值,但只是因為它產生的見解有助於我們設計更好的實際應用系統。

所以我們會很自然地問:哪些研究結果會推廣到新的應用中?

 

一種可能不會推廣的研究結果是:“演算法A比演算法B更好”,因為不同的應用領域有自己的要求。即使是像物件識別這樣的單一任務,不同的資料集也具有不同的屬性,這些屬性會影響不同方法的執行效果,我們從一系列基準中瞭解了一些不同方法的綜合表現,例如,隨機森林是一個非常好的通用目標分類器,並且合奏效果比單個分類器好得多。這些基準對於確定公司應該聘請的有才能的人員也很有幫助。但是當談到改進我們的演算法時,我認為通過比較不同方法的最終效能很難學到很多東西。

 

作者認為,對於新情況而言,這種結果是不同方法之間權衡的本質。考慮一下我們對神經網路和深度學習的瞭解。與對比分歧相比,持續的對比分歧給出了更準確的樣本,代價是更高的方差更新。在計算曲率時,Hessian優化比隨機梯度下降更好,但實現起來要困難得多,而且每次迭代的成本都要高得多。Dropout是為了減少過度擬合,但是要以梯度變化較大為代價。

 

這些方法都不比其替代方案更好。資料集在大小、複雜度、輔助資訊源以及影響演算法之間權衡的標註噪聲等因素存在很大差異。對於較大的資料集,規則化可能不太受關注,並且計算時間更關鍵。計算資源也有所不同,例如,GPU已經轉移了平衡以支援密集矩陣乘法。所有這些因素都可能在基準和實際情況之間發生變化,因此所有演算法選擇的argmax也可能會發生變化。(這就是為什麼Netflix 從未使用獲獎演算法的原因。)但是權衡本身的性質似乎保持得很好。

 

瞭解權衡並不能為機器學習提供一個標準的方法論,但它確實給出了設計演算法的策略。研究人員一般都在研究幾個問題或資料集,並且我們知道哪些演算法在這個資料集上執行良好以及哪些因素對這些資料集很重要。以這些為參考點,我們可以考慮新問題如何不同(它是否更大?噪聲更大?),並告訴我們在哪個方向上進行調整。從這個起點出發,我們可以執行診斷程式,告訴我們哪些問題會影響效能,以及我們的方法忽略哪些有用的資訊來源,這將影響我們選擇哪些演算法。

 

這是公司花費這麼多錢僱用頂級機器學習研究人員的原因之一。有關機器學習的知識還很多,但知識依然依賴於上下文。(對於我們的研究人員來說,“演算法AB好”的結果不會推廣,否則,將會有一種演算法來統治它們,並且沒有新的洞察空間。)

 

為了防止出現玩具問題

 

譯者注:玩具問題指的是不是直接的科學性卻,而是作為一個說明其他共享的、更復雜的問題的事例,或用更一般的解決問題的技巧解釋一個特定的方式。

 

看起來很明顯,如果我們不能在我們的基準測試中複製真實的世界,我們至少應該嘗試儘可能的接近。我們不應該使用大影像資料集來儘可能代表所有影像的分佈吧?我們不應該在這些問題上構建效能最好的演算法,以便它們接近實際使用的演算法嗎?問題是,資料集越大,演算法越複雜,科學就越難。

 

Brian
Kernighan
曾經說過,“每個人都知道除錯程式比編寫程式要困難一倍。所以,如果你在寫程式碼的時候能夠像你寫程式碼的時候一樣聰明,那麼你將如何進行除錯?”但是仔細執行有意義的實驗比除錯更困難。你需要改變很多因素並測試它們的影響,這需要更多的時間來執行演算法。控制混雜因素需要清楚地理解所有事物如何組合在一起。如果你的演算法處於你可以實現的領域,或者現代計算技術可以執行的領域,那麼你將如何進行實驗呢?

試圖破壞最難的基準通常會將我們推向我們的大腦和計算機可以處理的邊界,這反映在我們執行的各種實驗中。如果你仔細檢視最近的深度學習或使用玩具資料集的貝葉斯非引數論文,你會發現仔細控制的實驗會改變一個因素,並顯示產生了很大變化。我估計作者不僅要表明他們的方法很好好,還要提供證據表明它為什麼很好。但是,鑑於最具挑戰性的基準,作者通常將其最終效能與以前發表在文獻中的資料進行比較。這些數字是使用完全不同的系統獲得的,這是通常很難理解改進的原因。

 

我使用Pascal VOC資料集與Joseph Lim一起簡單地研究了一個物件檢測專案。與當時從事物體檢測工作的大多數人一樣,我們建立在Pedro
Felzenswalb
的可變形零件模型軟體包之上。由於我的原因,我們試圖用不同的SVM軟體包替換它正在使用的SVM軟體包,這導致了效能的急速的下降。這似乎是無稽之談,兩個軟體包都在優化相同的凸面目標上,所以它們不應該是可以互換的嗎?經過一週的挖掘(這些模型需要很長時間才能執行),約瑟夫發現它必須處理停止標準的差異。但是,如果這些微妙的細節實施,總體上會產生如此巨大的影響,那麼我們在不同的個人實施的完全不同的系統之間進行效能比較時應該如何做呢?

 

正如我上面所論述的,如果我們想要推廣的結果,我們需要明確的因果關係解釋為什麼一個演算法的行為與另一個不同。對於實驗需要數天或數週的大型資料集,需要建立在別人程式碼上的複雜演算法,以及時間壓力來擊敗其他人的資料,那麼可能會沒有足夠的時間來執行足夠的實驗來獲得一個完美的答案。對於小資料集,我們應該追查所有細微的問題並解釋事情發生的原因。

 

近年來,神經網路已經粉碎了很多基準,但重要的是要記住,這是在數十年對資料集進行經驗性檢驗之後出現的。事實上,玩具資料集仍然是相關的,即使在現實世界是大資料之都Geoff Hinton仍然在MNIST上進行實驗。我認為這些資料集將繼續在未來一段時間內提供一些獨到的見解。

數十款阿里雲產品限時折扣中,趕緊點選領劵開始雲上實踐吧!

本文由@愛可可愛生活@阿里云云棲社群組織翻譯。

文章原標題《which-research-results-will-generalize》,

譯者:虎說八道,審校:袁虎。

文章為簡譯,更為詳細的內容,請檢視原文 



相關文章