支持向量機(SVM)原理分析

版權說明:碼字不易,轉載請註明出處:http://blog.csdn.net/flying_sfeng/article/details/79055411
支持向量機(SVM)是一種二分類模型。它的基本模型是定義在特徵空間上的間隔最大的線性分類器。支持向量機學習的基本思想是求解可以正確劃分訓練數據集而且幾何間隔最大的分離超平面。
對於下圖線性可分的狀況,SVM就是爲了找到一個最優的超平面,將正負樣本儘量地分開來,也就是說,咱們要找到分開樣本的最大間隔。
Fig1
先了解一下函數間隔和幾何間隔。
函數間隔
web

γ ^ ( i ) = y ( i ) ( w T x ( i ) + b )

其中, y ( i ) 爲標籤 ( y { 1 , 1 } )
y ( i ) = 1 時,爲了使間隔最大, w T x + b 必須是一個儘量大的正數,這樣才能確保分類正確的確信度最高。一樣地,當 y ( i ) = 1 時,爲了使間隔最大, w T x + b 必須是一個儘量大的負數。
而咱們的目的是最大化全部訓練樣本的最小間隔,即給定一個訓練集 S = { ( x ( i ) , y ( i ) ) ; i = 1 , . . . , m } ,咱們定義在S下 ( w , b ) 的函數間隔爲全部訓練樣本的函數邊界的最小值,則:
γ ^ = min i = 1 , . . . , m γ ^ ( i )

幾何間隔
如圖,
這裏寫圖片描述
假設 γ ( i ) 爲咱們要求的幾何間隔,咱們知道, w | | w | | w 方向上的單位向量,給定A: x ( i ) ,能夠獲得B: x ( i ) γ ( i ) w | | w | | ,又由於B位於決策邊界,因此B也知足 w T x + b = 0 ,代入得:
w T ( x ( i ) γ ( i ) w | | w | | ) + b = 0.

移項獲得:
γ ( i ) = w T x ( i ) + b | | w | | = ( w | | w | | ) T x ( i ) + b | | w | |

這只是一個方向上的,爲了知足正負樣本 y = ± 1 的狀況,更通常的,咱們能夠令
γ ( i ) = y ( i ) ( ( w | | w | | ) T x ( i ) + b | | w | | )

所以,幾何間隔與函數間隔的關係爲:
γ ( i ) = γ ^ ( i ) | | w | |

| | w | | = 1 時,幾何間隔就等於函數間隔。
一樣地,幾何間隔爲全部樣本距離分界面的間隔的最小值,則
γ = min i = 1 , . . . , m γ ( i )

間隔最大化:
間隔最大化的直觀解釋是:對訓練數據集找到幾何間隔最大的超平面,這意味着以充分大的確信度對訓練數據進行分類。也就是說,不只將正負實例點分開,並且對最難分的實例點(離超平面最近的點)也有足夠的確信度將它們分開。
下面考慮如何求得一個幾何間隔最大的分離超平面,即最大間隔分離超平面。具體地,這個問題能夠表示爲下面的約束最優化問題:
max w , b γ s.t. γ ( i ) = y ( i ) ( ( w | | w | | ) T x ( i ) + b | | w | | ) γ ,     i = 1 , 2 , . . . , N

即咱們但願最大化超平面(w,b)關於訓練數據集的幾何間隔 γ , γ 表示的是訓練數據集中的最小几何間隔,因此約束條件表示的是超平面(w,b)關於每一個訓練樣本點的幾何間隔至少是 γ .
考慮到幾何間隔與函數間隔的關係,可將這個問題改寫爲:
max w , b γ ^ | | w | | s.t. y ( i ) ( ( w | | w | | ) T x ( i ) + b | | w | | ) γ ^ | | w | | ,     i = 1 , 2 , . . . , N

將不等式兩邊的 | | w | | 約去,即:
max w , b γ ^ | | w | | s.t. y ( i ) ( w T x ( i ) + b ) γ ^ ,     i = 1 , 2 , . . . , N

函數間隔 γ ^ 的取值並不影響最優化問題的解。爲何呢?事實上,假設將w和b按比例改變成 λ w λ b ,這時函數間隔成爲 λ γ ^ 。把 λ w λ b λ γ ^ 分別代入上面的優化問題能夠獲得:
max w , b λ γ ^ | | λ w | | = λ γ ^ λ | | w | | s.t. y ( i ) ( ( λ w ) T x ( i ) + λ b ) λ γ ^ ,     i = 1 , 2 , . . . , N

兩個式子的 λ 均可以約去,所以,函數間隔的這一改變對上述目標函數的優化沒有影響,對不等式約束也沒有影響。也就是說,它產生了一個等價的最優化問題。因此,咱們就能夠取 γ ^ = 1 , 將 γ ^ = 1 代入上面的最優化問題中,考慮到最大化 1 | | w | | 和最小化 1 2 | | w | | 2 是等價的,因而就獲得了下面的線性可分支持向量機學習的最優化問題:
min w , b 1 2 | | w | | 2 s.t. y ( i ) ( w T x ( i ) + b ) 1 0 ,     i = 1 , 2 , . . . , N

若是求出了上述約束最優化問題的解 w , b , 那麼就能夠獲得最大間隔超平面 w x + b = 0 及分類決策函數 f ( x ) = s i g n ( w x + b ) , 即線性可分支持向量機模型。
接下來考慮 對偶問題
咱們暫時先無論以上的優化式子,考慮通常化的條件:
min w f ( w )  s.t.  h i ( w ) = 0 ,   i = 1 , . . . , l .

這是含有等式約束的最小化問題,能夠用拉格朗日乘子方法求解。
以上含等式約束的問題能夠轉換爲如下拉格朗日函數:
L ( w , β ) = f ( w ) + i = 1 l β i h i ( w )

其中 β i 爲拉格朗日乘子,令 L 的導數等於零:
L w i = 0 ;   L β i = 0

能夠求出 w β .
接下來咱們看一下含有不等式約束的最優化問題。原問題:
min w f ( w ) s.t. g i ( w ) 0 ,   i = 1 , . . . , k h i ( w ) = 0 ,   i = 1 , . . . , l .

爲了解決這個不等式約束問題,咱們定義如下的拉格朗日函數:
L ( w , α , β ) = f ( w ) + i = 1 k α i g i ( w ) + i = 1 k β i h i ( w ) .

其中 α i , β i 爲拉格朗日乘子。
考慮如下等式:
θ p ( w ) = max α , β : α i 0 L ( w , α , β )

當違背約束時(即存在 i , 使得 g i ( w ) > 0 h i ( w ) 0 ),
θ p ( w ) = max α , β : α i 0 f ( w ) + i = 1 k α i g i ( w ) + i = 1 k β i h i ( w ) =

而當不等式約束跟等式約束都知足時, θ p ( w ) = f ( w ) ,即:
θ p ( w ) = { f ( w ) , 若是w知足全部約束 , 不然

這就是要最大化拉格朗日函數的緣由。當不等式約束跟等式約束都知足要求時, θ p ( w ) = f ( w ) ; 當違背約束時, θ p ( w ) 趨向於無窮大,式子無解,這樣作至關於把約束放到了上述式子中了。同時,咱們最小化 f ( w ) ,就至關於最小化 θ p ( w ) .即:
p = min w θ p ( w ) = min w max α , β : α i 0   L ( w , α , β )

p 即爲原問題的解。
接下來咱們最小化拉格朗日函數,
θ d ( α , β ) = min w L ( w , α , β )

由此咱們能夠列出對偶優化問題:
d = max α , β : α i 0 θ d ( α , β ) = max α , β : α i 0 min w   L ( w , α , β )

d 即爲對偶問題的解。
原問題跟對偶問題有什麼關係呢?關係以下:
d = max α , β : α i 0 min w   L ( w , α , β ) min w max α , β : α i 0   L ( w , α , β ) = p

當拉格朗日乘子的解 w , α , β 知足如下的KKT條件時, d = p :
(27) L ( w , α , β ) w i = 0 ,     i = 1 , . . . , n (28) L ( w , α , β ) β i = 0 ,     i = 1 , . . . , l (29) α i g i ( w ) = 0 ,     i = 1 , . . . , k (30) g i ( w ) 0 ,     i = 1 , . . . , k (31) α 0 ,     i = 1 , . . . , k

下面,將證實原問題與對偶問題的關係的由來。
咱們再次寫下拉格朗日函數:
L ( w , α , β ) = f ( w ) + i = 1 k α i g i ( w ) + i = 1 k β i h i ( w ) .

如下式子恆成立( s u p 表示上確界, i n f 表示下确界):
(32) inf w W L ( w , α , β ) L ( w , α , β ) ,     w , α , β (33) sup α , β : α i 0 L ( w , α , β ) L ( w , α , β ) ,     w , α , β

令:
(34) q ( α , β ) = inf w W L ( w , α , β ) (35) f ( w ) = sup α , β : α i 0 L ( w , α , β )

因此,有:
q ( α , β ) f ( w )

所以:
sup α , β : α i 0 q ( α , β ) inf w W f ( w )

即:
sup α , β : α i 0 inf w W L ( w , α , β ) inf w W sup α , β : α i 0 L ( w , α , β )

等式成立的條件是: L ( w , α , β ) 的第二項跟第三項爲零,即:
(36) α i 0 ,     i (37) g i ( w ) 0 ,     i (38) α i g i ( w ) = 0 ,     i (39) h i ( w ) = 0 ,     i

也就是說,當變量知足KKT條件時,對偶問題的解等於原問題的解。

優化問題的求解:
再次寫下咱們要求解的優化問題:
算法

min w , b 1 2 | | w | | 2 s.t. y ( i ) ( w T x ( i ) + b ) 1 0 ,     i = 1 , 2 , . . . , N

拉格朗日函數以下:
L ( w , α , β ) = 1 2 | | w | | 2 + i = 1 m α i [ 1 y ( i ) ( w T x ( i ) + b ) ] .

咱們經過求解對偶問題來獲得原問題的解,固然前提是必須知足KKT條件。
對偶問題以下:
max α i 0 min w , b 1 2 | | w | | 2 + i = 1 m α i [ 1 y ( i ) ( w T x ( i ) + b ) ] .

對於這個問題,咱們先經過最小化 L ( w , α , β ) 來求出 w , b ( α ) ,具體作法是使L對w,b的導數爲零。對w求導:
w L ( w , b , α ) = w i = 1 m α i y ( i ) x ( i ) = 0

即:
w = i = 1 m α i y ( i ) x ( i )

對b求導:
b L ( w , b , α ) = i = 1 m α i y ( i ) = 0

將上述兩式代入到拉格朗日函數中,能夠獲得:
L ( w , b , α ) = i = 1 m α i 1 2 i = 1 m j = 1 m y ( i ) y ( j ) α i α j ( x ( i ) ) T x ( j )

所以,優化問題可寫成下列形式:
max α i = 1 m α i 1 2 i = 1 m j = 1 m y ( i ) y ( j ) α i α j ( x ( i ) ) T x ( j ) s.t. α i 0 ,   i = 1 , . . . , m i = 1 m α i y ( i ) = 0

這就變成了對 α 的單變量優化問題。對 α 的求解可使用SMO算法,咱們後面會講到。假設咱們已經求解出 α , 那麼咱們能夠經過 w = i = 1 m α i y ( i ) x ( i ) 求出w,可是b該怎麼求解呢?
當i爲支持向量時,咱們能夠獲得函數間隔: y ( i ) ( w T x ( i ) + b ) = γ ^ ,即:
max i : y ( i ) = 1 w T x ( i ) + b = γ ^ min i : y ( i ) = 1 w T x ( i ) + b = γ ^

以上兩式相加能夠獲得b:
b = max i : y ( i ) = 1 w T x ( i ) + min i : y ( i ) = 1 w T x ( i ) 2 .

所以,對於一個待預測的樣本,咱們能夠獲得:
w T x + b = i = 1 m α i y ( i ) ( x ( i ) ) T x + b = i = 1 m α i y ( i ) x ( i ) , x + b .

w T x + b > 0 時咱們把該樣本預測爲正樣本, w T x + b 0 時預測爲負樣本。

核函數:
在前面的討論中,咱們假設訓練樣本時線性可分的,即存在一個劃分超平面能將訓練樣本正確分類。然而在現實任務中,原始樣本空間內也許並不存在一個能正確劃分兩類樣本的超平面。對於這樣的問題,可將樣本從原始空間映射到一個更高維的特徵空間,使得樣本在這個特徵空間內線性可分。幸運的是,若是原始空間是有限維,即屬性數有限,那麼必定存在一個高維特徵空間使樣本可分。(參考《機器學習》6.3節 周志華著)
核函數的定義:
設X是原始輸入空間,H爲特徵空間(希爾伯特空間),若是存在一個從X到H 的映射:
機器學習

ϕ ( x ) : X H

使得對全部 x , z X , 函數 K ( x , z ) 知足條件:
K ( x , z ) = ϕ ( x ) , ϕ ( z )

則稱 K ( x , z ) 爲核函數, ϕ ( x ) 爲映射函數,式中 ϕ ( x ) , ϕ ( z ) ϕ ( x ) ϕ ( z ) 的內積。
核技巧的想法是:在學習與預測中只定義核函數 K ( x , z ) ,而不顯式地定義映射函數 ϕ 。一般,直接計算 K ( x , z ) 比較容易,而經過 ϕ ( x ) ϕ ( z ) 計算 K ( x , z ) 並不容易。這是由於, ϕ 是原始輸入空間X到特徵空間H地映射,特徵空間H通常是高維的,甚至是無窮維的。
通俗點講,對於在原始空間內線性不可分的狀況,咱們能夠將原始空間映射到高維空間,高維空間的內積計算使用核函數代替。
所以,咱們的目標函數的對偶問題能夠寫成下列形式:
max α i = 1 m α i 1 2 i = 1 m j = 1 m y ( i ) y ( j ) α i α j k ( x ( i ) , x ( j ) ) s.t. α i 0 ,   i = 1 , . . . , m i = 1 m α i y ( i ) = 0

求解後便可獲得:
f ( x ) = w T ϕ ( x ) + b = i = 1 m α i y ( i ) ϕ ( x ( i ) ) T ϕ ( x ) + b = i = 1 m α i y ( i ) k ( x ( i ) , x ) + b

那麼,什麼樣的函數能作核函數呢?咱們有下面的定理:
定理:令 X 爲原始輸入空間, k ( x ( i ) , x ( j ) ) 是定義在 X × X 上的對稱函數,則 k 是核函數當且僅當對於任意數據 D = x ( 1 ) , x ( 2 ) , . . . , x ( m ) , 核矩陣 K 老是半正定的:
K = [ k ( x ( 1 ) , x ( 1 ) ) k ( x ( 1 ) , x ( j ) ) k ( x ( 1 ) , x ( m ) ) k ( x ( i ) , x ( 1 ) ) k ( x ( i ) , x ( j ) ) k ( x ( i ) , x ( m ) ) k ( x ( m ) , x ( 1 ) ) k ( x ( m ) , x ( j ) ) k ( x ( m ) , x ( m ) ) ]

定理代表,只要一個對稱函數所對應的核矩陣半正定,它就能做爲核函數使用。
定理證實:若是 k 是一個有效的核函數,那麼 k ( x ( i ) , x ( j ) ) = ϕ ( x ( i ) ) T ϕ ( x ( j ) ) == ϕ ( x ( j ) ) T ϕ ( x ( i ) ) = k ( x ( j ) , x ( i ) ) , 所以核函數 k 必須是對稱的。另外,對於任意向量 z ,咱們有:
z T K z = i j z i k ( x ( i ) , x ( j ) ) z j = i j z i ϕ ( x ( i ) ) T ϕ ( x ( j ) ) z j = i j z i k ϕ k ( x ( i ) ) ϕ k ( x ( j ) ) z j = k i j z i ϕ k ( x ( i ) ) ϕ k ( x ( j ) ) z j = k ( i z i ϕ k ( x ( i ) ) ) 2 0.

所以,核矩陣 K 必須是半正定的。證畢。
經常使用核函數:
相關文章
相關標籤/搜索