线性可分支持向量机和硬间隔最大化
首先给出特征空间的训练数据集
T={(x1,y1),(x2,y2),...,(xN,yN)}(1)
其中,
xi∈X=Rn,yi∈Y={−1,1},i=1,2,...,N,xi为第i个特征向量,也称为实例。
yi为特征标记,
yi=1,代表
xi为正例;
yi=−1,代表
xi为负例。
这里我们讨论的数据集是线性可分的。它的含义是,我们可以找到一个分离超平面,能将不同类别的实例分割开来。假设这个分割超平面可以表示为
w⋅x+b=0。一般来说这个分割超平面是有无穷多的。这里我们的目的是要找到一个对于所有实例到分割超平面间隔最大的那个分割超平面。这就是支持向量机的目的。
对于给定的线性可分训练数据集,通过间隔最大化或者等价的求解相应的凸二次规划问题学习得到分离超平面为:
w∗⋅x+b∗=1(2)
相应的分类决策函数:
f(x)=sign(w∗⋅x+b∗)(3)
-
间隔最大化
- 函数间隔
: 给定训练集T和超平面(w,b),定义超平面
(w,b)关于T中所有样本点
(xi,yi)的函数间隔为:
γi^=yi(w⋅xi+b)(4)
定义最小函数间隔:
γ^=i=1,...,Nminγi^(5)
- 几何间隔
:点
xi到分离超平面的距离。记为
γi.
γi=∣∣w∣∣w⋅xi+∣∣w∣∣b(6)
其中,|||w||为w的
L2范数。如果点在超平面的负的一侧,即
yi=−1,点到超平面的距离可以表示为:
γi=−∣∣w∣∣w⋅xi+∣∣w∣∣b(7)
当样本点
(xi,yi)被超平面(w,b)正确分类时,点
xi与超平面(w,b)的距离是:
γi=yi(∣∣w∣∣w⋅xi+∣∣w∣∣b)(8)
式(8)就是几何间隔。找到最小几何间隔:
γ=i=1,...,Nminγi(9)
函数间隔与几个间隔有如下的关系:
γi=∣∣w∣∣γi^γ=∣∣w∣∣γ^(10)
-
间隔最大化
- 最大间隔分离超平面
将最大间隔分离超平面表示为下面的约束最优化问题:
w,bmaxγs.t.yi(∣∣x∣∣w⋅xi+∣∣w∣∣b)≥γ^,i=1,2,...,N(11)
考虑函数间隔和几何间隔的关系,将问题11进行转换
w,bmax∣∣w∣∣γ^s.t.yi(w⋅xi+b)≥γ^,i=1,2,..,N(12)
可知
-
γ^的取值并不影响问题12的结果。所以我们取
γ^=1。
- 最优化问题
max∣∣w∣∣1和最优化问题
min21∣∣w∣∣2是等价的。
所有问题12再次转换为:
w,bmin21∣∣w∣∣2s.t.yi(w⋅xi+b)−1≥0,1=1,2,...,N(13)
问题13是一个凸二次规划的问题。
总结
线性可分支持向量机学习算法——最大间隔法
输入:线性可分数据集
T={(x1,y1),(x2,y2),...,(xN,yN)},其中,
xi∈X=Rn,yi∈Y={−1,1},i=1,2,...,N.
输出:最大间隔分离超平面和分类决策函数.
- 构造并求解约束最优化问题:
w,bmin21∣∣w∣∣2s.t.yi(w⋅xi+b)−1≥0,1=1,2,...,N
求解得到
w∗,b∗.
- 有此得到分离超平面:
w∗⋅x+b∗=0
分类决策函数
f(x)=sign(w∗⋅x+b∗)
学习的对偶算法
将问题13作为原始最优化问题,应用拉格朗日对偶性。建立拉格朗日函数,引入拉格朗日乘子
αi≥0,i=1,2,...,N,定义拉格朗日函数:
L(w,b,α)=21∣∣w∣∣2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi(14)
根据拉格朗日的对偶性,原始问题的对偶问题是极小极大问题:
αmaxw,bminL(w,b,α)(15)
所以为了求对偶问题的解,先对
L(w,b,α)对w,b的极小,再求对
α的极大。
- 求
w,bminL(w,b,α)
将拉格朗日函数分别对w,b求偏导数,并使其等于0.得到:
▽wL(w,b,α)=w−i=1∑Nαiyixi=0▽bL(w,b,α)=−i=1∑Nαiyi=0(16)
得:
w=i=1∑Nαiyixii=1∑Nαiyi=0(17)
- 将式17带入拉格朗日函数14得到:
L(w,b,α)=21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαiyi((j=1∑Nαjyjxj)⋅xi+b)+i=1∑Nαi=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi(18)
即:
w,bminL(w,b,α)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi(19)
- 求
w,bminL(w,b,α)对
α的极大,即对偶问题:
αmax−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαis.t.i=1∑Nαiyi=0αi≥0,i=1,2,...,N(20) 总结
线性可分支持向量机的学习算法:
输入:线性可分数据集
T={(x1,y1),(x2,y2),...,(xN,yN)},其中,
xi∈X=Rn,yi∈Y={−1,1},i=1,2,...,N.
输出:最大间隔分离超平面和分类决策函数.
(1)构造并求解约束最优化问题
αmax−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαis.t.i=1∑Nαiyi=0αi≥0,i=1,2,...,N
求解得到最优解
α∗=(α1∗,α2∗,...,αN∗)T。
(2)计算
w∗=i=1∑Nαi∗yixi
并选择一个
α∗大于0 的分量
αj∗>0:
b∗=yj−i=1∑Nαi∗yi(xi⋅xj)
(3)得到分离超平面:
w∗⋅x+b∗=0
分类决策函数:
f(x)=sign(w∗⋅x+b∗)
我们将训练数据中对应于
α∗>0的实例点
xi∈Rn称为支持向量。