支持向量機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) (a0,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算法求出上式最小時對應的α向量的值α∗向量







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