线性支持向量机与软间隔最大化
线性支持向量机
对特征空间上的训练数据集 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∗
分离超平面:
<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
,在分离超平面误分类一侧。
合页损失函数
==待更新,写的好累。