1、线性可分SVM
1.1 、数据集及最终分类器形式
- 假设特征空间上的训练数据集:
xi为特征向量,yi∈{+1,−1}
- 给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到分离超平面:
- 相应的分类决策函数为:
f(x)=sign(w∗⋅x+b∗)(1.1.2)
1.2、函数间隔和几何间隔定义
超平面(w,b)关于 样本点的函数间隔
γi^=yi⋅(w⋅xi+b)(1.2.1)超平面(w,b)关于 数据集T的函数间隔:
- 超平面(w,b)与 样本点的几何间隔:
- 超平面(w,b)关于 数据集T的几何间隔
1.3、最大间隔超平面定义
- 几何间隔表示约束最优化问题:
- 函数间隔表示约束最优化问题:
- 函数间隔 γ^ 的取值并不影响最优化问题的解,所以令 γ^ =1,得到等价的约束最优化问题:
1.4、带约束的优化问题,构建拉格朗日函数
- 构造拉格朗日函数,对每一个不等式约束引入拉格朗日乘子αi≥0,i=1,2,...,N,定义拉格朗日函数
α=(α1,α2,⋯,αN)T为拉格朗日乘子向量
原始问题描述:
maxαL(w,b,α)=12||w||2
minw,b12||w||2=minw,b maxαL(w,b,α)
根据拉格朗日对偶性,在满足kkt条件下原始问题的对偶问题是极大极小问题:
maxα minw,bL(w,b,α)(1.4.2)
- 求
minw,bL(w,b,α)
将拉格朗日函数 L(w,b,α)分别对w,b求偏导并令其等于0
▽wL(w,b,α)▽bL(w,b,α)==w−∑i=1Nαiyixi=0−∑i=1Nαiyi=0(1.4.3)(1.4.4)
得到:
w=∑i=1Nαiyixi(1.4.5)
∑i=1Nαiyi=0(1.4.6)
将1.4.5和1.4.6带入1.4.1得 :
minw,bL(w,b,α)==12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαiyi⎛⎝(∑j=1Nαjyjxj)⋅xi+b⎞⎠+∑i=1Nαi−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi(1.4.7)
即:
minw,bL(w,b,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi(1.4.8) - 求minw,b L(w,b,α)对α的极大,即对偶问题:
- 由极大值转换成极小值,得到下面与之等价的对偶最优化问题:
根据KKT条件得:
w∗=∑i=1Nα∗iyixib∗=yj−∑i=1Nα∗iyi(xi⋅xj)(1.4.12)(1.4.13)α 可以通过smo算法求出
分类决策函数可以写成:
f(x)=sign(∑i=1Nα∗iyi(x⋅xj)+b∗)(1.4.14)- 证明:kkt条件如下:
▽wL(w∗,b∗,α∗)=w∗−∑i=1Nαiyixi=0▽bL(w∗,b∗,α∗)=−∑i=1Nαiyi=0α∗i(yi(w∗⋅xi+b∗)−1)=0 i=1,2,...,Nyi(w∗⋅xi+b∗)−1⩾0, i=1,2,...,Nα∗i⩾0,i=1,2,...,N(1.4.15)(1.4.16)(1.4.17)(1.4.18)(1.4.19)
由此得:
w∗=∑i=1Nα∗iyixi(1.4.20)
至少有一个 α∗j>0(支持向量),对此j有:
yj(w∗⋅xj+b∗)−1=0(1.4.21)
y2j=1 所以:
b∗=yj−∑i=1Nα∗iyi(xi⋅xj)(1.4.22)
- 证明:kkt条件如下:
2、线性不可分SVM
2.1、线性不可分问题描述
线性不可分的线性支持向量机的学习问题变成如下凸二次规划问题:
- 并非所有点都有松弛变量 ξ ,超越分类边界内的才有,在边界上及以外的点 ξ=0
- ξ 越大表示在边界内且离分类边界越远
- C惩罚因子,表示对边界内的样本的惩罚。C越大目标函数损失越大,C无限大为硬间隔问题。
2.2、构造拉格朗日函数并求解
maxα,μL(w,b,ξ,α,μ)=12||w||2+∑i=1NCξiminw,b,ξ 12||w||2+∑i=1NCξi=minw,b,ξ maxα,μL(w,b,ξ,α,μ)⩽maxα,μ minw,b,ξL(w,b,ξ,α,μ)
求minw,b,ξL(w,b,ξ,α,μ),拉格朗日函数分别对w,b,ξ 求偏导:
▽wL(w,b,ξ,α,μ)▽bL(w,b,ξ,α,μ)▽ξiL(w,b,ξ,α,μ)===w−∑i=0Nαiyixi=0−∑i=0Nαiyi=0C−αi−μi=0(2.2.2)(2.2.3)(2.2.4)
得:
w=∑i=0Nαiyixi∑i=0Nαiyi=0C−αi−μi=0(2.2.5)(2.2.6)(2.2.7)
将2.2.5,2.2.6,2.2.7带入2.2.1得:
minw,b,ξL(w,b,ξ,α,μ)=−12∑i=1n∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi(2.2.8)在对minw,b,ξL(w,b,ξ,α,μ)求关于α的极大,即对偶问题:
- 可以简化成如下形式:
-
α可根据smo求得,若存在一个分量α∗j,0<α∗j<C,满足kkt条件可得:
w∗=∑i=1Nα∗iyixib∗=yj−∑i=1Nyiα∗i(xi⋅xj)(2.2.17)(2.2.18)
分类决策函数可以写成:
f(x)=sign(∑i=1Nα∗iyi(x⋅xj)+b∗)
- 证明:原始问题是凸二次规划问题,满足KKT条件,得:
▽wL(w∗,b∗,ξ∗,α∗,μ∗)=w∗−∑i=1Nα∗iyixi=0▽bL(w∗,b∗,ξ∗,α∗,μ∗)=−∑i=1Nα∗iyi=0▽ξL(w∗,b∗,ξ∗,α∗,μ∗)=C−α∗−μ∗=0α∗i(yi(w∗⋅xi+b)−1+ξ∗i)=0μ∗iξ∗i=0yi(w∗⋅xi+b)−1+ξ∗i⩾0ξ∗i⩾0α∗i⩾0μ∗i⩾0,i=1,2,...,N(2.2.19)(2.2.20)(2.2.21)(2.2.22)(2.2.23)(2.2.24)(2.2.25)(2.2.26)(2.2.27)
根据2.2.19得:
w∗=∑i=1Nα∗iyixi(2.2.17) -
当0<α∗j<C
根据C−α∗−μ∗=0得μ∗i=C−α∗i>0
μ∗iξ∗i=0,所以ξ∗i=0
α∗i(yi(w∗⋅xi+b)−1+ξ∗i)=0,且0<α∗j<C,且ξ∗i=0
得yi(w∗⋅xi+b)−1=0, 此点为分类边界上的点,支持向量点
b∗=yj−∑i=1Nyiα∗i(xi⋅xj)(2.2.18) 当α∗i=0
根据C−α∗−μ∗=0得C=μ∗i>0
根据μ∗iξ∗i=0,得ξ∗i=0,
ξ∗i=0并且yi(w∗⋅xi+b)−1+ξ∗i⩾0
yi(w∗⋅xi+b)⩾1 ,此点为分类边界外的样本点当α∗i=C
根据C−α∗−μ∗=0得μ∗i=0
根据μ∗iξ∗i=0,得ξ∗i⩾0,
α∗i=C且α∗i(yi(w∗⋅xi+b)−1+ξ∗i)=0,所以yi(w∗⋅xi+b)−1+ξ∗i=0
ξ∗i⩾0并且yi(w∗⋅xi+b)−1+ξ∗i=0得yi(w∗⋅xi+b)=1−ξ∗i
得yi(w∗⋅xi+b)⩽1 ,此点为分类边界内的样本点
- 证明:原始问题是凸二次规划问题,满足KKT条件,得:
3、 SVM核函数
核函数定义
假设χ是输入空间,又设H为特征空间,如果存在一个从χ到H的映射(函数)满足:
ϕ(x):χ→H
使得对所有x,z∈χ,函数K(x,z)满足:
K(x,z)=ϕ(x)⋅ϕ(z)
则称K(x,z)为核函数,ϕ(x)为映射函数线性分类器求解非线性分类问题分为两步:
- 使用一个变换将原来数据映射到新的空间,
- 在新空间里用线性分类学习方法从训练数据中学习分类模型。
- 常用核函数
- 线性核函数
κ(x,xi)=x⋅xi - 多项式核函数
κ(x,xi)=(γ(x⋅xi)+γ)d,γ>0 - 高斯核函数(径向基函数)
κ(x,xi)=exp(−||x−xi||2δ2) - sigmoid核函数
κ(x,xi)=tanh(η<x,xi>+θ)
tanh(x)=sinh(x)cosh(x)=ex−e−xex+e−x
- 线性核函数
x = -5:0.01:5;
plot(x,tanh(x)), grid on
- 选用技巧
- 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
- 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
- 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
4、拉格朗日对偶性
- 带约束的极值问题:
假设f(x),ci(x),hj(x)是定义在Rn上的连续可微函数,考虑约束最优化问题:
minx∈Rns.t.f(x)ci(x)⩽0, i=1,2,...,khj(x)=0,j=1,2,...,l - 原始问题
首先引入广义拉格朗日函数(generalize Lagrange function)
L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)
这里,x=(x(1),x(2),...,x(n))T∈Rn,αi,βj是拉格朗日乘子,αi⩾0,考虑x的函数:
对偶问题:
定义:
θD(α,β)=minxL(x,α,β)
maxα,β;α⩾0θD(α,β)=maxα,β;α⩾0minxL(x,α,β)问题maxα,β;α⩾0minxL(x,α,β)称为广义拉格朗日函数的极大极小问题
原始问题和对偶问题都有最优值,则:
d∗=maxα,β;α⩾0minxL(x,α,β)⩽minxmaxα,β;αi⩾0L(x,α,β)=p∗
对原始问题和对偶问题,假设函数 f(x)和cj(x) 是凸函数, hj(x) 是仿射函数,并且不等式约束c_i(x)是严格可行的,则 x∗和α∗,β∗ 分别对原始问题和对偶问题的解的充分必要条件 是x∗和α∗,β∗满足下面的Karush−Kuhn−Tucker(KKT)条件:
5、SMO算法
5.1、问题描述及变种
SMO算法要解如下凸优化的对偶问题:
minαs.t.12∑i=1n∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi∑i=1Nαiyi=00⩽αi⩽C,i=1,2,...,N(2.2.14)(2.2.15)(2.2.16)对于等式约束,∑Ni=1αiyi=0,假设选择两个变量α1,α2,其他变量αi(i=3,4,...,N)是固定的,于是SMO的最优化问题的子问题可以写成:
minα1,α2 W(α1,α2)=12K11α21+12K22α22+y1y2K12α1α2−(α1+α2)+y1α1∑i=3NyiαiKi1+y2α2∑i=3NyiαiKi2+constant(5.1.1)
其中, Kij=K(xi,xj),i,j=1,2,...,N,ζ是常数,constant为常数项
5.2、 确定α2边界
保证等式约束:
同时更新α1和α2,并保证下面式子 :
- αold1y1+αold2y2=ζ当y1≠y2时候,
直线斜率为1,当截距大于0(红线)时y1=−1,y2=1 ,
直线斜率为1,当截距小于0(蓝线)时,y1=1,y2=−1 ,
所以α2的上下界分别为:
-
同理,当y1=y2时候
L=max(0,αold2+αold1−C),H=min(C,αold2+αold1)
5.3、 更新α2,α1
令
根据公式5.1.1,最优化问题沿着约束方向未经剪辑时的解是:
其中:
在kkt条件下,α2必须在[L,H]内:
更新α1:
如何求得α1和α2呢?对于α1,最不满足kkt条件的来寻找,对于α2可通过max|E1−E2|来寻找。而b的更新为: