ML Lecture - Classification & Logistic Regression

tags: Hung-yi Lee ML Lecture

Classification

在Classfication中,我們輸入一個X,而model告訴我們X的類別
ex. 機器翻譯、文法偵錯、臉部表情偵測…等

得到寶可夢的特徵並數值化

example of Classification(Pokemon)

以二分類為例,我們可以使用Regression。
輸出為{1, -1},即輸出為1到-1之間,接近1為class1,接近-1為class2。則我們以0為分界,若輸入大於0為class1,反之則為class2。

Why not Regression

在Linear Regression中,做Binary Classification是可行的。
但若資料是分群的(如右圖Class1),則會造成model收斂於紫線(為了降低誤差)。

Ideal Alternatives

先定義一function f(x),裡面有一g(x)。將x帶入g(x),若g(x)>0為類別1,否則為類別0。
定義Loss function L(f):f(x)分類錯誤的次數。

以機率模型實現

以箱子抽球為例

將Box變為class,給一個x(要分類的對象),它屬於某個class的機率為何,我們需要知道:

  • $P(C1)$:從class1抽出來的機率
  • $P(C2)$:從class2抽出來的機率
  • $P(x|C1)$:從class1抽出x的機率
  • $P(x|C2)$:從class2抽出x的機率

有了上面四種機率,就可以計算出$P(C1|x)$的機率(x是class1的機率)

example

如何判斷一個未出現在training set的data的機率?

假設從Gaussian中取出79個點,現在給一個新的點(不存在79個資料集中的新資料),就可以利用Gaussian Distribution function來計算出抽到該點的機率。

以分佈來看,該點愈接近中心點被抽到的機率會愈高,離中心愈遠被抽到的機率則愈低,因此黑點,New $x$離中心有點遠,被抽到的機率就會有點小。

所以,如何找出$μ$與$Σ$就是一個問題,而找出它們的概念就是Maximum Likelihood。

任何一個Gaussian Distribution都可以找出這79個點,只是可能性(Likelihood)不同。以右上分佈為例,它sample出左下角的機率很低,但不會為0。而要找出最大的$μ$與$Σ$,就必須用Likelihood function,即這79個點的乘積。

Maximum Likelihood

  • 要找出最大的function,就必須找出最大的$μ$與$Σ$,即($μ^*$, $Σ^*$)
    • 窮舉所有的$μ^*$和$Σ^*$,並找出最大的者:$μ^∗,Σ^∗$$=arg$ $\max\limits_{μ,Σ}L(μ,Σ)$

算出$μ^*$和$Σ^*$的方法就如同機率與統計的算法一樣。

有了上面的公式就可以求出兩個calss的各別$μ$與$Σ$,也就可以計算出$P(C1|X)$。

Now we can do classification

若$P(C1|X)>0.5$,這個$x$就屬於class1

How’s the results?

由右上圖可明顯的看出來這二類別並未有個明顯的分界。即使考慮了額外的七個特徵(類別),正確率也沒有明顯的提升。

Modifying Model

在實務上並不會讓每個高斯模型都擁有自己的$μ$和$Σ$,而是會共享參數,藉此減少參數的計算量。常見作法是不同類別有著相同的$Σ$。

Modifying Model-2

調整式子,讓水系與一般系神奇寶貝擁有相同的covariance,計算它們的likelihood:

  • $L(μ^1,μ^2,Σ)=f_{u^1,Σ}(x^1)f_{u^1,Σ}(x^2)…f_{u^1,Σ}(x^{79})f_{u^2,Σ}(x^{80})f_{u^2,Σ}(x^{81})…f_{u^2,Σ}(x^{140})$

Modifying Model-Result

共用covariance之後,分界變為線性,這也稱為線性模型,並且考慮所有特徵之後正確率提升為73%。

Three Steps(Review)

  • Model
    • 有P(C1),P(C2),P(x|C1),P(x|C2)四種機率分佈,這就是模型的參數,只要你選不同的μ(mean)與Σ(covariance),就會得到不同的機率分佈模型。
    • P(C1)>0.5, class=1
  • Goodness of a function
    • 要得到最好的模型,就必須找到最大的$μ$與$Σ$,以Maximum Likelihood求得。

Posterior Probability


補充

假設$μ$與$Σ$為已知,將高斯函數在$z$展開並將共同係數提出整理,得:

可得知$P(C1|x)=σ(z)=σ(w⋅x+b)$,由此可證明當兩類別為同一分佈時,分界線會呈線性的。

以上計算步驟太繁瑣了,能不能直接得到w及b呢?-Logistic Regression


Lecture 5 Logistic Regression

Step 1:Function Set

我們要找posteriori probability,當機率$P_{w,b}(C_{1}|x)≥0.5$則輸出$C_{1}$,否則即輸出$C_{2}$。

Step 2: Goodness of a Function

設我們有任一組w,b可產生N筆Data($x^1 … x^N$)
與Chapter 4 進行Classification時相同,用Maximum Likelihood找w,b。






Comparison-Logistic v.s. Linear

我們可以發現,在更新參數$w_{i}$ Logistic 和 Linear 是一樣的,差別在於輸出(紫色線部分)。前者輸出介於0到1之間,後者則可為任何數值。

Limitation of Logistic Regression

使用Regression分類就是找到一條直線去分類資料


x1,x2為座標點,-0.5為bias $b$

XOR Problem

但今天資料為分散的,就難以以一條線去做簡單分類。


這時我們就可將多一點的Regression疊在一起,輸出時再多加一層Regression來分類。

That’s Deep Learning


補充:Perceptron v.s. Logistic Regression

傳統的Perceptron使用step function當作輸出。

因step function為非線性,難以用微分計算誤差,故改用Sigmoid $σ(in)$。