一、支持向量机(SVM)定义:
1、线性可分支持向量机:
给定线性可分的训练数据集,通过(硬)间隔最大化或者等价的求解相应的凸二次规划问题学习得到的分离超平面为:w∗x+b=0
以及相应的分类决策函数: f(x)=sign(w∗x)+b。
2、线性支持向量机
给定线性不可分的训练数据集,通过软件间隔最大化或者等价的求解相应的凸二次规划问题学习得到的分离超平面为:w∗x+b=0
以及相应的分类决策函数: f(x)=sign(w∗x)+b。
3、非线性支持向量机
从非线性分类训练集,通过核函数与软间隔最大化,或者凸二次优化,学习得到的分类决策函数
f(x)=sign(∑i=1NαiyIK(x,xi)+b)
其中,K(x,z) 是正定核函数。
总结(个人):SVM算法就是为找到距分类样本点间隔最大的分类超平面(w, b)
二、重要概念
1、函数间隔
定义超平面(w, b) 关于样本点(xi, yi) 的函数间隔是 γ^i=yi(w∗xi+b)
定义超平面w, b 关于训练集 T 的函数间隔为: 超平面(w, b) 与所有样本点 (xi, yi) 的函数间隔最小值: γ^=mini=1,2,,,Nγ^i
注:函数间隔可以表示分类预测的正确性及确信度。
2、几何间隔
定义超平面(w, b) 关于样本点(xi, yi) 的几何间隔是 γi=yi(w∥w∥∗xi+b∥w∣);
超平面(w, b) 关于训练数据集T 的几何间隔是: 超平面(w, b) 与所有样本点 (xi, yi) 的几何间隔最小值: γ=mini=1,2,,,Nγi
注:几何间隔是为样本点到超平面的带符号距离,当样本被正确分类时,即为样本点到超平面的距离。
3、支持向量
考虑原始最优化问题及对偶最优化问题,将训练数据集中对应与 αi>0 的样本点 (xi, yi) 的实例 xi∈Rn 为支持向量。
4、核函数
从输入空间χ(欧式空间R^n 的子集或者离散集合)到特征空间H (希尔伯特空间)的映射: ϕ(x):χ⇒H
使得对所有的x,z∈χ, 函数K(x,z) 满足条件
K(x,z)=ϕ(x)∗ϕ(z).
则称K(x,z) 为核函数,ϕ(x) 为映射函数。
三、拉格朗日对偶性
摘自 《统计学习方法》 李航
1、原始问题
假设f(x), ci(x), hj(x) 是定义在Rn 上的连续可微函数,考虑约束最优化问题:
minx∈Rnf(x) (1)
s.t. ci(x)≤0, i=1,2,3,....,k (2)
hj(x)=0, j=1,2,3,....,l (3)
则该约束最优化问题为原始问题或者原始最优化问题。
在求解该最优化问题时,首先引入广义拉格朗日函数(generalized Lagrange function)
L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)
αi, βj 拉格朗日乘子,且 αi≥0。
考虑x 的函数
θp(x)=maxα,β;αi≥0L(x,α,β)=maxα,β;αi≥0[f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)]
如果x 违反约束条件,即存在xi 使得 ci(xi)>0 或者存在xj 使得hj(xj)≠0, 则有
θp(x)=maxα,β;αi≥0L(x,α,β)=+∞
因为1、若xi 使约束条件 ci(x)>0, 则令αi→+∞, 使得αici(x)→+∞; 2、若xj 使得约束条件hj(xj)≠0, 则令 βj→∞,使得βjhj(xj)→∞, 同时令其余 α,β 均取0,可得θp(x)=+∞ .
所以有:
θp(x)={f(x)+∞x 满足约束条件其他
原始最优化问题转换为:
P∗=minxmaxα,β;αi≥0L(x,α,β)。
P∗定义为原始问题的最优值.
2、对偶问题
定义:
θD=minxL(x,α,β)。
再考虑对θD=minxL(x,α,β) 的极大化,即
maxα,β;αi≥0θD=maxα,β;αi≥0minxL(x,α,β)。
问题maxα,β;αi≥0minxL(x,α,β) 成为广义拉格朗日函数的极大极小问题。
将广义拉格朗日函数的极大极小问题表示为约束最优化问题:
maxα,β;αi≥0θD=maxα,β;αi≥0minxL(x,α,β)
s.t. αi≥0
称为原始问题的对偶问题,定义对偶问题的最优值为:d∗=maxα,β;αi≥0θD
3、原始问题与对偶问题的关系
定理1: 若原始问题与对偶问题都有最优值,则
d∗=maxα,β;αi≥0minxL(x,α,β)≤minxmaxα,β;αi≥0L(x,α,β)=P∗。
定理2:考虑原始问题与对偶问题,假设函数f(x) 和ci(x) 是凸函数,hj(x) 是仿射函数;并且假设不等式约束ci(x) 是严格可行的,即存在x, 对所有i 有ci(x)<0, 则存在x∗,α∗,β∗, 使得x∗ 是原始问题的解,α∗,β∗ 是对偶问题的解,并且
P∗=d∗=L(x∗,α∗,β∗).
注:在满足约束条件下,该定理保证了对对偶问题求的最优解,既是对原始问题求的最优值。
定理3:考虑原始问题与对偶问题,假设函数f(x) 和ci(x) 是凸函数,hj(x) 是仿射函数;并且假设不等式约束ci(x) 是严格可行的,则x∗ 和 α∗,β∗ 分别原始问题和对偶问题解的充分必要条件是x∗,α∗,β∗ 满足 KKT 条件:
▽xL(x∗,α∗,β∗)=0
▽αL(x∗,α∗,β∗)=0
▽βL(x∗,α∗,β∗)=0
α∗ici(x∗)=0, i=1,2,……,k 这条重要,在优化α, 选择第一个变量的依据是违反KKT 条件,就是违反了这一条
ci(x∗)≤0, i=1,2,……,k
α∗i≥0, i=1,2,……,k
hj(x∗j)=0, j=1,2,……,l
注:该定理提供了对偶问题和原始问题求解的方法。
四、目标函数
SVM 算法的分类思想是求得一个几何间隔最大的分离超平面,即最大间隔分离超平面,可表示为以下约束问题:
maxw,bγ
s.t. yi(w∥w∥∗xi+b∥w∥)≥γ, i=1,2,…N
最大化分离超平面与训练数据集的几何间隔γ, 约束条件保证了所有样本点与分离超平面的几何间隔至少为γ。
根据几何间隔与函数间隔的关系,γ=γ^∥w∥, 上述问题可转换为:
maxw,bγ^∥w∥
s.t. yi(w∗xi+b)≥γ^, i=1,2,…N
由于函数间隔γ^ 的取值不影响最优化问题,可取γ^=1(线性可分支持向量机)。对1∥w∥ 求极大值,可转换为求 ∥w∥2 的极小值。但在线性不可分训练集中,某些样本点可能不满足函数间隔大于等于1的约束条件,所以,对每个样本点引入一个松弛变量ξi≥0。(在机器学习实战中,ξ称为容错率,很有道理),故,上述约束条件改为:
s.t. yi(w∗xi+b)≥1−ξi, i=1,2,…N
于是,可得目标函数,即最优化问题转换为:
minw,b,ξ12∥w∥2+C∑i=1Nξi
s.t. yi(w∗xi+b)≥1−ξi 这一项就是拉格朗日对偶性中的ci(x)
ξi≥0, i=1,2,……,N
C>0 是惩罚参数, C 值大时对误分类的惩罚增加,C 值小时对误分类的惩罚减小(boosting的原理也是惩罚误分类点(机器学习实战SVM篇小结处问SVM和boosting 的相似处))。最小化目标函数,一方面使间隔尽量大(12∥w∥2尽量小),同时,使误分类点的个数尽量减小。C 是调节二者的系数。
当ξi=0 时,为线性可分SVM 的参数优化模型。

五、参数求解(SMO 算法)
原始优化问题的拉格朗日函数是:
L(w,b,ξ,α,u)=12∥w∥2+C∑i=1Nξi−∑i=1Nαi(yi(w∗xi+b)−1+ξi)−∑i=1Nuiξi
通过求对偶问题的解,来获得原始问题的解。这样做的优势有:
1、对偶问题更容易求解。
2、能够自然引入核函数,进而推广到非线性分类问题。
定理:设α=(α1,α1,…,αN)T 是对偶问题的一个解,若存在α 的一个分量αj, 0<αj<C, 则原始问题的解w, b 可按下式求得:
w=∑i=1Nαiyixi………………………………(A)
b=yj−∑i=1Nyiαi(xi∗xj)………………(B)
注:该定理是求分类决策函数 f(x)=sign(w∗x+b) 的保障。
证明:原始问题是凸二次规划问题,解满足KKT 条件,即:
▽wL(w,b,ξ,α,u)=w−∑i=1Nαiyixi=0…………(1)
▽bL(w,b,ξ,α,u)=−∑i=1Nαiyi=0…………(2)
▽ξL(w,b,ξ,α,u)=C−α−u=0…………(3)
αi(yi(w∗xi+b)−1+ξi)=0 ………………(4)这个条件在拉格朗日对偶性中有强调,第一个α优化选择的依据
uiξi=0…………(5)
ξi≥0, αi≥0, ui≥0, i=1,2,…N…………(6)
由条件(1)可得,w=∑i=1Nαiyixi。
由条件(4)可知,当0<αi<C 时,yi(w∗xi+b)−1+ξi=0; 又由条件(3)(5)可知,ξi=0, 所以可得:yi(w∗xi+b)−1=0⇒b=yi−w∗xi⇒yi−∑j=1Nyjαj(xj∗xi)。
将(A)(B)两个式子带入拉格朗日函数,可得:minw,b,ξL(w,b,ξ,α,u)=−12∑i=1N∑j=1Nαiαjyiyj(xi∗xj)+∑i=1Nαi
再对minw,b,ξL(w,b,ξ,α,u) 求α 的极大值,即可得对偶问题的解:
maxα−12∑i=1N∑j=1Nαiαjyiyj(xi∗xj)+∑i=1Nαi………………(7)
s.t.∑i=1Nαiyi=0
0≤αi≤C, i=1,2,……,N
现在,问题转换为如何求 α, 使得对偶问题达到最大值。
2、序列最小化(SMO) 算法
SMO 算法思路:选择两个变量,固定其他变量,针对选择的两个变量构建一个二次规划的问题;这个二次规划问题关于两个变量的解更接近原始二次规划问题的解。SMO 算法将原问题不断分解为子问题并对子问题求解,进而达到求解原问题的目的。
假设选择的两个变量是α1, α2, 其他变量αi (i=1,2,…N) 不变。则公式(7)可展开为:
minα1,α2W(α1,α2)=12K11α21+12K22α22+y1y2K12α1α2−(α1+α2)+y1α1mini=3yiαiKi1+y2α2mini=3yiαiKi2
s.t.α1y1+α2y2=−∑i=3Nαiyi=k
0≤αi≤C, i=1,2,……,N
其中,Kij=K(xi,xj), 在线性核函数中,Kij=xi∗xj。 k 是常数。
可以计算优化后α1 和 α2 取值范围,

当y1≠y2 时,优化后αnew2 的取值范围是:
L=max(0,−k), H=min(C,C−k), 其中, k=αold1−αold2。
当y1=y2 时,优化后αnew2 的取值范围是:
L=max(0,k−C), H=min(C,k), 其中, k=αold1+αold2
其中,L 表示取最小值,H 表示取最大值。
记: g(x)=∑i=1NαiyiK(xi,x)+b ……………………针对样本x 的预测值。
Ei=g(xi)−yi=(∑i=1NαiyiK(xi,x)+b)−yi ………………针对样本xi,预测值与真实值之差
定理: 最优化问题(7)沿着约束方向未剪切时的解是:(证明阅读《统计学习方法》)
αnew,unc2=αold2+y2∗(E1−E2)η,
其中,η=K11+K22−2∗K12=∥Φ(x1)−Φ(x2)∥2。 Φ(x) 是输入空间到特征空间的映射。
剪切后:
αnew2=⎧⎩⎨⎪⎪Hαnew,unc2Lαnew,unc2>HL<αnew,unc2<Hαnew,unc2<L
由: αold1y1+αold2y2=αnew1y1+αnew2y2 ⇒ αnew1=αold1+y1y2(αold2−αnew2)
当 0<αnew1<C 时
b1=−E1−y1K11(αnew1−αold1)−y2K21(αnew2−αold2)+bold
当 0<αnew2<C 时
b2=−E2−y1K12(αnew1−αold1)−y2K22(αnew2−αold2)+bold
若αnew1 与 αnew2 均满足0<αnewi<C, 则 bnew1=bnew2;
若αnew1 与 αnew2 均是 0 或者C, 则选 bnew=12(b1+b2)
3、αi 的选择标准
第一个 αi 的选择标准是违反 KKT 条件最严重的点。在代码中体现,即是当0<αi<C 时,yi(w∗xi+b)−1+ξi≠0 的样本,包括yi((w∗xi+b)−yi)=yi∗Ei<−ξi 或者 yi((w∗xi+b)−yi)=yi∗Ei>ξi 两部分。
第二个 αj 的选择标准: 遍历所有的样本点,找到|Ej−Ei| 最大值,此时的j 即作为第二个选择的变量。
参考:
《统计学习方法》 李航