模型: 二類分類模型
3種支持向量機模型
線性可分支持向量機:硬間隔最大化+線性分類器
線性支持向量機:軟間隔最大化+線性分類器
非線性支持向量機:核技巧+軟間隔最大化
策略:形式化爲求解凸二次規劃問題
算法: 求解凸二次規劃的最優化算法
線性可分支持向量機與硬間隔最大化
訓練數據集
D={(x1,y1),(x2,y2)...(xn,yn)}
xi∈Rn,yi∈{+1,−1}
f(x)=sign(w⋅x+b)
參數
w,b
。
和感知機一樣,學習的目標是在特徵空間中尋找一個分離超平面。
感知機的策略是:誤分類最小,解不唯一
線性可分SVM:間隔最大化,解唯一
一、 函數間隔與幾何間隔
樣本的函數間隔
γi^=yi(w⋅xi+b)
訓練集的函數間隔
γ^=mini=1,...nγi^
函數間隔可以表示分類預測的正確性及確信度
符號爲正表示分類正確;反之錯誤
數值越小,表示離超平面越近,該點的預測就不那麼確信。
成比例的改變
w,b
,超平面不變,函數間隔成倍的改變
樣本的幾何間隔
γi=yi(w||w||⋅xi+b||w||)
訓練集的幾何間隔
γ=mini=1,...nγi
函數間隔和幾何間隔的關係
γi=γi^||w||
γ=γ^||w||
幾何間隔是有符號的,分類正確時纔等於點到超平面的距離
二、硬間隔最大化
感知機中有無數的分離超平面,而哪一個纔是最好的(泛化能力最強)?
SVM直觀想法:離超平面最近的點儘可能的遠離超平面
我們最關心的的是離超平面最近的點(最難分的點),如果超平面有足夠大的確信度將他們分開,這個超平面應該對未知的新實例有很好的分類預測能力。
幾何間隔最大的分離超平面可以表示爲下面的約束最優化問題
maxw,bγ
s.t.yi(w||w||⋅xi+b||w||)≥γ,i=1,2,..n
由函數間隔和幾何間隔的關係,得
maxw,bγ^||w||
s.t.yi(w⋅xi+b)≥γ^,i=1,2,..n
縮放超平面的參數,函數間隔的取值是可以任意改變的,因此將最小的函數間隔取爲1(
γ^=1
)
最大化
1||w||
等價於最小化
12||w||2
線性可分支持向量機的最優化問題爲
minw,b12||w||2(1)
s.t.−yi(w⋅xi+b)+1≤0,i=1,2,..n(2)
三、支持向量與間隔邊界
支持向量: 訓練集中離超平面最近的點(是使約束條件等號成立的點)
超平面
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,α)=12||w||2−∑i=1nαiyi(w⋅xi+b)+∑i=1nαi
3.原始問題的解等價於先求拉格朗日函數對
α
求極大,再對
w,b
求極小。解是
w,b
。
原始問題 = L的極小極大問題
對偶問題的解等價於先求拉格朗日函數對
w,b
求極小,再對
α
求極大。解是
α
。
對偶問題 = L的極大極小問題
maxαminw,bL(w,b,α)
(1) 求
minw,bL(w,b,α)
公式敲不動了,手寫字真醜ヽ(`Д´)ノ︵ ┻━┻ ┻━┻
通過求導和回代就得到了
minw,bL(w,b,α)=−12∑i=1n∑j=1nαiαjyiyj(xi⋅xj)+∑i=1nαi
(2) 求
minw,bL(w,b,α)
對
α
的極大,即對偶問題
maxα−12∑i=1n∑j=1nαiαjyiyj(xi⋅xj)+∑i=1nαi(3)
s.t.∑i=1nαiyi=0(4)
αi≥0,i=1,2,...n(5)
對偶問題的解公式(3)-(5),可以通過SMO算法求解得到
4.原始問題解和對偶問題解的關係。
定理:目標函數和不等式約束是凸函數,等式約束是仿射函數,不等式約束是嚴格可執行的。
則
w,b
和
α
是原始問題和對偶問題的解的充要條件是
w,b
和
α
滿足KKT條件。
KKT條件:
1.解的偏導=0,
2.解滿足不等式約束,
3.解滿足等式約束,
4.拉格朗日乘子大於等於0,
5.
對偶互補條件:拉格朗日乘子大於0時,解的不等式約束的等號成立
線性可分支持向量機的KKT條件
∇wL(w∗,b∗,α∗)=w∗−∑i=1nα∗iyixi=0
∇bL(w∗,b∗,α∗)=−∑i=1nα∗iyi=0
yi(w∗⋅xi+b∗)−1≥0,i=1,2,...n
α∗i≥0,i=1,2,...n
α∗i(yi(w∗⋅xi+b∗)−1)=0,i=1,2,...n
由第一個偏導得到
w∗=∑iα∗iyixi(6)
參數
b
是根據對偶互補條件得到的。
如果每個
α
都等於0,那麼
w∗=0
,w^*=0不是原問題的解。所以至少有一個
α>0
設存在下標
j
,使得
α∗j>0
,互補條件知
yj(w∗⋅xj+b∗)−1=0
y2j=1
得
b∗=yj−∑i=1nα∗iyi(xi⋅xj)(7)
由公式(6)(7)知,
w∗,b∗
只依賴於訓練數據集中
α∗>0
的樣本點(稱這樣的點爲支持向量),而其他樣本點對
w∗,b∗
沒有影響。
根據互補條件知
α∗>0
時
yj(w∗⋅xj+b∗)=1
樣本的函數間隔爲1,這與之前定義的支持向量是一致的。
疑問??
1. 爲什麼KKT條件沒有對
α
求偏導 2. KKT條件中對b求偏導得到的公式,說明支持向量是成對的? 3. b的取值有多個嗎?超平面不是唯一的嗎