为了更好的利用由 Chih-Chung Chang and Chih-Jen Lin 提供的libsvm库,该博文主要理解其提供的《LIBSVM: A Library for Support Vector Machines》文档。在理解该文档之前,简单梳理支持向量机(Support Vector Machines: SVM)
1. SVM基础知识
1.1基础的SVM是用来处理二分类问题,分类器的目标是找到一个超平面
wTx+b=0
其中
x 为训练数据集,{w,b}为训练参数。对于二分类问题,label:y={-1,1}.
由分界面定义分类函数
f(x) :
f(x)=wTx+b
f(x)<0,f(x)=0(分界面),f(x)>0 。
数据样本到超平面的距离:
(图片来源: http://eric-gcm.iteye.com/blog/1981771)
γ=wTx+b∥w∥=f(x)∥w∥
目标优化函数(详细解释分析见 http://eric-gcm.iteye.com/blog/1981771):
max1∥w∥, s.t.,yi(wTxi+b)⩾1, i=1,...,n
问题等价于在约束不变下
min12∥w∥2
(
∥w∥2=wTw )在该问题下,求解算法的复杂度与样本维度有关,通过求原问题的对偶问题优化求解过程。针对SVM求解这样做的优点:优化求解;方便SVM引入核函数解决非线性分类问题。
对带约束条件的问题,通过引入拉格朗日乘子将约束问题转换为非约束问题,优化函数如下:
L(w,b,α)=12∥w∥2−∑i=1nαi(yi(wTxi+b)−1)
原问题等价为:
minw,bmaxαi≥0L(w,b,α)
对偶形式:
maxαi≥0minw,bL(w,b,α)
通过对对偶优化函数求偏导:
∂L∂w=0⇒w=∑i=1nαiyixi
∂L∂b=0⇒∑i=1nαiyi=0
推出:
L(w,b,a)=∑i=1nαi−12∑i,j=1nαiαjyiyjxTixj
接下来对偶问题成为函数对
α 求极大,并且在前面的推到中,有与
α 的等式与不等式,这些式子中含有原问题的目标变量:
L(w,b,a)=12∑i=1nαi−12∑i,j=1nαiαjyiyjxTixj
s.t. ∑i=1nαiyi=0
αi≥0, i=1,2,...,n
构造拉格朗日函数求极值,对
α 求导(令求导=0),算出
α ,从而得出{w,b}
由于
w=∑ni=1αiyixi ,分类函数表示为:
f(x)=∑i=1nαiyi⟨xi,x⟩+b
1.2对于线性不可分(噪声)
加入松弛变量
ξ ,使得原约束成为
y(wTw+b)≥1−ξ (
ξ 为松弛变量)。对加入松弛变量的SVM,
minw,b12∥w∥2+C∑i=1nξi (C为常量)
yi(wTxi+b)≥1−ξi
ξi≥0
i=1,2,...,n
C∑ni=1ξi 为“惩罚项”,松弛变量越大,对目标函数的惩罚力度越大。
将约束求解转换为非约束:
L(w,b,ξ,α,r)=12∥w∥2+C∑i=1nξi−∑i=1nαi(yi(wTxi+b)−1+ξi)−∑i=1nriξi
求偏导:
∂L∂w=w−∑i=1nαiyixi=0⇒w=∑i=1nαiyixi
∂L∂b=−∑i=1nαiyi=0
∂L∂ξi=C−αi−ri=0
将值带入函数,且(
∥w∥2=wTw ),故对偶形式为:
maxα∑i=1nαi−12∑i,j=1nαiαjyiyjxTixj (xTixj=⟨xixj⟩)
s.t.∑i=1nαiyj=0
0≤αi≤C,i=1,2,...,n
1.3对于线性不可分(数据非线性性)
SVM处理非线性数据通过引入核函数
K(,) 将数据映射(map)到高维,解决二分类中数据线性不可分问题。由于对偶求解中保证了
(xTixj=⟨xixj⟩) 将线性可分通过
∅(⋅) 核函数映射,记为
K(xi,xj) .(为了避免映射的维度灾难,,数据的映射计算是先直接在原来的低维空间计算,然后进行映射),从而,分类函数为:
f(x)=∑i=1nαiyiK(xi,xj)+b
原问题的对偶问题:
maxα∑i=1nαi−12∑i=i,jnαiαjyiyjK(xi,xj)
s.t. ∑i=1nαiyi=0
αi≥0, i=1,2,...,n
2. Libsvm: a library for support vector machines
- SVC: support vector classification (two-class and multi-class)
- SVR: support vector regression
- One-class SVM.
2.1.1
C-Sopport Vector Classification 松弛+核函数
2分类,label:
yi∈{1,−1}
原优化问题:
minw,b,ξ12wTw+C∑i=1lξi
s.t. yi(wT∅(xi)+b)≥1−ξi,
0≤αi≤C, i=1,...,l
将带约束的原问题转换为非约束优化问题:
L(w,b,ξ,α,r)=12wTw+C∑i=1lξi−∑i=1lαi(yi(wT∅(xi)+b)−1+ξi)−∑i=1lriξi
原问题等价为(最大参考KKT):
minw,bmaxαi,ξiL(w,b,α)
对偶问题:
maxαi,ξiminw,bL(w,b,α)
求导:
∂L∂w=w−∑i=1lαiyi∅(xi)=0⇒w=∑i=1lαiyi∅(xi)
∂L∂b=−∑i=1lαiyi=0⇒∑i=1lαiyi=0
∂L∂ξi=C−αi−ri=0
带入计算:
maxαL(α)=12wT(∑li=1αiyi∅(xi))+C∑li=1ξi−∑li=1αi(yi(wT∅(xi)+b)−1+ξi)−∑li=1(C−αi)ξi=wT(12∑li=1αiyi∅(xi))+C∑li=1ξi−∑li=1Cξi−∑li=1αiyib+∑li=1αi−∑li=1αiξi+∑li=1αiξi=∑li=1αi−12wT∑li=1αiyi∅(xi)=∑li=1αi−12∑li,j=1αiyi∅(xi)Tαjyj∅(xj)=∑li=1αi−12∑li,j=1αiyiyj∅(xi)T∅(xj)αj=eTα−12αTQα
其中: e=[1,...,1]T,Qi,j≡yiyjK(xi,xj),K(xi,xj)≡∅(xi)T∅(xj)
对偶问题:
minα12αTQα−eTα
前面的推导中有对偶优化问题的约束,约束条件:
s.t. yTα=0
0≤αi≤C,i=1,...,l
构造拉格朗日函数求极值,对
α 求导(令求导 = 0),算出
α ,从而得出{w,b}
由于
w=∑li=1αiyi∅(xi) ,分类函数表示为:
f(x)=∑i=1lαiyiK(xi,xj)+b
由于
y∈{−1,1} ,正类(1)与负类(-1),利用符号函数(sgn):
sgn(wT∅(x)+b)=sgn(∑i=1lyiαiK(xi,x)+b)
—-(未完)—–