1. SVM优化问题
1) 原问题
min12∥w∥2+C∑iξi
s.t.yi(wi+b)≥1−ξi,∀i
2) 拉格朗日形式的表述
minL(yi,w′xi+b)+λ∥w∥2
其中, L(yi,w′xi+b)=l(y(w′x+b))
。
3) 对偶问题
min−g(λ,μ)=12∑i∑j(λiyi)(λjyj)(x′ixj)−∑iλi
s.t.∑iλiyi=0
0≤λi≤C
μi≥0
4) SVM分类器
(i) W=∑iλiyixi
(ii) 选 0<λi<C
, b=yi−w′xi=yi−∑jλjyj(x′ixj) ,然后 b~=average(bi)。
(iii)SVM分类器 sign(w′x+b)=sign(∑Ni=1λiyi(x′xi)+b)
2. SMO算法
1) 基本思想:迭代下降、坐标下降
一次要选择两个变量(否则会破坏 ∑λiyi=0
的约束),之后就可以解这个双变量优化问题。
2) 两个变量的优化
任取 λ1
, λ2 作为变量,其他 λ3,...作为常量。
展开的矩阵大致如下:
λ1λ2⋮λNy1x1y2x2⋮yNxNλ1y1x1⋯λ2y2x2⋯⋯⋯⋮⋮yiyj(xixj)λiλjλNyNxN
目标函数= a11λ1λ1+a12λ1λ2+a21λ2λ1+a22λ2λ2+b1λ1+b2λ2+c
这样 a11=∥x1∥2
, a22=∥x2∥2 , a12=|x1⋅x2| , a21=|x2⋅x1|。
约束 0≤λ1,λ2≤C
(对应对偶问题)
λ1y1+λ2y2+d=0
,这里d代表其余不改变的那些 ∑Ni=3λiyi。
化到单变量的话, λ2=(d−λ1y1)/y2
所以,
- 目标函数= e0λ21+e1λ1+e2
- 约束 L≤λ1≤H ,其中 L 和 H
- 分别为lower/upper bound。故必有最优点在L、H之间或者L、H之一。
-
mine0λ21+e1λ1
,
s.t.L≤λ1≤H
,可以解得
λ∗1=⎧⎩⎨Lλ1¯Hλ1¯<LL≤λ1¯≤Hλ1¯>H
这里虽然需要迭代很多次,但是迭代的每一步都比较快。
至于如何选择 λ1,2
,第一个变量 λ1 可以选择 0<λ<C ,同时 bi−b¯ 最大。第二个变量选择 H−L 最大的。