潑冷水!為什么說機器學習在很多方面被高估了?
在Quora論壇上研究編程語言的Tikhon Jelvis回答說:我發現,機器學習在很多方面都被高估了,無論是經驗不足的人,還是更有害的,人們都對這一領域投入了大量的資金。
最普遍的看法是,機器學習比實際我們認為的更強大。機器學習只擅長于進行機器學習,而在其他領域的表現都很糟糕。但如果你聽一些人的話之后,你會相信只要裝入一個神經網絡,你可以在任何問題上得到一個可靠的解決方案。
我主要把這類問題歸咎于人們對機器學習領域缺乏經驗以及錯誤認知之后產生的熱度,但這也是那些對于較常人掌握機器學習更好的人大肆宣傳的結果。Karpathy的最近像病毒般傳播的軟件2.0就是一個很好的例子:他提出了一些有趣的觀點以給人留下深刻的印象,例如他說深度學習是電腦編程的未來。這篇文章從某種程度上忽略了一些利基市場(未來愿景、演講、NLP、機器人技術)以外的問題,而我說到的這些問題不太適合采用深度學習這種方法。不僅僅是系統軟件能處理的問題,大多數有經驗的電腦工程師能通過寫幾百行代碼甚至都要比機器學習更有效的得到業務邏輯領域的解決方案。
如果說垃圾收集和高級語言可以代表“軟件2.0”的話,那深度學習甚至不能算是“軟件3.0”。神經網絡是“你的機器學習工具箱里的另一個工具”,但更重要的是,機器學習只是你的編程工具箱中的另一個工具!
它有它的真正的后果。我看到人們將大量資源投入到機器學習的系統中,從而得到更簡單、更有效的解決方案。讓我們來探討關于商店里的商品需求預測問題。你可以試著把這個問題當作一個純粹的機器學習系統來做,但是這個系統將會出現掙扎并最終失敗,因為它需要從你的數據中提取出你需要的所有結構。有很多因素都很重要,但有些因素不會在你可以實際操作的數據中觀察到。我們最好在實驗上結合這樣明確地分析一堆事情(基于價格和促銷的彈性)并依賴于他人的經驗(消費者時尚的變化)等進行模型設計并作出總結。
解決許多難題的理想系統必須是一種混合模式:基于數據的機器學習,一些明確的建模,以及能使專家和用戶互動的模式。但有太多的人不會設計這樣的問題,因為他們把機器學習看成是一種萬能藥,并看到構建一個只以得到數據為目標的黑匣子。
我對上面說到的這些可能出現的情況并不感到驚訝。無論在學術或工業領域,進行一項研究的公開秘密是,只有那些可以采用并正常工作的東西才能看到光明的未來。有多少個團隊試圖利用機器學習技術解決問題而最終失敗了?如果你和活躍在該領域的研究人員聊天,你不會聽到他們說到關于失敗的案例。(舉個例子:我知道有一群人嘗試過在程序合成中對各種問題引入深度學習最終失敗了,但這只是我通過小道消息聽到的。)
但事實上,人們相對的高估了機器學習對產品的影響。現在很多消費產品都以機器學習技術為核心,例如我們可以想想Quora和Facebook的動態消息提示。由于機器學習是一種新興的、技術含量高的技術,這些產品的成功必須歸功于機器學習!
但問題是,我打賭機器學習對它們的影響是微乎其微的:大部分的效用都是由社會需求而設計的工具來支持的。真正重要的是,Quora有一個自主信息流,來讓用戶去關注特殊的人和話題。如果一個更加粗糙的算法(也許是一個基于啟發性的規則引擎)能夠擁有一個比Quora更好的消息流,我不會感到驚訝。我使用其他與Quora論壇類似的產品,但沒有任何“機器學習”作為后臺支持(比如Reddit)。事實上,我的Reddit首頁在讀取我關心的事情上這一欄要比Quora上做得更好!(Quora的其他設計,例如非機器學習的部分,都要比Reddit上的更適合我。)
有一件事我覺得很有必要探究的是有多少交易商店沒有全心全意地接受機器學習。當然,也有一些人繼續用相對直接的手動調優算法來獲取不干凈的金錢。同樣的,在規則引擎中如果導入了專家編寫的啟發法,它得到的效果將出奇的好!有些策略是通過機器學習技術(也被稱為“統計”)開發的,但也有一些是基于深度領域的專業知識而產生的。
我的觀點不是機器學習對貿易毫無用處,而且它顯然有可用之處。重點在于它并不是你所期望去使用的,甚至與你所期待的相反。
最終,我認為機器學習被高估是因為對于任何嘗試在生產中采用機器學習系統的人來說,都會發現機器學習要比看上去的復雜得多。
你可能認為你可以很好的利用一些你已經聽說過的機器學習算法,但在你使用的過程中,它可能不會像你從博客文章或文章中所看見的效果那樣好。很多細節都沒有寫進論文,而且它們僅僅作為專業領域的專業知識存在。即使你考慮的問題和你的最開始工作出現的問題是一樣的,你仍需要花很多時間來為你的問題配置個性化的算法。你需要調整超參數,找到合適的架構,以怪異的方式對數據進行預先處理,甚至可能需要重新整理你的問題。你不能把你的問題放在現有的算法上,所以你要么需要豐富的經驗,要么需要大量的嘗試和錯誤的數據作為參照。
機器學習是一套強大而實用的技術,它能夠讓我們解決以前很多無法處理的問題。例如,我正在開發的供應鏈優化系統將受益于在我們現有的經典操作研究基礎之上添加的一些機器學習系統。
但正如人們所相信的那樣,機器學習現在遠沒有像人們想象的那樣普遍、強大或有影響力。如果我不得不進行猜測的話,我賭未來的技術值得被稱為“軟件3.0”,它是一種有程序合成支持的、交互式的開發工具。但這可能只是我一廂情愿的想法,而且還有很長的路要走。