- 线性支持向量机与软间隔最大化
- 线性支持向量机
- 学习的对偶算法
- 支持向量机
- 合页损失函数
线性支持向量机与软间隔最大化
线性支持向量机
对特征空间上的训练数据集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+C∑Ni=1ξi
这里的C,是惩罚参数,一般C增大时对误分类惩罚增大,C减小时对误分类惩罚减小。目标函数的含义是:12||w||2尽量小是使间隔尽量大,同时是误分类点的个数尽量的小。C,ξi用来使误分类的点数尽量的少。
线性不可分的支持向量机学习的原问题:
12||w||2+C∑Ni=1ξi
s.t.yi(<w,xi>+b)≥1−ξi,i=1,2,...,N
ξi≥0,i=1,2,...,N
这里w是唯一的,证明方法和之前的一样,可以很好的理解是w是控制方向的,方向是不能变化的。对于b可以证明是不确定的,但是是在一个区间之内,可以这样理解,把添加的约束变量ξi和b合在一起认为是b,可以发现 对于每个ξi不是相同的,就会使b是在一点范围内波动。所有方向w是不能变化的,可以在一定范围内波动。
设解是w∗,b∗
分离超平面:
<w∗,x>+b∗=0
分类决策函数:
f(x)=sign(<w∗,x>+b∗)
学习的对偶算法
原始问题:
12||w||2+C∑Ni=1ξi
s.t.yi(<w,xi>+b)≥1−ξi,i=1,2,...,N
ξi≥0,i=1,2,...,N
原始问题的拉格朗日函数:
L(w,b,ξ,α,μ)=12||w||2+C∑Ni=1ξi−∑i=1Nαi(yi(<w,xi>+b)−1+ξi)−∑Ni=1μiξi
其中αi,μi是拉格朗日系数,都大于等于0
(1)求minw,b,ξiL(w,b,ξ,α,μ)
拉格朗日函数分布对w,b,ξ求导可得到其极小
▽wL(w,b,ξ,α,μ)=w−∑Ni=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,ξ,α,μ)=−12∑Ni=1∑Nj=1αiαjyiyj<xi,xj>+∑Ni=1αi
额,这个与之前硬间隔最大化的结果是一样的。
(2)求minw,b,ξL(w,b,ξ,α,μ)对α的极大值
对偶问题:
maxαL(w,b,ξ,α,μ)=−12∑Ni=1∑Nj=1αiαjyiyj<xi,xj>+∑Ni=1αi
∑Ni=1αiyi=0
C−αi−μ=0
αi≥0,i=1,2,...,N
μi≥0,i=1,2,...,N
转化成极小化问题:
minαL(w,b,ξ,α,μ)=12∑Ni=1∑Nj=1αiαjyiyj<xi,xj>−∑Ni=1αi
∑Ni=1αiyi=0
C−αi−μ=0
αi≥0,i=1,2,...,N
μi≥0,i=1,2,...,N
上面后三个约束和转化成0≤αi≤C
解对偶问题的最优解,再求出原问题的最优解
求解 w,b
设α∗=(α∗1,α∗2,...,α∗N)T是对偶问题的最优解,若存在α∗j,0≺αj≺C,则原问题的解:
w∗=∑Ni=1α∗iyixi
b∗=yj−∑Ni=1yiαi<xi,xj>
证明:
原始问题是凸二次规划问题,解满足KKT条件,即:
▽wL(w∗,b∗,ξ∗,α∗,μ∗)=w∗−∑Ni=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
ξ∗i≥0
α∗i≥0
μ∗i≥0,i=1,2,...,N
解得:
w∗=∑Ni=1α∗iyixi
存在α∗j,0≺α∗j≺C
则yj(<w∗,xj>+b∗)−1+ξ∗j=0,ξ∗j=0
b∗=yj−∑Ni=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)选择惩罚参数C≻0,构建凸二次规划问题
minαL(w,b,ξ,α,μ)=12∑Ni=1∑Nj=1αiαjyiyj<xi,xj>−∑Ni=1αi
s.t.∑Ni=1αiyi=0
0≤αi≤C
最优解是:α∗=(α∗1,α∗2,...,α∗N)T
(2)计算w,b
w∗=∑Ni=1α∗iyixi
选择一个α∗j满足0≺α∗j≺C
b∗=yj−∑Ni=1yiαi<xi,xj>
(3)分离超平面:
<w∗,x>+b∗=0
分类决策函数:
f(x)=sign(<w∗,x>+b∗)
说明:
1.由于满足0≺α∗j≺C 的点有多个,所以每次的结果可能不一样,可以感觉分分类的结果好坏来选取,或者对符合条件的点取平均值。
支持向量机
和之前定义一样的:α∗=(α∗1,α∗2,...,α∗N)T中对应于0≺α∗i≺C的样本点(xi,yi)的实例xi称为支持向量机。
如上图:中间实线是分离超平面 两侧的虚线是间隔边界。
对实例点xi到边界的距离是ξi||w||
此时的支持向量点可能在间隔边界上,也可能不在间隔边界上
当α∗j<C,则,ξj=0,在边界上
当α∗j=C,则,0<ξj<1,分类正确,在间隔与分离超平面之间
当α∗j=C,则,ξj=1,在分离超平面上
当α∗j=C,则,ξj>1,在分离超平面误分类一侧。
合页损失函数
==待更新,写的好累。