SVM入門 線性分類器(2)

線性分類器(一定意義上,也可以叫做感知機) 是最簡單也很有效的分類器形式.在一個線性分類器中,可以看到SVM形成的思路,並接觸很多SVM的核心概念.

用一個二維空間裏僅有兩類樣本的分類問題來舉個小例子。如圖所示

SVM入門(二)線性分類器Part 1

­C1和C2是要區分的兩個類別,在二維平面中它們的樣本如上圖所示。中間的直線就是一個分類函數,它可以將兩類樣本完全分開。一般的,如果一個線性函數能夠將樣本完全正確的分開,就稱這些數據是線性可分的,否則稱爲非線性可分的。

什麼叫線性函數呢?在一維空間裏就是一個點,在二維空間裏就是一條直線,三維空間裏就是一個平面,可以如此想象下去,如果不關注空間的維數,這種線性函數還有一個統一的名稱——超平面(Hyper Plane)!

實際上,一個線性函數是一個實值函數(即函數的值是連續的實數),而我們的分類問題(例如這裏的二元分類問題——回答一個樣本屬於還是不屬於一個類別的問題)需要離散的輸出值,例如用1表示某個樣本屬於類別C1,而用0表示不屬於(不屬於C1也就意味着屬於C2),這時候只需要簡單的在實值函數的基礎上附加一個閾值即可,通過分類函數執行時得到的值大於還是小於這個閾值來確定類別歸屬。 例如我們有一個線性函數

g(x)=wx+b

我們可以取閾值爲0,這樣當有一個樣本xi需要判別的時候,我們就看g(xi)的值。若g(xi)>0,就判別爲類別C1,若g(xi)<0,則判別爲類別C2(等於的時候我們就拒絕判斷,呵呵)。此時也等價於給函數g(x)附加一個符號函數sgn(),即f(x)=sgn [g(x)]是我們真正的判別函數。

關於g(x)=wx+b這個表達式要注意三點:一,式中的x不是二維座標系中的橫軸,而是樣本的向量表示,例如一個樣本點的座標是(3,8),則xT=(3,8) ,而不是x=3(一般說向量都是說列向量,因此以行向量形式來表示時,就加上轉置)。二,這個形式並不侷限於二維的情況,在n維空間中仍然可以使用這個表達式,只是式中的w成爲了n維向量(在二維的這個例子中,w是二維向量,注意這裏的w嚴格的說也應該是轉置的形式,爲了表示起來方便簡潔,以下均不區別列向量和它的轉置,聰明的讀者一看便知);三,g(x)不是中間那條直線的表達式,中間那條直線的表達式是g(x)=0,即wx+b=0,我們也把這個函數叫做分類面。

實際上很容易看出來,中間那條分界線並不是唯一的,我們把它稍微旋轉一下,只要不把兩類數據分錯,仍然可以達到上面說的效果,稍微平移一下,也可以。此時就牽涉到一個問題,對同一個問題存在多個分類函數的時候,哪一個函數更好呢?顯然必須要先找一個指標來量化“好”的程度,通常使用的都是叫做“分類間隔”的指標。下一節我們就仔細說說分類間隔,也補一補相關的數學知識。

/////////////////////////////////////////////////////////////////////////////

上回說到對於文本分類這樣的不適定問題(有一個以上解的問題稱爲不適定問題),需要有一個指標來衡量解決方案(即我們通過訓練建立的分類模型)的好壞,而分類間隔是一個比較好的指標。

在進行文本分類的時候,我們可以讓計算機這樣來看待我們提供給它的訓練樣本,每一個樣本由一個向量(就是那些文本特徵所組成的向量)和一個標記(標示出這個樣本屬於哪個類別)組成。如下:

Di=(xi,yi)

xi就是文本向量(維數很高),yi就是分類標記。

在二元的線性分類中,這個表示分類的標記只有兩個值,1和-1(用來表示屬於還是不屬於這個類)。有了這種表示法,我們就可以定義一個樣本點到某個超平面的間隔:

δi=yi(wxi+b)

這個公式乍一看沒什麼神祕的,也說不出什麼道理,只是個定義而已,但我們做做變換,就能看出一些有意思的東西。

首先注意到如果某個樣本屬於該類別的話,那麼wxi+b>0(記得麼?這是因爲我們所選的g(x)=wx+b就通過大於0還是小於0來判斷分類),而yi也大於0;若不屬於該類別的話,那麼wxi+b<0,而yi也小於0,這意味着yi(wxi+b)總是大於0的,而且它的值就等於|wxi+b|!(也就是|g(xi)|)

現在把w和b進行一下歸一化,即用w/||w||和b/||w||分別代替原來的w和b,那麼間隔就可以寫成

SVM入門(三)線性分類器Part 2

這個公式是不是看上去有點眼熟?沒錯,這不就是解析幾何中點xi到直線g(x)=0的距離公式嘛!(推廣一下,是到超平面g(x)=0的距離, g(x)=0就是上節中提到的分類超平面)

小Tips:||w||是什麼符號?||w||叫做向量w的範數,範數是對向量長度的一種度量。我們常說的向量長度其實指的是它的2-範數,範數最一般的表示形式爲p-範數,可以寫成如下表達式

向量w=(w1, w2, w3,…… wn)

它的p-範數爲

SVM入門(三)線性分類器Part 2

看看把p換成2的時候,不就是傳統的向量長度麼?當我們不指明p的時候,就像||w||這樣使用時,就意味着我們不關心p的值,用幾範數都可以;或者上文已經提到了p的值,爲了敘述方便不再重複指明。

當用歸一化的w和b代替原值之後的間隔有一個專門的名稱,叫做幾何間隔,幾何間隔所表示的正是點到超平面的歐氏距離,我們下面就簡稱幾何間隔爲“距離”。以上是單個點到某個超平面的距離(就是間隔,後面不再區別這兩個詞)定義,同樣可以定義一個點的集合(就是一組樣本)到某個超平面的距離爲此集合中離超平面最近的點的距離。下面這張圖更加直觀的展示出了幾何間隔的現實含義:

SVM入門(三)線性分類器Part 2

H是分類面,而H1和H2是平行於H,且過離H最近的兩類樣本的直線,H1與H,H2與H之間的距離就是幾何間隔。

之所以如此關心幾何間隔這個東西,是因爲幾何間隔與樣本的誤分次數間存在關係:

SVM入門(三)線性分類器Part 2

其中的δ是樣本集合到分類面的間隔,R=max ||xi|| i=1,...,n,即R是所有樣本中(xi是以向量表示的第i個樣本)向量長度最長的值(也就是說代表樣本的分佈有多麼廣)。先不必追究誤分次數的具體定義和推導過程,只要記得這個誤分次數一定程度上代表分類器的誤差。而從上式可以看出,誤分次數的上界由幾何間隔決定!(當然,是樣本已知的時候)

至此我們就明白爲何要選擇幾何間隔來作爲評價一個解優劣的指標了,原來幾何間隔越大的解,它的誤差上界越小。因此最大化幾何間隔成了我們訓練階段的目標,而且,與二把刀作者所寫的不同,最大化分類間隔並不是SVM的專利,而是早在線性分類時期就已有的思想。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章