圖解機器學習

language::

機器學習(Machine Learning)是計算機科學的一門。常利用着統計學的技巧,機器學習程式(Machine Learning Algorithms)能夠自動學習識別數據內的規律。憑着機器學習找到的規律,電腦程式能作出高度準確的預測。

請往下瀏覽。憑着一組關於房屋資料的數據樣本,我們將會建造一個懂得區別紐約市和舊金山房屋的機器學習模型。

往下瀏覽


以直覺做出發點

假設我們必須憑數據預測一棟房屋是位於舊金山還是紐約市,我們應該怎樣開始呢?在機器學習詞彙內,這是一種分類任務。(Classification Task)

如果你到過舊金山,你可能會知道其地理是出了名的高低不平。讓我們看看房屋的海拔資料能不能協助區分這兩個城市的房屋。

憑着右邊的海拔圖表,一棟海拔73公尺以上的房屋看來應該是位於舊金山的。這是我們憑直覺能作的最初步預測。


加一點常識

多加一個維度(Dimension)能讓我們尋找更精確的規律。在圖上畫上房屋樣本的每平方公尺價格後,我們的圖變成了散點圖。

在散點圖可以見到,在海拔比較低的房屋之中,紐約市的房屋相對上是比較昂貴的。

憑着這些數據,我們可以作這個預測:在海拔73公尺以下的房屋中,如果每平方公尺價格高過19116美元,那房子多數會是在紐約市的。

數據內的維度,在機器學習詞彙內又稱為特徵(features)預報器(predictors)或變數(variable)


劃分邊界線

我們可以把關於海拔和平方公尺價格的臆測畫在散點圖上。圖上綠色(海拔73公尺以上)的部分將會歸類為舊金山的。藍色(平方公尺價格19116美元以上)的部分會歸類為紐約市的。

這樣憑着數據尋找合理的分界條件是統計學習和機器學習的基礎。

可是,在左下角那些海拔低,平方公尺價格也低的房屋該怎麼分類呢?我們要找多一點的維度數據了。


我們用來建造機器學習模型的房屋數據𥚃有七個維度。在機器學習詞彙內,建造模型的過程又稱為模型訓練(Model Training)。

在右邊,我們把每一雙維度的關係都劃成了散點圖。圖上依稀可見數據𥚃的規律。我們該怎樣把模糊的規律變成準確的分界條件呢?


發揮機器學習

在數據𥚃尋找規律就是機器學習的基礎。所有的機器學習程式都是使用電腦快速地統計數據𥚃最佳的分界。

接下來我們將會介紹一種叫決策樹的機器學習程式。決策樹十分簡單,它會把數據內的維度逐一分析去尋找分界。



尋找更好的分界條件

首先重溫海拔數據,試試尋找更好的分界條件。把上面的海拔圖變成直方圖能讓我們更容易看到數據內的規律。


從直方圖上可以見到不同房屋海拔的分配。在數據樣本𥚃,紐約市海拔最高的房子在於海拔73公尺。但是大多數的紐約房子都坐落在海拔較低的地方。


第一個分節點

決策樹使用二分類式的條件(if-then statements)作為分界條件。

比方說,一棟房子如果海拔高於某甲公尺,那房子就是在舊金山的。


在機器學習詞彙內,這叫分支(fork)。分支把數據樣本以維度值數(value)分類。這維度值數又名分節點。

分支是決策樹的分界程序。分支把所有數據樣本分成兩部。小於分節點的分向左邊,大於分節點的分向左邊。


作平衡分界

選擇分節點時需要小心平衡兩邊。我們初選的分節點(海拔73公尺)把很多的舊金山的房子錯誤分類為紐約市的。

看看最左邊那餅形圖綠色的部分,那些舊金山的房子全部都分錯了。這些分錯的樣本叫做偽陰性(false negative)。


可是,如果我們用一個能張所有舊金山樣本都歸在一邊的分節點,那個分支就會錯誤分類許多紐約市的房子了。這類錯誤叫做偽陽性(false positive)。


最佳的分節點

在最佳的分節點,分類結果應該盡可能同質(或純質)。統計學𥚃有幾種算法可以尋找好的分節點。


圖上可見,在最佳的分節點我們還仍然不能避免錯誤的分類。我們該什麼辦呢?



一試再試

我們可以遞迴歸再試。在第一個分支的兩邊分類結果內,每邊再次加分支分類。遞迴地重複施用計算程式(recursion)是模型訓練𥚃常用的戰術之一。

左邊的一系列直方圖顯示着兩邊數據樣本𥚃每個維度的分配。


新分支的最佳分節點取決於那邊的數據樣本。

在左邊海拔較低的部分,最佳的分節維度是平方公尺價格,分節點在11,420美元。

在右邊海拔較高的部分, 最佳的分節維度是房子總值,分節點在514,500美元。

.

栽培決策樹

多加分支就是增加決策樹所包含的數據,從而增強決策樹的預測準確性。


加多一層,決策樹的準確性增加到百分之八十四。


再加幾層,準確性增加到百分之九十六。


我們甚至可以繼續加分支直到決策樹百分之百準確為止。這樣子,所有決策樹末梢的分類結果會是純粹舊金山或紐約市的。


決策樹的末節又叫葉節點(leaf nodes)。決策樹的預測取決於葉節點內那一類的樣本相對較多。



作出預測

決策樹是怎樣作出預測的呢?它把樣本從根節點開始,順序跟著分支的分叉走到葉節點。葉節點是那一類,就預測那一類。每條路徑構成了作出預測的規則。


在右邊可視化圖上可以跟著每一點數據樣本流穿於決策樹而被分類。

這數據叫做訓練數據,因為決策樹模型是基於這數據訓練出來的。


這決策樹分類訓練數據時的表現當然是百分之百準確,因為這樹畢竟是從這數據𥚃訓練出來的。


面對現實

訓練數據分類成功並不代表什麼。真正的考驗是要能分辨好從末見過的數據樣本。


要進行測試,我們要用決策樹來分類新的數據。這數據叫做測試數據(test data)。


如果我們的決策樹夠強固的話,訓練數據和測試數據的準確性應該要相差不遠。


這樣看,我們的決策樹就不算是做得很好了。


這些錯誤來自過度擬合(overfitting)訓練數據。我們的決策樹把訓練數據的每一點的細微差距,無論大小,一概都作為了分界條件。

過度擬合是機器學習中的基本挑戰。在下一篇文章我們會多加探討。



概括

  1. 機器學習常運用統計學的技巧,化成電腦程式計算出數據𥚃的分界條件,從而作出精確的預測。
  2. 決策樹是機器學習程式的一種。決策樹使用一系列二分類式的條件作為數據𥚃分界,試圖體現數據𥚃的規律。
  3. 數據內不是每一點的細微差距都重要的。在訓練機器學習模型時,必須注意過度擬合訓練數據。要防止過度擬合,用測試數據來審核模型的預測結果。

下一篇預告

在下一篇文章我們將會探討過度擬合的挑戰,還有過度擬合跟機器學習𥚃其他課題的基礎關係。

有問題或意見嗎?請不防到Twitter聯絡我們(@r2d3us)或電郵至team@r2d3.us

想知道下一篇可時登出?


在Facebook跟隨我們…

圖解機器學習的中文翻譯完成了。希望你們喜歡!http://www.r2d3.us/%E5%9C%96%E8%A7%A3%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92%E7%AC%AC%E4%B8%80%E7%AB%A0/

Posted by R2D3 on Sunday, August 9, 2015

… 或訂閱我們的電郵通訊吧。

Posts from R2D3.us


中文版後語

首先要感謝臺灣大學林軒田教授的慷慨幫助。多虧林教授的修正,這中文版翻譯才可以稍微像樣。如果大家想了解更多關於機器學習的話,千萬不要錯過林教授的Coursera機器學習線上課程和他的著作Learning From Data (從數據內學習)

只得小學三年班的中文程度,為什麼要寫中文版呢?在寫英文版的時後,想起了爸媽,就已經想翻譯給他們看了。父親節卻趕不起做完。

英文版登出後備受好評,所以想趕快翻譯。我從三年班離開香港後,除了金鏞之外就沒讀多少中文書了。翻譯不足之處,都歸我負責,請多多包容。

爸,媽,這篇文章概括就是我在機器學習公司當設計師的所做的工作。希望你們喜歡!

恒盛上


  1. 機器學習的概念在幾門不同的學科內都有自主開發(例如計算機科學Computer Science,統計學Statisitcs,工程學Engineering,心理學Psychology,等等)。所以有許多不同的專門用詞。
  2. 想認識更多關於計算最佳分節點算法程式的話,可以在網絡搜索"基尼係數"(Gini Index)或"交叉熵"(Cross Entropy)。
  3. 電腦適合應用統計學習技巧的其中一個原因是它們可以極速不懈地執行不斷重複的程式。
  4. 這計算程式是稱為貪婪的。因為在尋找分節時,程式只會看上一個分節點傳下來局部的數據內計算下一個分節點。
  5. 把鼠標徘徊在樣本點子上可以顯示那樣本走的路徑。
  6. 預告:下篇講解偏性與方差的平衡。