Support Vector Machine(1):線性可分集的決策邊界


Logistuc Regression相比,SVM是一種優化的分類算法,其動機是尋找一個最佳的決策邊界,使得從決策邊界與各組數據之間存在margin,並且需要使各側的margin最大化。比較容易理解的是,從決策邊界到各個training example的距離越大,在分類操作的差錯率就會越小。因此,SVM也叫作Large Margin Classifier。

 

最簡單的情況是,在二維平面中的,線性可分情況,即我們的training set可以用一條直線來分割稱為兩個子集,如下圖所示。而在圖中我們可以看到,H2和H3都可以正確的將training set進行分類,但細細想來,使用H2進行分類的話,我們對於靠近藍線的幾個訓練樣例其實是不敢說100%的,但對於離藍線最遠的小球,我們卻很有把握。這也是H3這條SVM紅線出現的原因:盡量讓兩側的訓練樣例遠離決策邊界,從而讓我們的分類系統有把握對每個球Say Absolutely。

Logistic Regression中,我們將類別y定義為0和1,從而把h(x)看做p(y=1)的概率,而在SVM里,我們將其定義為-1和+1。而我們所需要在n維空間中尋找的超平面,則被定義為:

由此,分類函數可以定義為:

將training example的坐標帶入可以得到三種結果:f(x)=0,則該點處於決策平面上;f(x)>0,屬於y=1類;f(x)<0,屬於y=-1類。而對於每個訓練樣例,我們可以通過計算如下定義的“函數間隔”(functional margin),來判斷是否分類正確(數值為負則說明錯誤),以及通過數值大小看出測試點與決策平面的距離:

而真正表征SVM決策邊界margin寬窄的,是上式中值最小的那個,也就是說,距離邊界最近的點,其到邊界的距離,決定了margin的大小。

而上式得出的函數間隔,實際上並不是該間隔真正的長度值,所以我們需要計算“幾何間隔”(geometric margin),即點到平面距離公式:

帶入SVM公式,的幾何間隔計算公式:

此時,我們想要做的事情是,最大化這個幾何距離:

那么,如此看來,我們已經ok了,如下圖:

我們現在得到的三個hyperplane的方程為:

在這種情況下,margin是多少呢,根據平行線的距離公式:

在這里其實我糾結了很長時間,因為很多課程從此就說的不太詳細了,也許是我個人的數學水平較差吧,所以就花了很久去思考。首先,我們考慮到這個幾何距離gamma,肯定是一個常數,因為當我們的f(x)確定,數據集確定以后,它就是離f(x)最近的點到f(x)=0這條直線的距離。那么,我們上述的三個方程,同時除以一個常數,一切會改變嗎?首先,可以確定,3個方程一點也不會變,2x+4=6與x+2=3,是一樣的對嗎?那么我當時就想了,這波操作后,margin肯定會變的!實際上,由於gamma和w之間的線性關系,margin也是不變的,所以相當於,我們修改了w,從而消去了gammar。

而單邊的margin則等於總margin的一半:

則問題轉化為:

 求解w的過程請見:Support Vector Machine(2):求解線性可分SVM的最佳邊界


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM