第七章 支持向量機(一)線性可分支持向量機與硬間隔最大化

模型: 二類分類模型
3種支持向量機模型
線性可分支持向量機:硬間隔最大化+線性分類器
線性支持向量機:軟間隔最大化+線性分類器
非線性支持向量機:核技巧+軟間隔最大化
策略:形式化爲求解凸二次規劃問題
算法: 求解凸二次規劃的最優化算法

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

訓練數據集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . ( x n , y n ) }
x i R n , y i { + 1 , 1 }

f ( x ) = s i g n ( w x + b )

參數 w , b
和感知機一樣,學習的目標是在特徵空間中尋找一個分離超平面。
感知機的策略是:誤分類最小,解不唯一
線性可分SVM:間隔最大化,解唯一

一、 函數間隔與幾何間隔

樣本的函數間隔

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

訓練集的函數間隔
γ ^ = m i n i = 1 , . . . n γ i ^

函數間隔可以表示分類預測的正確性及確信度
符號爲正表示分類正確;反之錯誤
數值越小,表示離超平面越近,該點的預測就不那麼確信。
成比例的改變 w , b ,超平面不變,函數間隔成倍的改變
樣本的幾何間隔
γ i = y i ( w | | w | | x i + b | | w | | )

訓練集的幾何間隔
γ = m i n i = 1 , . . . n γ i

函數間隔和幾何間隔的關係
γ i = γ i ^ | | w | |

γ = γ ^ | | w | |

幾何間隔是有符號的,分類正確時纔等於點到超平面的距離

二、硬間隔最大化

感知機中有無數的分離超平面,而哪一個纔是最好的(泛化能力最強)?
SVM直觀想法:離超平面最近的點儘可能的遠離超平面
我們最關心的的是離超平面最近的點(最難分的點),如果超平面有足夠大的確信度將他們分開,這個超平面應該對未知的新實例有很好的分類預測能力。
幾何間隔最大的分離超平面可以表示爲下面的約束最優化問題

m a x w , b γ

s . t . y i ( w | | w | | x i + b | | w | | ) γ , i = 1 , 2 , . . n

由函數間隔和幾何間隔的關係,得
m a x w , b γ ^ | | w | |

s . t . y i ( w x i + b ) γ ^ , i = 1 , 2 , . . n

縮放超平面的參數,函數間隔的取值是可以任意改變的,因此將最小的函數間隔取爲1( γ ^ = 1
最大化 1 | | w | | 等價於最小化 1 2 | | w | | 2
線性可分支持向量機的最優化問題爲
(1) m i n w , b 1 2 | | w | | 2

(2) s . t . y i ( w x i + b ) + 1 0 , i = 1 , 2 , . . n

三、支持向量與間隔邊界

支持向量: 訓練集中離超平面最近的點(是使約束條件等號成立的點)
超平面 w x + b = + 1 w x + b = 1 稱爲間隔邊界。
這裏寫圖片描述
在決定超平面時只有支持向量其作用。如果移動支持向量將改變所求解,但是如果在間隔邊界以外移動其他點,甚至刪去這些點,則解是不會改變的。

四、對偶算法

這部分需要先了解拉格朗日對偶,以下表述有部分不嚴謹

4.1、對偶算法一般步驟

1.把約束優化問題寫成規範的原始問題(規範的原始問題的目標函數是最小化問題,不等式約束是小於等於)
2.引入拉格朗日乘子,構建拉格朗日函數L
3.求解對偶問題的解,L的極大極小問題,(先極小求偏導,再極大用SMO算法)
4.根據KKT條件得到原始問題解和對偶問題解的關係。

4.2、線性可分SVM應用對偶算法

1.公式(1)(2)已經是規範的原始問題
2.構建拉格朗日函數(引入拉格朗日乘子 α i 0 , i = 1 , 2... n ,把約束問題寫成無約束)

L ( w , b , α ) = 1 2 | | w | | 2 i = 1 n α i y i ( w x i + b ) + i = 1 n α i

3.原始問題的解等價於先求拉格朗日函數對 α 求極大,再對 w , b 求極小。解是 w , b
原始問題 = L的極小極大問題
對偶問題的解等價於先求拉格朗日函數對 w , b 求極小,再對 α 求極大。解是 α
對偶問題 = L的極大極小問題

m a x α m i n w , b L ( w , b , α )

(1) 求 m i n w , b L ( w , b , α )
公式敲不動了,手寫字真醜ヽ(`Д´)ノ︵ ┻━┻ ┻━┻
這裏寫圖片描述
通過求導和回代就得到了
m i n w , b L ( w , b , α ) = 1 2 i = 1 n j = 1 n α i α j y i y j ( x i x j ) + i = 1 n α i

(2) 求 m i n w , b L ( w , b , α ) α 的極大,即對偶問題

(3) m a x α 1 2 i = 1 n j = 1 n α i α j y i y j ( x i x j ) + i = 1 n α i

(4) s . t . i = 1 n α i y i = 0

(5) α i 0 , i = 1 , 2 , . . . n


對偶問題的解公式(3)-(5),可以通過SMO算法求解得到
4.原始問題解和對偶問題解的關係。
定理:目標函數和不等式約束是凸函數,等式約束是仿射函數,不等式約束是嚴格可執行的。
w , b α 是原始問題和對偶問題的解的充要條件是 w , b α 滿足KKT條件。
KKT條件:
1.解的偏導=0,
2.解滿足不等式約束,
3.解滿足等式約束,
4.拉格朗日乘子大於等於0,
5. 對偶互補條件:拉格朗日乘子大於0時,解的不等式約束的等號成立
線性可分支持向量機的KKT條件
w L ( w , b , α ) = w i = 1 n α i y i x i = 0

b L ( w , b , α ) = i = 1 n α i y i = 0

y i ( w x i + b ) 1 0 , i = 1 , 2 , . . . n

α i 0 , i = 1 , 2 , . . . n

α i ( y i ( w x i + b ) 1 ) = 0 , i = 1 , 2 , . . . n

由第一個偏導得到
(6) w = i α i y i x i

參數 b 是根據對偶互補條件得到的。
如果每個 α 都等於0,那麼 w = 0 ,w^*=0不是原問題的解。所以至少有一個 α > 0
設存在下標 j ,使得 α j > 0 ,互補條件知
y j ( w x j + b ) 1 = 0

y j 2 = 1
(7) b = y j i = 1 n α i y i ( x i x j )

由公式(6)(7)知, w b 只依賴於訓練數據集中 α > 0 的樣本點(稱這樣的點爲支持向量),而其他樣本點對 w b 沒有影響。
根據互補條件知 α > 0

y j ( w x j + b ) = 1

樣本的函數間隔爲1,這與之前定義的支持向量是一致的。
疑問??
1. 爲什麼KKT條件沒有對 α 求偏導 2. KKT條件中對b求偏導得到的公式,說明支持向量是成對的? 3. b的取值有多個嗎?超平面不是唯一的嗎