趣文:如何向外行解釋機器學習和數據挖掘
有網友在 Quora 上提問:對于那些非計算機科學行業的人,你會如何向他們解釋機器學習和數據挖掘? 斯坦福大學的印度學生、機器學習愛好者 Pararth Shah 在2012年12月22日的回復,非常經典,得贊數有 3700+。下面內容,由@jiqihuman 編譯。
買點芒果去
假設有一天你準備去買點芒果。有個小販擺放了一車。你可以一個一個挑,然后小販根據你挑的芒果的斤兩來算錢(在印度的典型情況)。顯然,你想挑最甜最熟的芒果對吧(因為小販是按芒果的重量來算錢,而不是按芒果的品質來算錢的)。可是你準備怎么挑呢?
你記得奶奶和你說過, 嫩黃的芒果比暗黃的甜。 所以你有了一個簡單的判斷標準:只挑嫩黃的芒果。你檢查各個芒果的顏色, 挑了些嫩黃的,買單,走人,爽不?
可沒那么簡單。
生活是很復雜的
你回到家,開始慢慢品嘗你的芒果。你發現有一些芒果沒有想的那么甜。你焦慮了。顯然,奶奶的智慧不夠啊。挑芒果可不是看看顏色那么簡答的。
經過深思熟慮(并且嘗了各種不同類型的芒果), 你發現那些大個兒的,嫩黃的芒果絕對是甜的,而小個兒,嫩黃的芒果,只有一半的時候是甜的(比如你買了100個嫩黃的芒果,50個比較大,50個比較小, 那么你會發現50個大個兒的芒果是甜的,而50個小個兒的芒果,平均只有25個是甜的)。
你對自己的發現非常開心,下次去買芒果的時候你就將這些規則牢牢的記在心里。但是下次再來到市集的時候,你發現你最喜歡的那家芒果攤搬出了鎮子。于 是你決定從其它賣芒果的小販那里購買芒果,但是這位小販的芒果和之前那位產地不同。現在,你突然發現你之前學到的挑芒果辦法(大個兒的嫩黃的芒果最甜)又 行不通了。你得從頭再學過。你在那位小販那里,品嘗了各類芒果,你發現在這里,小個兒、暗黃的芒果其實才是最甜的。
沒多久,你在其它城市的遠房表妹來看你。你準備好好請她吃頓芒果。但是她說芒果甜不甜無所謂,她要的芒果一定要是最多汁的。于是,你又用你的方法品嘗了各種芒果,發現比較軟的芒果比較多汁。
之后,你搬去了其它國家。在那里,芒果吃起來和你家鄉的味道完全不一樣。你發現綠芒果其實比黃芒果好吃。
再接著,你娶了一位討厭芒果的太太。她喜歡吃蘋果。你得天天去買蘋果。于是,你之前積累的那些挑芒果的經驗一下子變的一文不值。你得用同樣的方法,去學習蘋果的各項物理屬性和它的味道間的關系。你確實這樣做了,因為你愛她。
有請計算機程序出場
現在想象一下,最近你正在寫一個計算機程序幫你挑選芒果(或者蘋果)。你會寫下如下的規則:
if(顏色是嫩黃 and 尺寸是大的 and 購自最喜歡的小販): 芒果是甜的
if(軟的): 芒果是多汁的
等等等等。
你會用這些規則來挑選芒果。你甚至會讓你的小弟去按照這個規則列表去買芒果,而且確定他一定會買到你滿意的芒果。
但是一旦在你的芒果實驗中有了新的發現, 你就不得不手動修改這份規則列表。你得搞清楚影響芒果質量的所有因素的錯綜復雜的細節。
如果問題越來越復雜, 則你要針對所有的芒果類型,手動地制定挑選規就變得非常困難。你的研究將讓你拿到芒果科學的博士學位(如果有這樣的學位的話)。
可誰有那么多時間去做這事兒呢。
有請機器學習算法
機器學習算法是由普通的算法演化而來。通過自動地從提供的數據中學習,它會讓你的程序變得更“聰明”。
你從市場上的芒果里隨機的抽取一定的樣品(訓練數據), 制作一張表格, 上面記著每個芒果的物理屬性, 比如顏色, 大小, 形狀, 產地, 賣家, 等等。(這些稱之為特征)。
還記錄下這個芒果甜不甜, 是否多汁,是否成熟(輸出變量)。你將這些數據提供給一個機器學習算法(分類算法/回歸算法),然后它就會學習出一個關于芒果的物理屬性和它的質量之間關系的模型。
下次你再去市集, 只要測測那些芒果的特性(測試數據),然后將它輸入一個機器學習算法。算法將根據之前計算出的模型來預測芒果是甜的,熟的, 并且/還是多汁的。
該算法內部使用的規則其實就是類似你之前手寫在紙上的那些規則(例如, 決策樹),或者更多涉及到的東西,但是基本上你就不需要擔心這個了。
瞧,你現在可以滿懷自信的去買芒果了,根本不用考慮那些挑選芒果的細節。更重要的是,你可以讓你的算法隨著時間越變越好(增強學習),當它讀進更多 的訓練數據, 它就會更加準確,并且在做了錯誤的預測之后自我修正。但是最棒的地方在于,你可以用同樣的算法去訓練不同的模型, 比如預測蘋果質量的模型, 桔子的,香蕉的,葡萄的,櫻桃的,西瓜的,讓所有你心愛的人開心:)
這,就是專屬于你的機器學習,是不是很酷啊。
機器學習:讓你的算法更聰明, 所以你就可以偷懶嘍
原文鏈接: Pararth Shah 翻譯: 伯樂在線 - jiqihuman
譯文鏈接: http://blog.jobbole.com/50338/