寫給大家看的機器學習書(第四篇)—— 機器學習為什麼是可行的(上)
1. 你敢跟著機器學習投資嗎?
系列文章學到這裡,我們已經理解了機器學習的概念,也掌握了一個具體的學習演算法 (Learning Algorithm)。似乎機器學習的大門已經打開,以後了解更深的模型,學習更多的技法,一帆風順的樣子。
不過稍等一會,讓我們再回顧一下到目前為止我們所學到的機器學習概念:根據訓練數據,從假設集合 (Hypothesis Set) 中挑出一個最優的假設作為學得的模型。
有沒有人在學習的過程中有過這麼一絲疑慮:
這個由訓練數據也就是歷史日誌學得的模型,真的能在未來的預測中表現的一樣好嗎?
如果你還記得圖1左上角的那個"上帝真相"(Ground Truth),那個只有上帝才知道的完美模型,我想問:
我們學到的模型真的能像一樣完美地預測未來嗎?
不妨再具體一些,股市中我們根據歷史數據學到了一個表現很不錯的模型,你敢按照模型對未來的預判操作真金白銀的投資嗎?
你是否也有過那麼一時三刻的不自信,所謂「以史為鑒,可以知興亡」,從歷史中總結出的規律,是否真的能在未來的預測中被信賴?為了做一個對未來負責的機器學習專家,從這一篇開始的上下兩篇,我們將試著解答這個疑惑,即
模型對未來的預測真的是可信的嗎?
圖1:
2. 沒有人可以預測未來
別傻了,沒有人可以預測未來。
——《來自未來》
我們先來看下面這個例子。
也不知是誰從哪兒搞來了這麼幾條數據,整理成表格1的前三列所示( | 樣本編號 | 特徵 | 標註 | ),希望我們找出特徵和標註之間的規律。
於是,八汰、霹霹、王抗美、沃伯特 4 位演算法工程師對這個問題進行了學習,最終得到了4個模型。
- 據說八汰使用了PLA學習演算法,學得了模型。他把所逼近的 Ground Truth 記作。
- 據說霹霹使用了強化學習演算法,學得了模型。他把所逼近的 Ground Truth 記作。
- 據說王抗美使用了深度學習演算法,學得了模型。他把所逼近的 Ground Truth 記作。
- 而沃伯特則沒有透露他的演算法,總之得到了模型。他把所逼近的 Ground Truth 記作。
這 4 個模型學得怎麼樣呢?我們來看看錶格1的後4列,這4列記錄了模型的輸出。比照第三列的樣本標註可以看到,在訓練數據上模型的輸出和樣本標註完全一致,4個人的模型都表現的相當好。
不過我們也知道,在訓練數據上表現得好那不是真的好,模型最終是希望對未知數據進行可靠地預測,預測得准才是真的准。於是找來了表格2中的兩條數據,這兩條數據的標註是未知的,讓4個人的模型預測一下標註會是什麼。
結果如表格2的後4列所示,棘手的情況發生了! 4個人的模型竟然給出了完全不同的預測。
- 八汰的模型:預測的結果是 1和 ?1。
- 霹霹的模型:預測的結果是 ?1和 ?1。
- 王抗美的模型:預測的結果是 1和 1。
- 沃伯特的模型:預測的結果是 ?1和 1。
這可就懵圈了,4 個人用 4 種不同的演算法,學得的模型都在訓練數據上獲得了完美的表現,但是預測的結果卻完全不同。
那到底應該相信誰的演算法呢?誰的預測才是準確的呢?
很抱歉,讓大家走了那麼遠,現在要告訴您一個可能有點顛覆的結論:
機器學習中有個非常著名的 No Free Lunch (NFL) 定理 告訴我們,在這個例子描述的情況下,這些演算法的期望水平是一樣的。
更要命的是,沃伯特這個時候說他根本沒有用什麼機器學習演算法,他的預測是靠瞎猜決定的。如果他說的是真的,這也就意味著 No free Lunch 定理告訴我們,那些高深演算法得到的模型竟然跟瞎猜是同等水平的。
怎麼可能??這個人說謊的吧!!
他沒有說謊,沃伯特,原名 David H. Wolpert,他就是提出並證明了 No Free Lunch 定理的科學家本人。No Free Lunch,即天下沒有白吃的午餐,是所有機器學習專家求學路上的一記板磚。
3. 在 No Free Lunch 之後的世界觀重塑
No Free Lunch,這頓難以下咽的午餐一下摧毀了我們對於機器學習的信念。各種學習演算法竟然都跟瞎猜差不多!那機器學習根本是不可能的吧,怎麼可能信任瞎猜演算法去投資呢?
是不是遺漏了什麼啊?!
是的,確實遺漏了很重要的一個前提。讓我們閃回到上一小節的這段話
「機器學習中有個非常著名的 No Free Lunch (NFL) 定理告訴我們,在這個例子描述的情況下,這些演算法的期望水平是一樣的。」
注意這句:「在這個例子描述的情況下」!也就是說 NFL 定理有個很重要的前提,只有在像上面這個例子描述的情況下才會導致各種精巧的機器學習演算法跟瞎猜差不多,而在許多具體的實際應用場景中,並不滿足這個前提。
那到底「上面這個例子描述的情況」是指什麼呢?好好記住它:
NFL定理在闡述的過程中假設了的均勻分布,即所有潛在的可能性發生的概率是一樣的。
具體來說,在上面的例子中,在這批不知從哪兒來的訓練數據的情況下,可能產生訓練數據的Ground Truth 有多個,但又因為沒有具體的場景,導致這多個是真正產生這批訓練數據的Ground Truth的概率是一樣的。
而無論哪種學習演算法必定最終傾向了其中的某個,因此最終這些演算法的期望水平就是一樣的。(學習演算法的這種傾向,稱為學習演算法的歸納偏好(inductive bias),簡稱「偏好」。)
後面我們會看到,在具體的實際場景中,某些代表的可能性發生的概率大,某些代表的可能性發生的概率小,某些可能性則根本不會發生。它們的概率不是均等的,因此不再滿足NFL定理的前提。舉個例子,比如有一個不透明的存錢罐,裡面有幾百顆硬幣。你隨機抓出一把發現抓上來的全都是1元的硬幣。這時讓你預測再撈一次發生的情況,很顯然撈上來全部是1角的概率,就會遠遠的低於全部是1元的概率。
這個時候的黑色罐子,在我們看不見的上帝真相之間,世界發生了傾斜。
於是,在具體的現實問題中,那些歸納偏好與問題本身匹配的演算法就能取得很好的效果,從而令學習是可行的。
最終總結一句,我們花了那麼大的力氣,繞了一大圈連蒙太奇都用上了,就是希望你能理解NFL定理背後所表達的哲學,即:
脫離具體問題討論機器學習演算法的好壞,是沒有意義的。
如果有人聲稱XX學習演算法就是比YY學習演算法厲害,多半不是騙子,就是壞人。
4. 預告和其它
由於業餘時間和精力的有限,未能在一周之內完成這個主題——「機器學習為什麼是可行的」,只好分成上、下兩篇。這個系列的寫作能夠進入到第四篇甚至是第五篇,已經超出我最初的想像。感謝所有給予我鼓勵的閱讀者,每周一篇的寫作對於我來說是考驗卻也收穫頗多,希望自己能堅持下去,也希望這個系列文章能給您帶去一點點價值。
再次感謝您的閱讀,這裡是《寫給大家看的機器學習書》,我是八汰。如果您希望收到後續文章的更新,可以考慮關注我。或者關注這個同名專欄,文章將會在您的通知中心推送更新。
祝開心 :)
推薦閱讀:
※AI、神經網路、機器學習、深度學習和大數據的核心知識備忘錄分享
※分散式機器學習里的 數據並行 和 模型並行 各是什麼意思?
※有沒有國內寫的比較好的、深入淺出的、並且貼近實戰的機器學習與深度學習書籍或博客?
※有基於spark的parameter server嗎?