李宏毅機器學習(4)—Classification: Probabilistic

Classification: Probabilistic

本次課程主要講述的是如何尋找輸出爲“classification”的 function,也就是如何尋找輸出是分類的函數。
輸出爲分類是對應於輸出爲數值而言的,也就是與之前所講述過的的“Regression”相對應。前者的輸出是幾種類型,如“是,否”,“一般系,水系”,或者做漢字識別等;而後者輸出的是一個數值,前面課程所舉的例子是預估神奇寶貝的 CP 值。

如何做分類?

首先我們想到的是,能否用 Regression 的方式來進行 Classification 的分類。這種想法是很自然的,但是實際上效果不太好。因爲我們使用的方式是,通過Regression 的方式輸出數值,再定義分佈在某個數值區間的數據爲某一類,也就是說這些輸出後臨近的數據點它們在Regression上的數值可能是相近的,但是它們的 class 可能是毫無關係的。這就不太合理。
並且,這種分類的方式還會帶來如下圖的問題。
我們在做training 的時候,是 使用數據來對函數做擬合,但是如果想下圖右側圖片那樣,有部分實際上是error的點在偏離正常數據的位置,我們的 training 也會將這些點考慮進去,所以就會導致分類的結果不盡人意,出現下圖紫色斜線的情況。
在這裏插入圖片描述

由概率模型出發的想法

從概率論的角度出發,下圖有兩個盒子,每個盒子中有藍球和綠球,抽盒子1的概率是2/3,盒子2的概率是1/3,盒子中每種球的概率如圖。那麼,如果抽出了一個球是藍球,那麼他是從Box 1中抽出的概率是多少?
這實際上是一個概率論的問題,恰好我剛學完考研的數一,
在這裏插入圖片描述
那麼我們現在可以將這個問題轉移到如何對 input 進行分類的問題。
上面的盒子問題可以轉化爲,現在有兩個 class,如果我們已經有了一個數據 x (x有一些參數,是一個vector),那麼這個數據是從class 1中來的概率是多少。

在這裏插入圖片描述
到了這一步,我們發現,只要我們找到一個函數,輸入爲某個數據的vector,輸出爲這個數據屬於這個函數對應類別的概率,這樣就可以判斷一個函數的類別。
此時我們想到了使用高斯分佈。(李宏毅老師在此處補充說明,實際上選用其他的概率模型也是可以的,只是選用高斯分佈一般來說更爲常用,但不是代表有時候就不能選用伯努利分佈等。)
高斯分佈的形式如下,其中真正的參數是 均值(期望)μ,和協方差矩陣 ∑。在這裏插入圖片描述
也就是說,在進行訓練時使用下面的公式,就可以得到每個類別對應的函數的均值(期望)μ,和協方差矩陣 ∑。(這個公式的證明實際上就是把L函數展開後求導,步驟與之前regression是類似的。)
在這裏插入圖片描述
現在,我們有了求參數的公式,和兩種class的數據,我們就可以求出“water”類和“normal”類的 μ,和協方差矩陣 ∑。也就是到這一步爲止,我們擁有了兩個可以用來對應兩個類的function。

在這裏插入圖片描述
接下來我們就可以開心地使用剛剛得到的兩個function來進行分類了。
如下圖,我們使用之前得到的公式和一些已知的數據,就可以得到對於某個vector X,它是從class 中抽出的概率。只要這個概率算出來 >0.5,我們就認爲這個X是從class 1中抽出的,也就是屬於class 1。
在這裏插入圖片描述
但是,我們這樣做以後實驗結果如下圖,下圖左上角就是這個分類的結果,它在testing data 上的正確率只有悲傷的47%。
於是啊我們就覺得,可能是這個參數的數目還不夠,只給出了兩個參數來進行分類,那麼最後得到的圖像是右上角的二維圖像,這個二維圖像的劃分顯然不能很好地區分開兩個class。所以接下來嘗試把所有的7個 features都放進去當做參數,但是這樣的正確率也只有54%(下圖寫的是64%,與老師的講課PPT有一些出入)。
在這裏插入圖片描述
接下來是對model 的改進。首先,協方差矩陣∑,是與輸入參數的個數的平方成正比的,而每一個class都會對應一個∑,這樣的話最後的P函數就會有過多的參數,而過多的參數很可能導致overfitting。那麼想要有效地減少參數,我們可以吧不同class的∑設置成一樣的。
在這裏插入圖片描述
使用這種方法時,各個class的μ還是各自求出,而共同的∑則按照加權平均的方式來求出(這裏的權重是指在training data 中各個class佔得權重,也就是出現的概率)
在這裏插入圖片描述
使用這種方式得到的結果如下右側所示,在共用同一個∑後,我們發現分類的邊界變成了一條直線。而在考慮了所有特徵值後,分類的正確率達到了73%,此處無法把圖片畫出,因爲有七個特徵值,實際上分類後的邊界是在一個七維空間中的。也就是說有時候看起來在二維上難以區分開的一些數據,可能在高維空間上是可以比較好地區分開的,而我們難以想象這樣的空間,這就是機器的優越性了。
在這裏插入圖片描述

分類問題的三步驟

第一步還是要找出一個function set 這次的這個function set的形式就是下圖藍色 方框內的樣子,其中P(C1),P(C2)是可以直接根據training data 的出來的,而P(x|C1)與P(x|C2)則是根據不同的class 1,class 2 的各自的高斯分佈算出來的。他們的μ,和協方差矩陣 ∑實際上就是這個function set裏面變化的參數(對照前面學的regression)。
然後我們要做的是從這個set裏面選出最佳的function,也就是找到最佳的 μ, ∑。在前面我們已經看到過如何計算最佳的 μ, ∑,他們的公式是很易於理解的。此外注意一下不同類的高斯分佈取一樣的∑,有時會有利於結果。所以第二步也很好解決。
在這裏插入圖片描述

是否還有其他的model來選擇?

這部分後續應該還會展開很多,此時強行深入理解有些困難,先了解一下我們在使用 model 的時候,不一定要使用高斯,有些時候使用伯努利分佈(二元)說是樸素貝葉斯(features 之間是 independent 的)分類是更合適的。
在這裏插入圖片描述

對公式的補充說明

對下圖第一行的公式我們還可以做出一些變化,讓計算的過程簡化一些。
可以看到,公式經過一下變化,可以變成激活函數的樣子。
在這裏插入圖片描述
經過一系列慘絕人寰的(主要是線代的過程)變換後,得到下面的結果。
可以看到,若使用一樣的 ∑,則可以簡化到 z = w * x + b,的形式。也就是說以後,只要求出N1,N2,μ1,μ2,和 ∑,就可以得到 w 和 b。N1,N2分別是class 1的樣本個數和class 2的樣本個數。

在這裏插入圖片描述

發佈了14 篇原創文章 · 獲贊 0 · 訪問量 446
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章