支持向量机之线性支持向量机(三)

来源:互联网 发布:python使用指南 下载 编辑:程序博客网 时间:2024/05/20 23:56

  • 线性支持向量机与软间隔最大化
    • 线性支持向量机
    • 学习的对偶算法
      • 求解 wb
      • 线性支持向量机学习算法
    • 支持向量机
    • 合页损失函数

线性支持向量机与软间隔最大化

线性支持向量机

对特征空间上的训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)},其中xiχ=Rn,yi={+1,1}xi是第i个特征向量,yi是类别标记。这里的训练数据集不是线性可分的,即:训练数据集中存在某些异常点,但是将这些异常点踢出后的训练集是线性可分的。

线性不可分意味着:某些样本点(xi,yi)不能满足间隔大于等于1的约束,对此可以增加松弛变量ξ0,使函数间隔加上松弛变量后大于等于1,约束条件变为:


yi(<w,xi>+b)1ξi

同时,对每个松弛变量ξi,支付一个代价ξi.目标函数变成:


12||w||2+CNi=1ξi

这里的C,一般CC。目标函数的含义是:12||w||2尽量小是使间隔尽量大,同时是误分类点的个数尽量的小。C,ξi用来使误分类的点数尽量的少。

线


12||w||2+CNi=1ξi
s.t.yi(<w,xi>+b)1ξi,i=1,2,...,N
ξi0,i=1,2,...,N

这里w是唯一的,证明方法和之前的一样,可以很好的理解是w是控制方向的,方向是不能变化的。对于b可以证明是不确定的,但是是在一个区间之内,可以这样理解,把添加的约束变量ξib合在一起认为是b,可以发现 对于每个ξi不是相同的,就会使b是在一点范围内波动。所有方向w是不能变化的,可以在一定范围内波动。

设解是w,b

分离超平面:


<w,x>+b=0

分类决策函数:

f(x)=sign(<w,x>+b)

学习的对偶算法

原始问题:


12||w||2+CNi=1ξi
s.t.yi(<w,xi>+b)1ξi,i=1,2,...,N
ξi0,i=1,2,...,N

原始问题的拉格朗日函数:

L(w,b,ξ,α,μ)=12||w||2+CNi=1ξii=1Nαi(yi(<w,xi>+b)1+ξi)Ni=1μiξi

其中αi,μi0
(1)求minw,b,ξiL(w,b,ξ,α,μ)
拉格朗日函数分布对w,b,ξ求导可得到其极小


wL(w,b,ξ,α,μ)=wNi=1αiyixi=0
bL(w,b,ξ,α,μ)=Ni=1αiyi=0
ξiL(w,b,ξ,α,μ)=Cαiμi=0

得:

w=Ni=1αiyixi
Ni=1αiyi=0
Cαiμ=0

带入拉格朗日函数,得:

minw,b,ξiL(w,b,ξ,α,μ)=12Ni=1Nj=1αiαjyiyj<xi,xj>+Ni=1αi

额,这个与之前硬间隔最大化的结果是一样的。

(2)求minw,b,ξL(w,b,ξ,α,μ)α的极大值

对偶问题:


maxαL(w,b,ξ,α,μ)=12Ni=1Nj=1αiαjyiyj<xi,xj>+Ni=1αi
Ni=1αiyi=0
Cαiμ=0
αi0,i=1,2,...,N
μi0,i=1,2,...,N

转化成极小化问题:


minαL(w,b,ξ,α,μ)=12Ni=1Nj=1αiαjyiyj<xi,xj>Ni=1αi
Ni=1αiyi=0
Cαiμ=0
αi0,i=1,2,...,N
μi0,i=1,2,...,N

上面后三个约束和转化成0αiC

解对偶问题的最优解,再求出原问题的最优解

求解 w,b

α=(α1,α2,...,αN)T是对偶问题的最优解,若存在αj0αjC则原问题的解:


w=Ni=1αiyixi
b=yjNi=1yiαi<xi,xj>

证明:
原始问题是凸二次规划问题,解满足KKT条件,即:


wL(w,b,ξ,α,μ)=wNi=1αiyixi=0
bL(w,b,ξ,α,μ)=Ni=1αiyi=0
ξiL(w,b,ξ,α,μ)=Cαiμi=0
αi(yi(<w,xi>+b)1+ξi)=0
μiξ=0
yi(<w,xi>+b)1+ξi)0
ξi0
αi0
μi0i=1,2,...,N

解得:
w=Ni=1αiyixi
存在αj0αjC
yj(<w,xj>+b)1+ξj=0ξj=0

b=yjNi=1yiαi<xi,xj>

分离超平面:


<w,x>+b=0

分类决策函数:


f(x)=sign(<w,x>+b)

线性支持向量机学习算法

输入:训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)},xiϵχ=Rn,yiϵY={1,+1},i=1,2,3,...,N
输出:分离超平面和分类决策函数

(1)选择惩罚参数C0,构建凸二次规划问题


minαL(w,b,ξ,α,μ)=12Ni=1Nj=1αiαjyiyj<xi,xj>Ni=1αi
s.t.Ni=1αiyi=0
0αiC

最优解是:α=(α1,α2,...,αN)T

(2)计算w,b
w=Ni=1αiyixi

选择一个αj满足0αjC
b=yjNi=1yiαi<xi,xj>

(3)分离超平面:
<w,x>+b=0
分类决策函数:
f(x)=sign(<w,x>+b)

说明:
1.由于满足0αjC 的点有多个,所以每次的结果可能不一样,可以感觉分分类的结果好坏来选取,或者对符合条件的点取平均值。

支持向量机

和之前定义一样的:α=(α1,α2,...,αN)T中对应于0αiC的样本点(xi,yi)的实例xi称为支持向量机。

这里写图片描述

如上图:中间实线是分离超平面 两侧的虚线是间隔边界。

对实例点xi到边界的距离是ξi||w||

此时的支持向量点可能在间隔边界上,也可能不在间隔边界上

αj<C,ξj=0,在边界上
αj=C,0<ξj<1,分类正确,在间隔与分离超平面之间
αj=C,ξj=1,在分离超平面上
αj=C,ξj>1,在分离超平面误分类一侧。

合页损失函数

==待更新,写的好累。

0 0
原创粉丝点击