昨天提到了生成模型(Generative Model),要去計算事前機率(Prior Probability),還有從類別取樣出 的機率(Probability from Class)。今天就會從Probability from Class開始繼續介紹。
可以想像成是一個function,輸入為一個vector ,輸出為 從分佈裡面被取樣出來的機率。而機率的分佈由 平均值 以及 共變異數矩陣 決定。
假設我們從一個Gaussian裡面取樣出這79個點,並能透過這79個點估測出這個Gaussian的平均值 以及 ,那我們找一個新的點 ,帶入上圖中的公式就可以算出 從Gaussian裡面被取樣出來的機率,從下圖中也可以看到,如果這個 越接近 ,它被取樣出來的機率會比較大。
每個Gaussian都有可能取樣出這79個點,但它們取樣出這79個點的可能性(Likelihood)是不同的。從圖中可以看到左邊的Gaussian可以取樣出這79個點的可能性是比較高的,右邊的Gaussian的可能性是比較低的。
如果給我們某一個Gaussian的 ,我們就可以算出那個Gaussian的Likelihood,也就是說給我們一個Gaussian的 ,我們就可以算這個Gaussian取樣出這79個點的機率。
式子可以寫成:
我們的目標是要找到一個Gaussian取樣出這79個點的Likelihood是最大的,也就是說我們要窮舉所有的 ,看哪個可以讓Likelihood最大。
:找 的平均值,或是對 取微分,找微分是 0 的點解出來就是答案。
:先算出 ,再對所有的 都算 ,或是對 做微分,找微分是 0 的點解出來就是答案。
而有了兩個 class 的 我們就可以做分類的問題了。
因為共變異數矩陣是跟輸入的feature size的平方成正比,所以如果把兩個不同的Gaussian都給不同的共變異數矩陣,你的模型的參數可能就會太多,參數多,變異數就大,那就會很容易導致Overfitting的情況發生。
那為了減少參數我們就可以給這兩個class的feature分佈的Gaussian同樣的共變異數矩陣,再去計算Lilelihood,而 的計算方法跟前面提到的相同, 則是用 算出來的 分別去乘上 的個數,再除以兩個class的個數總和,也就是加權平均。
從圖中可以發現,如果共用同一個共變異數矩陣,它的boundary就會是一條直線,這樣的模型我們也稱之它為線性模型(Linear Model)。
之前提到機器學習就是三個步驟,那分類的機率模型也是三個步驟。
定義一個模型(model)
從模型裡挑出好的函式(function)
經由演算法找出最好的函式
將前面 的式子整理一下之後就會發現,它是一個Sigmoid function。
Sigmoid function在機器學習基本功(三) --- Regression裡面有介紹。
前面提到一般我們會假設共變異數矩陣是共用的,因此我們可以將 簡化如下圖所示。
即可將原本的式子寫成 ,從這個式子就可以看出 的時候,你的 class 1 跟 class 2 的boundary會是linear。