1. 線性可分支持向量機
1.1 訓練集: T={(x1,y1),(x2,y2),...,(xN,yn=N)},xi∈Rn,yi∈{−1,1}
1.2 如果存在Rn 中的超平面能將T 中的正例點和負例點分開, 我們就說T 是線性可分的, 或者說T是線性可分訓練集
1.3 給定線性可分訓練集T , 通過間隔最大化策略或求解等價的凸二次優化問題得到的分離超平面
w⋅x+b=0
以及相應的決策函數
f(x)=sign(w⋅x+b)
被稱爲
線性可分支持向量機, 其中
x,w∈Rn,b∈R
1.4 設(w,b) 是T 上的分離超平面, 定義T 到分離超平面的距離爲T 中距離分離超平面最近的點到(w,b) 的距離, 稱爲(w,b) 關於T 的幾何間隔, 記爲γ . 由定義可知, 必有
γ=|w⋅xi+b||w|=yi(w⋅xi+b)|w|
, 並且滿足上述等式的點至少有一對
xi,xj 且
yi∗yj=−1 .
1.5 所謂的間隔最大化策略就是尋找(w,b) 使γ 達到最大, 爲此可表述爲一個最優化問題:
maxw,b γs.t.yi(w⋅xi+b)|w|≥γ,i=1,2,...,N
評論: 遺憾的是, 這個問題並不是一個凸優化問題, 爲了使用凸優化的理論, 我們需要把(1.5)轉化成凸優化問題.
1.6現在設
γ^=|w|γ
原問題轉化爲:
maxw,b γ^|w|s.t. yi(w⋅xi+b)≥γ^,i=1,2,...,N
注意到
γ^ 的取值不會影響原問題的解(生成的分離超平面是一樣的), 因此我們取
γ^=1
於是問題變爲:
maxw,b 1|w|s.t. yi(w⋅xi+b)≥1,i=1,2,...,N
.爲了使用凸優化理論, 我們需要將原問題轉化爲最小化問題, 且目標函數變爲凸函數. 這可以通過使用
w2 代替
1|w| 成爲新的目標函數完美解決, 此時原問題轉化爲標準的凸優化問題形式:
maxw,b 12w2s.t. yi(w⋅xi+b)−1≥0,i=1,2,...,N
這裏使用係數
12 有兩個原因: 一方面是爲了求偏導數方便, 另一方面, 考慮到最小几何間隔必在一對正負例點上同時取得(1.4), 因此我們的目標函數從一開始就可以使用
2γ 代替, 這個係數
2 最終會變爲目標函數上的
12 .
評論: 至此, 我們已經可以求解線性可分支持向量機了.但是傳統的凸優化方法用在支持向量機的求解問題上顯得太慢, 我們有專門針對求解支持向量機的最優化理論, 即KKT條件和SMO算法. 爲了使用這些理論, 我們需要利用拉格朗日對偶性理論, 將原問題做進一步變換.
1.7 引入拉格朗日乘子:
α∈Rn,αi≥0
構造
拉格朗日函數:
L(w,b,α)=12w2−Σαiyi(w⋅xi+b)+Σαi
, 由此構建的下列最優化問題稱爲原問題的
拉格朗日對偶問題:
maxα minw,b L(w,b,α)
. 拉格朗日對偶性理論向我們保證: (1)如果原問題有解, 那麼對偶問題也有解 (2)設對偶問題的解爲
w∗,b∗,α∗ , 則
w∗,b∗ 是原問題的最優解.
1.8 化簡(化簡過程的公式太難寫了, 有空再說吧)對偶問題, 我們得到標準的支持向量機專用的凸二次優化問題:
minα 12ΣiΣjαiαjyiyj(xi⋅xj)−Σαis.t. Σαiyi=0αi≥0,i=1,2,...,N
使用SMO算法可以解出
a∗ , 再由KKT條件, 可以得到原問題的最優解:
w∗=Σα∗iyixib∗=yj−Σα∗iyi(xi⋅xj),α∗j>0
1.9 上述學習算法叫做最大間隔學習算法, 即利用間隔最大化策略, 構造凸優化問題, 然後通過求解凸優化問題得到原始問題最優解的算法.
1.10 如果我們利用對偶性求解原始問題, 那麼對應於αi>0 的點xi 稱爲支持向量. 注意到, 對於非支持向量, αi=0 , 即它不會向凸優化問題的求解提供任何約束, 因此支持向量機的解完全取決於支持向量.
2 線性支持向量機
評論: 訓練集T 並不總是線性可分的, 對於不能線性可分的訓練集, 我們也可以學習到一個支持向量機.
2.1 對於非線性可分訓練集, 通過軟間隔最大化策略或求解等價的最優化問題得到的分離超平面(w,b) 以及決策函數f(x)=sign(w⋅x+b) 稱爲線性支持向量機
2.2 回憶在線性可分的情況下, 我們有凸優化問題:
maxw,b 12w2s.t. yi(w⋅xi+b)≥1,i=1,2,...,N
在非線性可分的情況下, 約束條件並不是總能被滿足, 因此我們減弱約束條件爲:
yi(w⋅xi+b)≥1−ξi,ξi≥0
, 我們將盡量使用滿足約束的最小的
ξi , 爲此, 爲每個
ξi 支付一個代價, 這裏我們選用最簡單的代價函數
Cξi ,
C 被稱爲懲罰係數, 於是, 線性支持向量機的原始問題可以表述爲:
maxw,b 12w2+CΣξis.t. yi(w⋅xi+b)−1+ξi≥0,i=1,2,...,Nξi≥0
評論 至此, 已經可以用藉助凸優化理論求解線性支持向量機了. 但是爲了用上SMO算法和KKT條件以獲得更高的學習效率, 我們往往將原始問題轉化爲其拉格朗日對偶問題來求解.
2.3 爲了構建拉格朗日對偶問題, 我們引入兩個拉格朗日乘子:
α,β∈Rn, αi≥0,βi≥0
, 構造拉格朗日函數:
L(w,b,ξ,α,β)=12w2+CΣξi−Σαi[yi(w⋅xi+b)−1+ξi]−Σβiξi
, 由此得到拉格朗日對偶問題:
maxα,βminw,b,ξ L(w,b,ξ,α,β)s.t.αi,βi≥0
. 拉格朗日對偶性理論向我們保證: (1) 如果原問題有解, 則對偶問題必有解 (2) 設對偶問題的解爲
α∗,β∗,w∗,b∗,ξ∗ , 則原始問題的解爲
w∗,b∗,ξ∗
注意 這裏不引入約束條件yi(w⋅xi+b)≥1−ξi 和 ξi≥0 ,因爲它們已經通過拉格朗日乘子α,β ”集成”到了L 中.
2.4 化簡對偶問題, 得到對偶問題的標準凸二次規劃形式:
minα,β 12ΣiΣjαiαjyiyj(xi⋅xj)−Σαis.t. 0≤αi≤CΣαiyi=0
. 使用SMO算法得到解
α∗,β∗ , 再由KKT條件得到原始問題的解:
w∗=Σα∗iyixib∗=yj−Σα∗iyi(xi⋅xj), 0<α∗j<C
2.5 LSVM的對偶問題等價於問題:
minw,b Σ[1−yi(w⋅xi+b)]++λw2
, 其中
[1−y(w⋅x+b)]+ 被稱爲
合頁損失函數.
2.6 對應於αi>0 的點被稱爲支持向量, 支持向量有4類:
- 間隔邊界上的支持向量: 0<αi<C
- 間隔邊間以內被正確分類的支持向量: αi=C,0<ξi<1
- 分離超平面上的支持向量:αi=C,ξi=1
- 誤分類的支持向量:αi=C,ξi>1
評論 當0<αi<C 時, 有0<βi<C . 由KKT對偶互補條件(不等約束與其係數之積爲0), 我們知道必有ξi=0
疑問 爲什麼當αi=C 時, ξi 一定不爲0呢?
3. 非線性支持向量機
3.1 設
K:Rn×Rn→R
, 若有
ϕ:Rn→H
滿足
K(x,y)=ϕ(x)ϕ(y)
, 則
K 是
Rn 上的
核函數.
3.2 K 是Rn 上的和函數當且僅當
∀x1,x2,...,xm∈Rn [K(xi,xj)](m×m)是半正定陣, 1≤i,j≤m
3.2 對於非線性可分數據集, 我們利用核函數和最大間隔策略, 或者求解等價的凸二次規劃問題, 得到的分離超平面(w,b) 以及相應的分類決策函數f(x)=sign(w⋅x+b) 叫做非線性支持向量機.
3.3 非線性支持向量機的原始問題爲:
maxw,b 12w2+CΣξis.t. yi(w⋅xi+b)−1+ξi≥0,i=1,2,...,Nξi≥0
,對偶問題爲
maxα,βminw,b,ξ L(w,b,ξ,α,β)s.t.αi,βi≥0
,對偶凸二次優化問題爲
minα,β 12ΣiΣjαiαjyiyjK(xi,xj)−Σαis.t. 0≤αi≤CΣαiyi=0
, 解爲
w∗=Σα∗iyixib∗=yj−Σα∗iyiK(xi,xj), 0<α∗j<C
3.4 常見的核函數有:
- 線性核: x⋅y
- 多項式核: (x⋅y+1)p
- 高斯核(高斯徑向基函數RBF):e−(x−y)22σ2
- sigmoid核: tanh(x⋅y+1)
評論 高斯核函數將Rn 映射到了無限維的希爾伯特空間, 它的值域爲[0,1) , 可以用來衡量變量相似度. 在大多數情況下, RBF具有最好的性能.