1. 程式人生 > >機器學習基石 Lecture3: Types of Learning

機器學習基石 Lecture3: Types of Learning

機器學習基石 Lecture3: Types of Learning

Learning with Different Output Space Y Y

Binary Classification

回憶Lecture2中講到的例子。在擁有了使用者的資訊之後給出是否給使用者下發信用卡的判斷,輸出空間 Y =

{ 1 , + 1 } Y=\{-1,+1\} 。這種問題叫做二元分類問題(binary classification)。這個問題是機器學習裡的一個核心問題,也是構造很多其它問題解法的基礎。還有些二分類的例子:
在這裡插入圖片描述

Multiclass Classification

假如分類多於兩種,那麼就叫做多分類問題(multiclass classification)。比如將美元硬幣分類,有(1c,5c,10c,25c)四種面值的硬幣,因此需要將硬幣分為四類。即輸出空間 Y = { 1 c , 5 c , 10 c , 25 c } Y=\{1c, 5c, 10c, 25c\} ,再進一步抽象得輸出空間 Y = { 1 , 2 , 3 , 4 , . . . , K } Y=\{1,2,3,4,...,K\} ,二分類是 K = 2 K=2 時的特殊情況。這類問題實際中很常見,特別是識別問題中。還有些其它多分類的問題:
在這裡插入圖片描述

Regression

當輸出空間 Y = R Y = R Y = [ l o w e r , u p p e r ] Y = [lower,upper] 時這種問題叫做迴歸問題。比如預測一個病人康復的時間。這個問題在統計學裡也是一個核心的問題。這個也是用來解決其它問題的一個重要方法。還有些其它迴歸問題如:

在這裡插入圖片描述

Structure Learning

當我們預測一個句子中每個詞的詞性時,這是一個多分類問題。但是如果把整個句子作為物件,預測整個句子中詞語詞性的結合,這個問題就是個結構學習的問題。比如預測句子結構的輸出空間可能是 Y = { P V N , P V P , N V N , P V , . . . } Y=\{PVN,PVP,NVN,PV,...\} 。這個問題也可以看做是一個輸出空間非常大的多分類問題,這個類別就是結構,因此也沒有具體的型別的定義。結構學習的問題很前沿但是也很困難。還有些其它的例子如:
在這裡插入圖片描述

Learning with Different Data Label y n y_{n}

Supervised Learning

回到上次的硬幣分類的例子。對於每個硬幣 x x ,都需要給演算法提供一個對應的分類結果 y y 。這種學習演算法叫做監督學習。

Unsupervised Learning

同樣是硬幣分類,如果在學習時不為演算法提供每個硬幣的分類結果而讓演算法進行多分類,這種問題就叫做無監督學習。特別的,無監督學習的多分類問題一般是聚類問題(clustering)。對於演算法而言可能看到的硬幣分佈如下圖:
在這裡插入圖片描述

還有些其它聚類問題,如文章主題聚類和消費者聚類等等。除了聚類問題之外還有其它一些無監督學習方式,如下圖:
在這裡插入圖片描述

無監督學習是個很廣泛的問題,有可能有著不同的評估目標。

Semi-supervised Learning

半監督學習,指的是對於部分樣本有對應的結果標籤 y y ,但不是所有都有。介於監督學習與非監督學習之間。
在這裡插入圖片描述

半監督學習可以利用沒有標籤的資料而不用對每個資料都打標籤。還有些半監督學習的例子比如:
在這裡插入圖片描述

Reinforcement Learning

假如你現在訓練自己的寵物狗學習坐下的動作。對應的 x x 是你發出的指令,而狗做出的動作是 y y 。而狗可能做出別的動作,這時候你會給它一個懲罰。而如果它做對了動作給它一個獎勵,最終它會學會坐下的動作。這個形式的學習演算法叫做強化學習。強化學習是學習部分或者是隱式的資訊,通常是序列形式。其它強化學習的例子如:
在這裡插入圖片描述

Learning with Different Protocol f ( x n , y n ) f \Rightarrow (x_{n},y_{n})

Batch Learning

像之前的分類硬幣的例子中,是將一堆樣本 D D 丟給演算法學習,之後得到一個結果。這樣學習的模式叫做Batch Learning。通常情況都是使用這種學習方式。其他的例子有:
在這裡插入圖片描述

Online Learning

和硬幣分類不同,線上垃圾郵件分類的程式不能一成不變。因此要對於不斷產生的例子進行對應的改進。這種不斷觀察例子不斷改進自身的學習方式叫做線上學習。Lecture2中講的PLA演算法能夠很自然地應用成線上學習的形式。而強化學習一般也是實現為線上形式。

Active Learning

不管是Batch Learning還是Online Learning都是被動的等待樣本進行學習,還有一種學習模式叫做主動學習。演算法可以根據某些策略,主動地挑出一些樣本 x x 像實際的目標函式“詢問”應該對應的標籤 y y 。這類似於主動問問題因此叫做Active Learning。可以通過對於詢問策略的設計完成用很少的標籤就能完成對假設的改進。

Learning with Different Input Space X X

Concrete Features

之前所講的例子裡,對演算法輸入的樣本的 x x 都是一些具體的特徵,比如下發信用卡例子中輸入為申請人的各項資訊。這些特徵可能包含了人類的專業知識(domain knowledge),也可能代表的是具體的物理特徵。這些特徵對於機器學習是比較容易來學習的。還有些例子如:
在這裡插入圖片描述

Raw Features

當我們需要進行手寫數字的辨別時,需要考慮輸入給機器學習演算法什麼樣的特徵。可以使手動構造後的特徵比如手寫數字圖片的影象密度和對稱性等等。這個構造過程叫做特徵工程(feature engineering)。也就是把原始特徵轉化為具體的特徵。也可以將這些原始的特徵直接輸入機器學習演算法,比如將16x16大小的手寫數字影象的灰度圖直接歸一化之後作為輸入。

Abstract Features

有時候提供的是一些很抽象的特徵。比如當我們預測使用者對某個物品的評分,我們有的資料可能只有(userid, itemid, rating)這樣的三元組。id號這樣的特徵就叫做抽象特徵。這是個 y R y \in R x N N x\in N*N 的迴歸問題,這裡的輸入 x x 沒有具體的物理特徵。因此也需要進行特徵工程提取特徵。還有些其它例子如:
在這裡插入圖片描述