想必對人工智慧有所瞭解的同學,都學習過周志華教授深入淺出的《機器學習》吧?
雷鋒網認為,其中尤為讓人印象深刻的地方,莫過於從封面到每一章節貫徹的西瓜理論……
不論是從“什麼樣的西瓜才甜”引申出機器學習的含義,或是通過“西瓜各類特點的權重”介紹各類枯燥晦澀的概念及演算法,周志華教授都用西瓜形象地做出了類比,讓雷鋒網AI科技評論小編一度覺得周教授最喜歡的水果肯定是西瓜。
不過周志華教授的“西瓜論”是一本教科書,可能有更多的小白讀者沒有詳細閱讀每一章節,那麼如何用同樣的水果理論,以簡潔的語句闡述機器學習的含義?
無獨有偶,優秀的觀點總是相似的。雖然《機器學習》並沒有英文版本,但機器學習愛好者 Pararth Shah 2012 年在谷歌當實習生的時候,就在 Quora上用“芒果”類比,回答了“如何向沒有電腦科學基礎的人們解釋機器學習與資料採擷?”的問題。Pararth Shah 就讀於斯坦福大學電腦學院,目前在穀歌研發及機器智慧團隊擔任軟體工程師。
他的完整回答如下,雷鋒網AI科技評論做了全文編譯,與讀者們分享:
買芒果
某天你去買芒果。你挑選後,小販會稱重,你需要根據根據重量乘以標記的固定單價來付錢。
毋庸置疑,你會選擇那些最甜、最熟的芒果(因為是按重量計費而不是按品質)。那麼你要怎麼挑選呢?
你依稀記得,外婆告訴你,那些有光澤的黃芒果會比沒光澤的黃芒果更甜。所以你就定下了一個挑選標準:只在那些有光澤的黃芒果裡挑選。然後,你仔細觀察了芒果的顏色,然後從中選出了那些有光澤的黃芒果,給錢,回家!然後,幸福和快樂是結局?
有點天真了。
生活總比想像中的複雜
你回到家開始吃芒果。然而其中有的芒果並不如你想像中的甜。你覺得人生崩塌了!很明顯,你外婆所說的真理並不總是那麼管用(外婆怎麼會有錯QAQ!)然而現實如此無情,你只能承認:除了顏色,選芒果肯定要考慮別的因素。
在深思熟慮後(吃了無數各種各樣類型的芒果後),你得到一個結論,有光澤的黃色芒果肯定是甜的,但是個頭小一點的有光澤黃色芒果只有一半概率是甜的(這個結論是這樣得到的:如果你買了100個有光澤的黃色芒果,有50個是大的,50個是小的,而大芒果50個都是甜的,而小的則一半一半)。
哇哦,你覺得自己仿佛發現了一個新的真理,下次買芒果的時候決定把它當作圭臬。然而真相總是那麼殘酷,你發現你最喜歡的小販不來了!你只能和另一個小販買芒果了,但是他家的貨是從其它村進的。然後你發現自己剛剛發現的真理又不管用了。你不得不重新開始品嘗各種各樣的芒果,最後得到的結論是:沒光澤的黃色小芒果才是甜的。
突然有一天,住在另一個城市的遠房表妹來看你,你想請人家吃芒果。然而,她特地和你強調,她不在意到底甜不甜,只要多汁就可以了。再一次(悲慘地),你又開始了吃芒果的試驗,然後發現軟的芒果最多汁。
隨後,你又搬到了世界的另一端。在這個地方賣的芒果是另一個品種。經過實驗,你發現綠色的芒果竟然比黃色的要好吃。
你結婚了,而你的太太非常討厭芒果。她喜歡吃蘋果。你又開始了買蘋果的征程。以前你做出的關於芒果的種種結論,現在毫無意義了。你需要通過同樣的試驗,得到蘋果外觀與好吃與否的結論。你這麼做了,因為你愛她。
還是趕緊引入電腦的概念吧
那麼,想像你正在寫一個程式,能夠説明你選芒果(或者蘋果等別的什麼玩意兒)。你寫了一些類似這樣的規則:
if (顏色是亮黃的 and 個頭大的 and 我最喜歡的小販): 芒果是甜的。
if (軟的): 芒果多汁。
等等等等。
你會用這些規則去挑選芒果。你也會把這些規律發給你弟弟,告訴他這就是買芒果的真理。而且你也確信他會按照這些規則去選。
但每一次實驗,你可能都會得到一些新的觀察結果,你需要人為地調整這些規則。你需要理解影響芒果品質的所有因素,而且它們各自所占的比重是多少。
如果問題變得非常複雜,僅憑人為的判斷也很難形成正確的結論。那麼,你的研究可能讓你在芒果科學順利拿個PhD(如果真的有的話)。
但不是每個人都有這樣的精力研究芒果的。
還是趕緊引入機器學習演算法的概念吧
ML演算法顛覆了傳統的各種演算法。它能夠自動從提供的資料中學習,讓你的程式變得更加聰明。
你隨機從市場裡挑選了一些芒果(訓練資料),並做出每個芒果的特徵資料表,從顏色、大小、形狀、產地、小販名字等等(特點),加上甜度、多汁度、成熟度(輸出變數)。你將這些資料用來訓練機器學習演算法(分類/回歸),然後它會建立一個芒果外觀與品質的模型。
下一次你再去市場,你就選擇一些有著典型特性的芒果(測試資料),然後用來檢驗這個ML演算法。它會先得到一個芒果的甜度、多汁度和成熟度的結論。可能這個演算法會採用你之前做的那種判斷方法(決策樹),也有可能採用其它的方法,但你不需要擔心這一點。
耶!現在你可以信心滿滿地去買芒果了,不用擔心挑選芒果需要考慮的種種細節。而且,你可以讓演算法變得越來越好(強化學習),如果它學習了足夠多的訓練資料,它能夠提升準確性,而且在犯錯時也能夠及時改正。但最好的一點是,你可以用這個演算法去訓練不同的模型,不論是蘋果橘子香蕉葡萄還是櫻桃西瓜,你都能讓你愛的人開開心心(吃到甜甜的水果)。
這就是機器學習能給予你的。如果你覺得不酷,來打我啊。
總而言之,機器學習就是:讓你的演算法變得聰明,這樣你就不用自己擼袖子幹了。
這個回答簡直和周教授的西瓜論有異曲同工之妙,堪稱濃縮版的水果機器學習導論。如果你對機器學習一無所知, 想必讀完這個回答後也會豁然開朗不少吧。