摘要: 隨著數據科學在人工智能發展中大放異彩,數據挖掘、機器學習進入了越來越多人的視野。而對於很多人來說,諸如機器學習之類的名次聽起來是神乎其技,但其真正的內涵卻不為一般人所知。

 


如何向普通人解釋機器學習、數據挖掘

作者:DataCastle數據城堡

隨著數據科學在人工智能發展中大放異彩,數據挖掘、機器學習進入了越來越多人的視野。而對於很多人來說,諸如機器學習之類的名次聽起來是神乎其技,但其真正的內涵卻不為一般人所知。

特別是對於從事數據科學領域的人來說,如何向外行人解釋自己所從事的工作幾乎是一個超級難題。那麼到底什麼是機器學習,如何用通俗易懂的語言來解釋?我們通過以下幾重境界來解釋。

一、專業理論型

百科定義+專業術語,讓人聽起來不明覺厲,實則一臉懵逼

機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。

它是人工智能的核心,是使計算機具有智能的根本途徑,其應用遍及人工智能的各個領域,它主要使用歸納、綜合而不是演繹。

機器學習已經有了十分廣泛的應用,例如:數據挖掘、計算機視覺、自然語言處理、生物特徵識別、搜索引擎、醫學診斷、檢測信用卡欺詐、證券市場分析、DNA序列測序、語音和手寫識別、戰略遊戲和機器人運用。

機器學習從本質上來說是一種學習結構, 整個結構包括環境、知識庫和執行三個部分。在整個過程中,環境向系統提供信息,系統利用這些信息修改知識庫,以增進系統執行部分完成任務的效能,執行部分根據知識庫完成任務,同時把獲得的信息反饋給學習部分,從而繼續改進知識庫。

在具體的應用中,環境、知識和執行部分決定了具體的工作內容,學習部分所需要解決的問題完全由上述三部分確定。簡單來說,機器學習就是計算機利用已有的數據,得出了某種模型,並利用此模型預測未來的一種方法, 這與人腦的思考方式非常類似。

大數據

二、以小見大型

以某種機器學習具體的案例來說明,讓人恍然大悟

一開始我們先來看一個人為設計的場景。假設一個房間裡神奇地漂浮著無數個小球。我們想搞清楚這些小球停留的位置是否存在著一種特定的結構。比方說,小球是不是更易集中在某一特定區域?是不是故意避開某些點位?它們是均勻分佈於整個空間嗎?

但是房間一片漆黑,我們什麼也看不見。於是我們找來了一部帶閃光燈的照相機,想把漂浮在整個房間的小球都拍下來。照片猶如下圖一樣:

大數據

就算小球的位置之間確實存在某種聯繫,從這張照片上我們也看不出個所以然。看上去小球就像是均勻分佈的一樣。所以我們嘗試著換了下位置,從新的角度拍下了第二張照片。

大數據

照片上的小球看起來還是隨機分佈的,沒有任何規律。讓我們換個高點的角度試試看。

大數據

呃,還是看不出有什麼規律來。那我們最後再換個低點的角度試一次。

大數據

啊哈,這次有點意思了:看起來小球集中分佈在靠近屋頂和地面的兩個區域,中間這段沒有一個小球。因此,為了發現這個規律,我們在拍照時就必須找到一個“好”的角度。如果角度不對,那我們永遠都不可能找出任何規律。

在上面這個例子中,我們想說的其實是三維數據點。每個小球的位置都可以由3個數字來表示,每個數字分別代表它在XYZ三條軸上的位置。在實際的電腦運算中,數據點的位置會由更多的數字組合來表示。

比如醫院病人的病歷可能會包含500組數字,包括他的生日年月日、身高、體重、血壓、最近一次的看病記錄、膽固醇指標等等。我們會想要搞清楚不同病人的數據點之間是否存在某種規律,如心髒病人的數據點是否會集中分佈?如果數據點確實會集中分佈,當我們發現新入院病人的數據點也出現同樣的趨勢時,我們就可以推斷這位病人很可能犯心髒病。當然,實際操作起來肯定不會如此簡單。

一個人是不可能用肉眼看到這些數據點的。人怎麼可能分得清500個維度呢?就像在上面那個例子中,沒有人能看得清“黑屋”中小球,我們也同樣看不見500個維度中的那些數據點。我們可以用二維圖片來展示位於三維空間中的數據點,用同樣的方法,我們也可以更低維度的“照片”來表現擁有500個維度的數據點。

只有從合適的“角度”拍下“照片”,我們才可以從中找出不同數據點之間的規律,不然將很難有所發現。這就是人們所說的如何從“大數據”中“發現見解”。

三、曉之以情,動之以理

這樣來說,你家寵物應該都可以聽明白了

買點芒果去

假設有一天你準備去買點芒果。有個小販擺放了一車。你可以一個一個挑,然後小販根據你挑的芒果的斤兩來算錢(在印度的典型情況)。顯然,你想挑最甜最熟的芒果對吧(因為小販是按芒果的重量來算錢,而不是按芒果的品質來算錢的)。可是你準備怎麼挑呢?

你記得奶奶和你說過, 嫩黃的芒果比暗黃的甜。所以你有了一個簡單的判斷標準:只挑嫩黃的芒果。你檢查各個芒果的顏色, 挑了些嫩黃的,買單,走人,爽不?

可事實沒那麼簡單。

生活是很複雜的

你回到家,開始慢慢品嚐你的芒果。你發現有一些芒果沒有想的那麼甜。你焦慮了。顯然,奶奶的智慧不夠啊。挑芒果可不是看看顏色那麼簡答的。

經過深思熟慮(並且嚐了各種不同類型的芒果), 你發現那些大個兒的,嫩黃的芒果絕對是甜的,而小個兒,嫩黃的芒果,只有一半的時候是甜的(比如你買了100個嫩黃的芒果,50個比較大,50個比較小, 那麼你會發現50個大個兒的芒果是甜的,而50個小個兒的芒果,平均只有25個是甜的)。

你對自己的發現非常開心,下次去買芒果的時候你就將這些規則牢牢的記在心裡。但是下次再來到市集的時候,你發現你最喜歡的那家芒果攤搬出了鎮子。於是你決定從其它賣芒果的小販那裡購買芒果,但是這位小販的芒果和之前那位產地不同。現在,你突然發現你之前學到的挑芒果辦法(大個兒的嫩黃的芒果最甜)又行不通了。你得從頭再學過。你在那位小販那裡,品嚐了各類芒果,你發現在這裡,小個兒、暗黃的芒果其實才是最甜的。

沒多久,你在其它城市的遠房表妹來看你。你準備好好請她吃頓芒果。但是她說芒果甜不甜無所謂,她要的芒果一定要是最多汁的。於是,你又用你的方法品嚐了各種芒果,發現比較軟的芒果比較多汁。

之後,你搬去了其它國家。在那裡,芒果吃起來和你家鄉的味道完全不一樣。你發現綠芒果其實比黃芒果好吃。

再接著,你娶了一位討厭芒果的太太。她喜歡吃蘋果。你得天天去買蘋果。於是,你之前積累的那些挑芒果的經驗一下子變的一文不值。你得用同樣的方法,去學習蘋果的各項物理屬性和它的味道間的關係。你確實這樣做了,因為你愛她。

有請計算機程序出場

現在想像一下,最近你正在寫一個計算機程序幫你挑選芒果(或者蘋果)。你會寫下如下的規則:

if(顏色是嫩黃and 尺寸是大的and 購自最喜歡的小販): 芒果是甜的

if(軟的): 芒果是多汁的

………………

你會用這些規則來挑選芒果。你甚至會讓你的小弟去按照這個規則列表去買芒果,而且確定他一定會買到你滿意的芒果。

但是一旦在你的芒果實驗中有了新的發現, 你就不得不手動修改這份規則列表。你得搞清楚影響芒果質量的所有因素的錯綜複雜的細節。

如果問題越來越複雜, 則你要針對所有的芒果類型,手動地制定挑選規就變得非常困難。你的研究將讓你拿到芒果科學的博士學位(如果有這樣的學位的話)。

可誰有那麼多時間去做這事兒呢。

有請機器學習算法

機器學習算法是由普通的算法演化而來。通過自動地從提供的數據中學習,它會讓你的程序變得更“聰明”。

你從市場上的芒果裡隨機的抽取一定的樣品(訓練數據), 製作一張表格, 上面記著每個芒果的物理屬性, 比如顏色, 大小, 形狀, 產地, 賣家, 等等。(這些稱之為特徵)。

還記錄下這個芒果甜不甜, 是否多汁,是否成熟(輸出變量)。你將這些數據提供給一個機器學習算法(分類算法/回歸算法),然後它就會學習出一個關於芒果的物理屬性和它的質量之間關係的模型。

下次你再去市集, 只要測測那些芒果的特性(測試數據),然後將它輸入一個機器學習算法。算法將根據之前計算出的模型來預測芒果是甜的,熟的, 並且/還是多汁的。

該算法內部使用的規則其實就是類似你之前手寫在紙上的那些規則(例如, 決策樹),或者更多涉及到的東西,但是基本上你就不需要擔心這個了。

瞧,你現在可以滿懷自信的去買芒果了,根本不用考慮那些挑選芒果的細節。更重要的是,你可以讓你的算法隨著時間越變越好(增強學習),當它讀進更多的訓練數據, 它就會更加準確,並且在做了錯誤的預測之後自我修正。但是最棒的地方在於,你可以用同樣的算法去訓練不同的模型, 比如預測蘋果質量的模型, 桔子的,香蕉的,葡萄的,櫻桃的,西瓜的,讓所有你心愛的人開心:)

這,就是專屬於你的機器學習,很炫酷吧。

 

End.

 

轉貼自: 36大數據


留下你的回應

以訪客張貼回應

0

在此對話中的人們

Popular Tags

每月文章