老生常談:什麼樣的(機器學習)結果才有推廣(泛化)價值
人工智慧是研究一種可以直接處理重要應用的方法,比如試圖改進語音識別或醫學成像的生產系統。但是,大多數研究,即使是在計算機視覺等應用領域,都是在高度簡化的真實世界的代理上完成的。目標識別基準的進展:從像MNIST,NORB和Caltech101這樣的資料集開始到現在像ImageNet和Pascal VOC這樣複雜而富有挑戰性的產品,它們本身並沒有什麼價值,但只是因為它產生的見解有助於我們設計更好的實際應用系統。
所以我們會很自然地問:哪些研究結果會推廣到新的應用中?
一種可能不會推廣的研究結果是:“演算法A比演算法B更好”,因為不同的應用領域有自己的要求。即使是像物件識別這樣的單一任務,不同的資料集也具有不同的屬性,這些屬性會影響不同方法的執行效果,我們從一系列基準中瞭解了一些不同方法的綜合表現,例如,隨機森林是一個非常好的通用目標分類器,並且合奏效果比單個分類器好得多。這些基準對於確定公司應該聘請的有才能的人員也很有幫助。但是當談到改進我們的演算法時,我認為通過比較不同方法的最終效能很難學到很多東西。
作者認為,對於新情況而言,這種結果是不同方法之間權衡的本質。考慮一下我們對神經網路和深度學習的瞭解。與對比分歧相比,持續的對比分歧給出了更準確的樣本,代價是更高的方差更新。在計算曲率時,無Hessian優化比隨機梯度下降更好,但實現起來要困難得多,而且每次迭代的成本都要高得多。Dropout是為了減少過度擬合,但是要以梯度變化較大為代價。
這些方法都不比其替代方案更好。資料集在大小、複雜度、輔助資訊源以及影響演算法之間權衡的標註噪聲等因素存在很大差異。對於較大的資料集,規則化可能不太受關注,並且計算時間更關鍵。計算資源也有所不同,例如,GPU已經轉移了平衡以支援密集矩陣乘法。所有這些因素都可能在基準和實際情況之間發生變化,因此所有演算法選擇的argmax也可能會發生變化。(這就是為什麼Netflix 從未使用獲獎演算法的原因。)但是權衡本身的性質似乎保持得很好。
瞭解權衡並不能為機器學習提供一個標準的方法論,但它確實給出了設計演算法的策略。研究人員一般都在研究幾個問題或資料集,並且我們知道哪些演算法在這個資料集上執行良好以及哪些因素對這些資料集很重要。以這些為參考點,我們可以考慮新問題如何不同(它是否更大?噪聲更大?),並告訴我們在哪個方向上進行調整。從這個起點出發,我們可以執行診斷程式,告訴我們哪些問題會影響效能,以及我們的方法忽略哪些有用的資訊來源,這將影響我們選擇哪些演算法。
這是公司花費這麼多錢僱用頂級機器學習研究人員的原因之一。有關機器學習的知識還很多,但知識依然依賴於上下文。(對於我們的研究人員來說,“演算法A比B好”的結果不會推廣,否則,將會有一種演算法來統治它們,並且沒有新的洞察空間。)
為了防止出現玩具問題
譯者注:玩具問題指的是不是直接的科學性卻,而是作為一個說明其他共享的、更復雜的問題的事例,或用更一般的解決問題的技巧解釋一個特定的方式。
看起來很明顯,如果我們不能在我們的基準測試中複製真實的世界,我們至少應該嘗試儘可能的接近。我們不應該使用大影像資料集來儘可能代表所有影像的分佈吧?我們不應該在這些問題上構建效能最好的演算法,以便它們接近實際使用的演算法嗎?問題是,資料集越大,演算法越複雜,科學就越難。
Brian
Kernighan曾經說過,“每個人都知道除錯程式比編寫程式要困難一倍。所以,如果你在寫程式碼的時候能夠像你寫程式碼的時候一樣聰明,那麼你將如何進行除錯?”但是仔細執行有意義的實驗比除錯更困難。你需要改變很多因素並測試它們的影響,這需要更多的時間來執行演算法。控制混雜因素需要清楚地理解所有事物如何組合在一起。如果你的演算法處於你可以實現的領域,或者現代計算技術可以執行的領域,那麼你將如何進行實驗呢?
試圖破壞最難的基準通常會將我們推向我們的大腦和計算機可以處理的邊界,這反映在我們執行的各種實驗中。如果你仔細檢視最近的深度學習或使用玩具資料集的貝葉斯非引數論文,你會發現仔細控制的實驗會改變一個因素,並顯示產生了很大變化。我估計作者不僅要表明他們的方法很好好,還要提供證據表明它為什麼很好。但是,鑑於最具挑戰性的基準,作者通常將其最終效能與以前發表在文獻中的資料進行比較。這些數字是使用完全不同的系統獲得的,這是通常很難理解改進的原因。
我使用Pascal VOC資料集與Joseph Lim一起簡單地研究了一個物件檢測專案。與當時從事物體檢測工作的大多數人一樣,我們建立在Pedro
Felzenswalb的可變形零件模型軟體包之上。由於我的原因,我們試圖用不同的SVM軟體包替換它正在使用的SVM軟體包,這導致了效能的急速的下降。這似乎是無稽之談,兩個軟體包都在優化相同的凸面目標上,所以它們不應該是可以互換的嗎?經過一週的挖掘(這些模型需要很長時間才能執行),約瑟夫發現它必須處理停止標準的差異。但是,如果這些微妙的細節實施,總體上會產生如此巨大的影響,那麼我們在不同的個人實施的完全不同的系統之間進行效能比較時應該如何做呢?
正如我上面所論述的,如果我們想要推廣的結果,我們需要明確的因果關係解釋為什麼一個演算法的行為與另一個不同。對於實驗需要數天或數週的大型資料集,需要建立在別人程式碼上的複雜演算法,以及時間壓力來擊敗其他人的資料,那麼可能會沒有足夠的時間來執行足夠的實驗來獲得一個完美的答案。對於小資料集,我們應該追查所有細微的問題並解釋事情發生的原因。
近年來,神經網路已經粉碎了很多基準,但重要的是要記住,這是在數十年對資料集進行經驗性檢驗之後出現的。事實上,玩具資料集仍然是相關的,即使在現實世界是大資料之都,Geoff Hinton仍然在MNIST上進行實驗。我認為這些資料集將繼續在未來一段時間內提供一些獨到的見解。
文章原標題《which-research-results-will-generalize》,
譯者:虎說八道,審校:袁虎。
文章為簡譯,更為詳細的內容,請檢視原文。
相關文章
- 類索引器的老生常談索引
- 機器學習之泛化機器學習
- 老生常談-Activity
- 老生常談之再談this
- 老生常談Java虛擬機器垃圾回收機制(必看篇)Java虛擬機
- 機器學習入門(六)——評價分類結果機器學習
- “被看見,才有價值” 從心理學談遊戲中的社交系統遊戲
- 老生常談 String、StringBuilder、StringBufferUI
- 老生常談之CSS的垂直居中CSS
- 老生常談!程式設計師為什麼要閱讀原始碼?程式設計師原始碼
- 如何利用機器學習創造價值?機器學習
- 老生常談之NSProxy和NSTimer
- iOS面試題 — 老生常談iOS面試題
- 學習完Python課程可以幹什麼?應用廣泛廣嗎?Python
- 19、如何使用機器學習結果機器學習
- 老生常談之Flux與Redux思想Redux
- 老生常談-實現一個PromisePromise
- [譯] 通過整合學習提高機器學習結果機器學習
- 老生常談,聊聊前端的資料互動前端
- 強化學習與其他機器學習方法有什麼不同?強化學習機器學習
- 企業價值角度:RPA 機器人是什麼?機器人
- 淺談個性化推薦系統中的非取樣學習
- seo優化的價值是什麼呢?優化
- 老生常談:Promise 用法與原始碼分析Promise原始碼
- 強化學習-學習筆記2 | 價值學習強化學習筆記
- 機器學習--要學點什麼機器學習
- 機器學習到底能創造什麼價值?我們精選了9位從業者的答案機器學習
- 機器學習淺談機器學習
- 機器學習不能做什麼?機器學習
- 什麼是機器學習治理?機器學習
- 機器學習為什麼難以產品化? - kdnuggests機器學習
- 什麼才是定製化IDE的核心價值?IDE
- 機器學習中的正則化到底是什麼意思?機器學習
- 《iOS面試題 - 老生常談》之提示答案iOS面試題
- JavaScript 加減危機 —— 為什麼會出現這樣的結果?JavaScript
- 【機器學習】--迴歸問題的數值優化機器學習優化
- 什麼是資料視覺化,有什麼價值視覺化
- 我們廣泛談論的小程式,其產生的邏輯是什麼?