1. 程式人生 > >支援向量機1—線性可分支援向量機與硬間隔最大化

支援向量機1—線性可分支援向量機與硬間隔最大化

支援向量機(support vector machine, SVM)是一種二類分類模型。它的基本模型是定義在特徵空間上的間隔最大的線性分類器,間隔最大使它有別於感知機;支援向量還包括核技巧,這使它成為實質上的非線性分類器。支援向量機的學習策略就是間隔最大化,可形式化為一個求解凸二次規劃(convex quadratic programming)的問題,也等價於正則化的合頁損失函式的最小化問題。支援向量機的學習演算法時求解凸二次規劃的最優化演算法。

凸規劃

設S為n維歐式空間Rn(R的n次方)中的一個集合,若對S中任意兩點,連線它們的線段中任一點仍屬於S,那麼就說S為一個凸集。

對於S中的任意兩點x1,x2,對於任意的λ∈[0,1], 都有λx1+(1−λ)x2∈S,稱S為一個凸集。

x1,x2 為凸集中的任意兩點,λ∈[0,1],若滿足 f(λx1+(1−λ)x2)≤λf(x1)+(1−λ)f(x2),則稱函式為凸函式。線性函式是凸函式也是凹函式。

若最優化問題的目標函式為凸函式,不等式約束函式也為凸函式,等式約束函式是仿射的,則稱該最優化問題為凸規劃。凸規劃的可行域為凸集,因而凸規劃的區域性最優解就是它的全域性最優解。當凸規劃的目標函式為嚴格凸函式時,若存在最優解,則這個最優解一定是唯一的最優解。



KKT條件

對於含有不等式約束的優化問題,如何求取最優值呢?常用的方法是KKT條件,同樣地,把所有的不等式約束、等式約束和目標函式全部寫為一個式子L(a, b, x)= f(x) + a*g(x)+b*h(x) (a

0,b0),KKT條件是說最優值必須滿足以下條件:(1) g(x)≤0; (2) a≥0; (3) a*g(x)=0; 

綜述

支援向量機學習方法包含構建由簡至繁的模型:線性可分支援向量機、線性支援向量機及非線性支援向量機。當訓練資料線性可分時,通過硬間隔最大化,學習一個線性的分類器,即線性可分支援向量機,又稱為硬間隔支援向量機;當訓練資料近似線性可分時,通過軟間隔最大化,學習一個線性的分類器,即線性支援向量機,又稱軟間隔支援向量機;當訓練資料線性不可分時,可通過使用核技巧及軟間隔最大化,學習非線性支援向量機

當輸入空間為歐氏空間或離散集合,特徵空間為希爾伯特空間時,核函式表示將輸入從輸入空間對映到特徵空間得到的特徵向量之間的內積,通過使用核函式可以學習非線性支援向量機,等價於隱式地在高維的特徵空間中學習線性支援向量機。這樣的方法稱為核技巧。核方法是比支援向量機更為一般的機器學習方法。

線性可分支援向量與硬間隔最大化

1、線性可分支援向量機

對一個二類分類問題,假設輸入空間與特徵空間為兩個不同的空間。輸入空間為歐氏空間或離散集合,特徵空間為歐氏空間或希爾伯特空間。線性可分支援向量機、線性支援向量機假設這兩個空間的元素意義對應,並將輸入空間中的輸入對映為特徵空間中的特徵向量。非線性支援向量機利用一個從輸入空間到特徵空間的非線性對映將輸入對映為特徵向量。所以輸入都由輸入空間轉換到特徵空間,支援向量機的學習是在特徵空間進行的。

假設給定一個特徵空間上的訓練資料集T={(x1,y1),(x2,y2),...,(xN,yN)},其中xi∈χ=Rn,yi∈γ={-1,+1}。學習的目標是在特徵空間中找到一個分離超平面,能將例項分到不同類。分離超平面對應於方程 w*x+b=0,由法向量w和截距b決定。線性可分支援向量機利用間隔最大化求最優分離超平面,這時解是唯一的。

給定線性可分訓練資料集,通過間隔最大化或等價地求解相應的凸二次規劃問題學習得到的分離超平面以及相應的分類決策函式如下。

            

稱為線性可分支援向量機。

2、函式間隔與幾何間隔

對於給定的訓練資料集T和超平面(w,b),定義超平面(w,b)關於樣本點(xi,yi)的函式間隔為


函式間隔可以表示分類預測的正確性及確信度。但是選擇分離超平面時,只有函式間隔還不夠,因為只要成比例地改變w和b,如改為2w和2b,超平面並沒有改變,但函式間隔卻成為原來的2倍。所以可以對分離超平面的法向量w加某些約束,如規範化||w||=1,使得間隔是確定的。這時函式間隔成為幾何間隔。

對於給定的訓練資料集T和超平面(w,b),定義超平面(w,b)關於樣本點(xi,yi)的幾何間隔為


超平面(w,b)關於樣本點(xi,yi)的幾何間隔一般是例項點到超平面的帶符號的距離,當例項點被超平面正確分類時就是例項點到超平面的距離。

幾何間隔與函式間隔之間的關係如下


3、間隔最大化

支援向量機學習的基本想法是求解能夠正確劃分訓練資料集並且幾何間隔最大的分離超平面。對線性可分的訓練資料集而言,線性可分分離超平面有無窮多個,但是幾何間隔最大的分離超平面是唯一的。這裡的間隔最大化又稱為硬間隔最大化。

間隔最大化的直觀解釋是:對訓練資料集找到幾何間隔最大的超平面意味著以充分大的確信度對訓練資料進行分類。也就是說,不僅將正負例項點分開,而且對最難分的例項點(離超平面最近的點)也有足夠大的確信度將它們分開。這樣的超平面應該對未知的新例項有很好地分類預測能力。

所以間隔最大化問題可以表示為下面的約束最優化問題:

......................................................................(1)

....................................................................................(2)

..............................................................................(3)

對(1)式中的約束條件表示超平面(w,b)對每個樣本點的距離至少為y。根據幾何間隔與函式間隔的關係可以得到(2)式。由於函式間隔y_hat的取值並不影響優化問題的解,所以將y_hat設為1。另外,最小化1/||w||與最大化1/2*||w||2相同,所以可得(3)式。這是一個凸二次規劃問題。


4、學習的對偶演算法

為了求解線性可分支援向量機的最優化問題(式(3)),將它作為原始最優化問題,應用拉格朗日對偶性,通過求解對偶問題得到原始問題的最優解,這就是線性可分支援向量機的對偶演算法。這樣做的優點,一是對偶問題往往更容易求解;二是自然引入核函式,進而推廣到非線性分類問題。

構建拉格朗日函式。為此,對不等式約束引入拉格朗日乘子αi≥0,i=1,2,...,N,定義拉格朗日函式:


其中α=(α1,α2,...,αN)的轉置,為拉格朗日乘子向量。

根據拉格朗日對偶性,原始問題的對偶問題是極大極小問題: 

所以為了得到對偶問題的解,需要先求L(w,b,a)對w,b的極小,再求對α的極大。




用SMO演算法求出上式最小時對應的α向量的值α∗向量






參考:《統計學習方法》李航