2016年10月7日 星期五

AI - Ch13 機器學習(1), 機器學習簡介與監督式學習 Introduction to Machine Learning, Supervised Learning

 

2015.06.15 初版
2016.10.07 二版

一、機器學習簡介


機器學習是近20多年興起的一門多領域交叉學科,涉及機率論、統計學、逼近論、凸分析、計算複雜性理論等多門學科。機器學習理論主要是設計和分析一些讓計算機可以自動「學習」的演算法。機器學習算法是一類從資料中自動分析獲得規律,並利用規律對未知資料進行預測的算法。

機器學習已廣泛應用於數據挖掘、計算機視覺、自然語言處理、生物特徵識別、搜尋引擎、醫學診斷、檢測信用卡欺詐、證券市場分析、DNA序列測序、語音和手寫識別、戰略遊戲和機器人等領域。


[定義] 機器學習定義
A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.
舉個例子,郵件系統是如何學習呢?套用以上定義:

  • T(任務):將郵件分類為垃圾或非垃圾。
  • E(經驗):觀察目前信箱的信是把哪些種類的郵件標記為垃圾,而哪些是非垃圾。
  • P(效能):被正確分類成垃圾或非垃圾的郵件的數量。

下面是一個學習的範例流程:






二、機器學習的類別


監督學習 (Supervised learning):從給定的訓練數據集中學習出一個模式(函數 / learning model),當新的數據到來時,可以根據這個模式預測結果。監督學習的訓練集要求是包括輸入和輸出,也可以說是特徵和目標。訓練集中的目標是由人標註的。常見的監督學習算法包括回歸分析和統計分類。

無監督學習 (unsupervised learning):與監督學習相比,訓練集沒有人為標註的結果。常見的無監督學習算法有聚類。

半監督學習 (Semi-supervised learning):介於監督學習與無監督學習之間。

增強學習 (reinforcement learning):通過觀察來學習做成如何的動作。每個動作都會對環境有所影響,學習對象根據觀察到的周圍環境的反饋來做出判斷。


2.1 具體的機器學習演算法


  • 構造條件機率:回歸分析和統計分類
    • 人工神經網絡
    • 決策樹
    • 高斯過程回歸
    • 線性判別分析
    • 最近鄰居法
    • 感知器
    • 徑向基函數核
    • 支持向量機
  • 通過再生模型構造機率密度函數:
    • 最大期望算法
    • graphical model:包括貝葉斯網和Markov隨機場
    • Generative Topographic Mapping
  • 近似推斷技術:
    • 馬爾可夫鏈
    • 蒙特卡羅方法
    • 變分法
  • 最優化:大多數以上方法,直接或者間接使用最優化算法。







三、監督式學習 (Supervised learning)


監督式學習是一個機器學習中的方法,可以由訓練資料中學到或建立一個模式(learning model),並依此模式推測新的資料。訓練資料是由輸入和預期輸出所組成。函數的輸出可以是一個連續的值(也就是迴歸分析,regression),或是預測一個分類標籤(也就是分類, classification)。


一個監督式學習者的任務在觀察完一些訓練資料後,去預測這個函數對任何可能出現的輸入的值的輸出。要達到此目的,學習者必須以"合理"的方式從現有的資料中一般化到非觀察到的情況。在人類和動物感知中,則通常被稱為概念學習(concept learning)。

以下是監督式學習的數學模型:

  • $x^i$:表示輸入的資料,也稱為輸入特徵。
  • $y^i$:表示輸出的資料,也稱為目標變數,也就是我們想要估計的東西。
  • $(x^i,y^i)$:將一個 $x(i)$ 與 $y(i)$ 配對之後,稱為一組訓練實例(training example)。
  • $\{(x^i,y^i):i=1,...,m\}$:所有的練實例合起來稱為訓練組(training set),也就是指整個用來學習的資料庫。
  • $X$:代表輸入資料的空間(space)。
  • $Y$:代表輸出資料的空間。

在這裡我們就是要找到一個從$X$映射到$Y$的函數$h(x)$,而這個函數可以靠著 $x$ 來預測 $y$,傳統上這個 $h$ 就稱為一個假設(hypothesis),而整個流程就像這個圖:



3.1 過適 (overfitting)


知識發掘的方法在建立模型的過程中容易出現過適的情形,模型可能陷入只能解釋在訓練集樣本的關聯,而沒辦法一體適用。也就是說,機器學習所學到的假設(Hypothesis)過度貼近訓練資料(Training Data),而導致測試資料(Testing Data)錯誤率變得更大。

一個荒謬的模型模型只要足夠複雜,是可以完美地適應訓練資料。過適一般可以識為違反奧卡姆剃刀原則。為了避免過適現象,須要使用額外的技巧(如交叉驗證、early stopping、貝斯信息量準則、赤池信息量準則或model comparison)以指出何時會有更多訓練而沒有導致更好的一般化。

奧卡姆剃刀原則 : 若無必要,勿增實體。如果對於同一現象有兩種不同的假說,我們應該採取比較簡單的那一種。


3.2 偏差和變異之權衡 (Bias-Variance Tradeoff)


在給定一個固定數量的訓練例子,一個過度大數量的子空間會造成過擬合(overfit),或一個不足夠數量的子空間會造成不足擬合(underfit),因此在一個模型的選擇上需要進行偏差和變異的權衡。顯然複雜的模型能更好的擬合訓練集合,但是同時高複雜度的模型泛化能力差,造成了高變異。


舉兩個極端的例子:

  • 記住訓練集合上所有資料的標籤,這樣的系統是低偏差、高變異。
  • 無論輸入什麼資料,總是預測一個相同的標籤,這樣的系統是高偏差、低變異。

圖中橫坐標的右側是過度擬合overfit的情況,而左側是不足擬合underfit的情況。











技術提供:Blogger.