7.支持向量机(Support vector machines,SVM)
- 是二分类模型。学习策略是间隔最大化
- 包含三种:
- 线性可分支持向量机:训练数据线性可分,通过硬间隔最大化学习。
- 线性支持向量机:训练数据近似线性可分(有outlier点),通过软间隔最大化学习
- 非线性支持向量机:训练数据线性不可分,通过使用核技巧及软间隔最大化学习
7.1 线性可分支持向量机
7.1.1 和感知机的区别
- 感知机利用误分类最小的策略,求得分离超平面,但此时解有无穷多个
- 线性可分支持向量机利用间隔最大化求分离超平面,解是唯一的。
7.1.2 数学表示
- 数据集T,
x∈Rn,y∈{+1,−1},y为+1时,称实例为正例,反之为负例
- 学习到的分离超平面:
w∗⋅x+b∗=0
相应的决策函数为
f(x)=sign(w∗⋅x+b∗)
7.1.3 函数间隔,几何间隔
一个样本点距分离超平面的远近可以表示分类预测的确信程度
函数间隔
- 超平面(w,b)关于样本点
(xi,yi)的函数间隔为
r^i=yi(w⋅xi+b)
- 超平面(w,b)关于样本集T的函数间隔,为所有样本点函数间隔的最小值
r^=i=1,2,⋯,Nminr^i
几何间隔
令
∣∣w∣∣=1
- 超平面(w,b)关于样本点
(xi,yi)的几何间隔为
ri=yi(∣∣w∣∣w⋅xi+∣∣w∣∣b)
- 超平面(w,b)关于样本集T的函数间隔,为所有样本点函数间隔的最小值
r=i=1,2,⋯,Nminri
函数间隔和几何间隔的关系
- 当
∣∣w∣∣=1时,函数间隔与集合间隔相等
- 当w,b成比例改变时,函数间隔也按比例改变,但几何间隔不变
7.1.4 硬间隔最大化
- 支持向量机基本想法:对训练数据集找到几何间隔最大的超平面,以充分大的确认度对训练数据进行分类
- 硬间隔最大化:当训练数据线性可分时(即能找到一个线性分离超平面对每个数据都正确的分类),硬性要求每个样本点到超平面的距离>几何间隔
数学表示
w,bmaxs.t.ryi(∣∣w∣∣w⋅xi+∣∣w∣∣b)⩾r,i=1,2,⋯,N
N是数据集T的数据数目,等价于
w,bmaxs.t.∣∣w∣∣r^yi(w⋅xi+b)⩾r^,i=1,2,⋯,N
由于
r^可以根据w,b的比例改变而改变,那么取
r^=1,上述问题等价于
w,bmins.t.21∣∣w∣∣2yi(w⋅xi+b)−1⩾0,i=1,2,⋯,N
- 由于目标函数
21∣∣w∣∣2是二次凸函数,不等式约束
yi(w⋅xi+b)−1⩾0是仿射函数也是凸函数,有凸集;上述问题称为凸二次规划问题。
- 此时
w,b有唯一解
7.1.5 支持向量
- 支持向量:在线性可分的情况下,训练数据集的样本点中与分离超平距离最近的样本点实例称为支持向量。满足:
yi(w⋅xi+b)−1=0
- 支撑超平面:正例支持向量所在的超平面,
w⋅x+b=1,负例支持向量所在的超平面,
w⋅x+b=−1
- 间隔,两个支撑超平面的距离:
∣∣w∣∣2
- 支持向量在确定分离超平面中起决定性作用。
7.1.6 学习的对偶算法
原问题
w,bmins.t.21∣∣w∣∣2yi(w⋅xi+b)−1⩾0,i=1,2,⋯,N
拉格朗日函数
L(w,b,α)=21∣∣w∣∣2−i=1∑Nαi[yi(w⋅xi+b)]+i=1∑Nαi
其中
αi⩾0,原问题为
w,bminαmaxL(w,b,α)
拉格朗日对偶问题
αmaxw,bminL(w,b,α)
KKT条件
原始条件
x∈Rnmins.t.f(x)ci(x)⩽0,i=1,2,⋯,khj(x)=0,j=1,2,⋯,l KKT条件
∇xL(x∗,α∗,β∗)=0∇αL(x∗,α∗,β∗)=0∇βL(x∗,α∗,β∗)=0αi∗ci(x∗)=0,ci(x∗)⩽0,αi∗⩾0,hj(x∗)=0,i=1,2,⋯,ki=1,2,⋯,ki=1,2,⋯,kj=1,2,⋯,j
- 对
w,b求导,得到最小值
L(α)
L(w,b,α)∂w∂L(w,b,α)∂b∂L(w,b,α)=21wTw−i=1∑Nαi[yi(wTxi+b)]+i=1∑Nαi=w−i=1∑Nαiyixi=0=−i=1∑Nαiyi=0
- 带入L得到
L(α)
L(α)=21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj−i=1∑Nαiyi(j=1∑Nαjyjxj)⋅xi−i=1∑Nαiyib+i=1∑Nαi=−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαi
此时对偶问题转为
αmaxs.t.−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαii=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N
- 求使
L(α)最大的最优解
α∗
根据下文的最小序列算法求解最优
α∗值
- 根据最优解
α∗,及互补松弛条件
αi∗[yi(w⋅xi+b)−1]=0,得到
w∗,b∗
- 当
αi∗>0时,
yi(w⋅xi+b)−1=0,此时样本点为支持向量
- 当
yi(w⋅xi+b)−1>0时,
αi∗=0,样本点不是支持向量机.
找到最优解
α∗中大于0的分量,设此项index为j,得到:
w∗b∗=i=1∑Nαi∗yixi=yj−i=1∑Nαi∗yixi⋅xj
求得分离超平面
w∗⋅x+b∗=0,分类决策函数
f(x)=sign(w∗⋅x+b∗)
最优解
- 获得
α∗
αmaxs.t.−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαii=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N
- 获得
w∗,b∗(找到最优解
α∗中大于0的分量,设此项index为j)
w∗b∗=i=1∑Nαi∗yixi=yj−i=1∑Nαi∗yixi⋅xj
对于
α向量,支持向量(
yi(w⋅xi+b)=1)对应的
αi>0,其他样本(
yi(w⋅xi+b)>1)对应的
αi=0。所以对于
w∗=∑i=1Nαi∗yixi及
b∗=yj−∑i=1Nαi∗yixi⋅cj值,只由
αi̸=0的样本决定,即支持向量决定。
7.2线性支持向量机
- 对于一些近似线性可分数据,由于存在一些特异点,模型不能把所有的样本都分类正确。
7.2.1学习到的模型的数学表示
- 学习到的分离超平面:
w∗⋅x+b∗=0
相应的决策函数为
f(x)=sign(w∗⋅x+b∗)
7.2.2 软件隔最大化
- 所有样本点的函数间隔不能都满足大于样本集的函数间隔这一条件。
- 所以硬间隔最大化需要修改为软间隔最大化。即对每个样本点引进一个松弛变量
εi⩾0
w,bmins.t.21∣∣w∣∣2+Ci=1∑Nεiyi(w⋅xi+b)⩾1−εi,i=1,2,⋯,Nεi⩾0,i=1,2,⋯,N
- 其中
εi⩾0是松弛变量;
C⩾0是惩罚参数,表示对松弛变量的支付代价。
- 最小化的目标是,使
21∣∣w∣∣2尽可能小,即间隔尽量大,同时使误分类点的个数尽量小。
- 此时w有唯一解,b的解存在一个区间
- 线性支持向量机包含线性可分向量机(
εi=0)
7.2.3 学习的对偶算法
原问题
w,bmins.t.21∣∣w∣∣2+Ci=1∑Nεiyi(w⋅xi+b)⩾1−εi,i=1,2,⋯,Nεi⩾0,i=1,2,⋯,N
拉格朗日函数
L(w,b,ε,α,μ)=21∣∣w∣∣2+Ci=1∑Nεi−i=1∑Nαi[yi(w⋅xi+b)−1+εi]−i=1∑Nμiεi
其中
αi⩾0,μi⩾0,原问题为
w,b,εminα,μmaxL(w,b,ε,α,μ)
拉格朗日对偶问题
α,μmaxw,b,εminL(w,b,ε,α,μ)
KKT条件
- 对
w,b,ε求导,得到最小值
L(α,μ)
L(w,b,ε,α,μ)∂w∂L(w,b,ε,α,μ)∂b∂L(w,b,ε,α,μ)∂εi∂L(w,b,ε,α,μ)=21∣∣w∣∣2+Ci=1∑Nεi−i=1∑Nαi[yi(w⋅xi+b)−1+εi]−i=1∑Nμiεi=w−i=1∑Nαiyixi=0=−i=1∑Nαiyi=0=C−αi−μi=0
带入L得到
L(α,μ)=21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+Ci=1∑Nεi−i=1∑Nαiyi(j=1∑Nαjyjxj)⋅xi−i=1∑Nαiyib+i=1∑Nαi−i=1∑Nαiεii=1∑Nμiεi=−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαi+i=1∑N(C−αi−μi)εi−i=1∑Nαiyib=−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαi
此时对偶问题转为
αmaxs.t.−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαii=1∑Nαiyi=0αi⩾0,i=1,2,⋯,Nμi⩾0,i=1,2,⋯,NC−αi−μi=0,i=1,2,⋯,N(即0⩽αi⩽C)
- 求使
L(α)最大的最优解
α∗
根据下文的最小序列算法求解最优
α∗值
- 根据最优解
α∗,及互补松弛条件
αi∗[yi(w⋅xi+b)−1+εi]=0及
μiεi=0,得到
w∗,b∗
-
当
0<αi∗<C时,
0<μi,且
εi=0,此时,
yi(w⋅xi+b)−1=0.
-
但
αi=C,此时
μi=0,且
εi>0
- 如果
0<εi<1,
0<yi(w⋅xi+b)<1样本点在间隔边界和分离超平面之间
-
εi=1,
yi(w⋅xi+b)=0样本点在分离超平面之上
-
εi>1,
yi(w⋅xi+b)<0样本点在分离超平面之误分类一侧
-
当
αi=0,此时
μi=C,且
εi=0,
yi(w⋅xi+b)>1,此时样本点是被分离超平面明确分类正确的点,对分离超平面的
w,b不起作用
- 我对b有多解的直观理解:w的解是唯一的,
w∗=∑i=1Nαi∗yixi,虽说w值唯一,但
α的解不唯一,
ε的解不唯一。假如两个点分别为正负样本点,都在间隔平面内,当间隔平面平行移动时,正负样例点距正负间隔平面距离之和是不变的。
找到最优解
α∗中满足
0<αi∗<C的分量,设此项index为j,得到:
w∗b∗=i=1∑Nαi∗yixi=yj−i=1∑Nαi∗yixi⋅xj
求得分离超平面
w∗⋅x+b∗=0,分类决策函数
f(x)=sign(w∗⋅x+b∗)
最优解
- 获得
α∗
αmaxs.t.−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαii=1∑Nαiyi=0C⩾αi⩾0,i=1,2,⋯,N
与线性可分向量机的区别在于
αi的取值范围。
- 获得
w∗,b∗(找到最优解
α∗中满足
0<αi∗<C的分量,设此项index为j)
w∗b∗=i=1∑Nαi∗yixi=yj−i=1∑Nαi∗yixi⋅xj
对于
w∗=∑i=1Nαi∗yixi及
b∗=yj−∑i=1Nαi∗yixi⋅cj值,只由
αi̸=0的样本决定,即支持向量决定。
7.2.4合页损失
线性支持向量机的另一种解释,最小化结构化风险
i=1∑N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2
- 合页损失函数:
L(y(w⋅x+b))=[1−y(w⋅x+b)]+
其中
[z]+={z,0,z>0z⩽0
当样本点被正确分类,且函数间隔(确信度)大于1时,损失0;在间隔边界另一侧的样本(分类正确但确信度不够大,或分类错误的样本),损失为
1−y(w⋅x+b).
- 等价于线性支持向量机
令
1−yi(w⋅xi+b)=εi,
εi⩾0
那么
min∑i=1N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2等价于
min∑i=1Nεi+λ∣∣w∣∣2取
λ=2C1
等价于
minC∑i=1Nεi+21∣∣w∣∣2
7.3非线性支持向量机
当分类问题非线性,利用核技巧学习
7.3.1 核技巧
- 非线性可分问题:用一个超曲面将正负例正确分开。
- 使用一个变换将原空间的数据映射到新空间,在新空间里用线性分类学习方法从训练数据中学习模型。
- 当输入空间为欧式空间或离散集合、特征空间为希尔伯特空间时,核函数表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。
核函数数学表达
设X(欧式空间)是输入空间,H为特征空间(希尔伯特),如果存在一个从X到H的映射
ϕ(x):x→H
使所有的
x,z∈X,核函数满足条件
K(x,z)=ϕ(x)⋅ϕ(z)
则K(x,z)为核函数,
ϕ(x)为映射函数
7.3.2 利用核函数变换做线性支持向量机的最优解
- 获得
α∗
αmaxs.t.−21i=1∑Nj=1∑Nαiαjyiyjϕ(xi)⋅ϕ(xj)+i=1∑Nαii=1∑Nαiyi=0C⩾αi⩾0,i=1,2,⋯,N
即
αmaxs.t.−21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)+i=1∑Nαii=1∑Nαiyi=0C⩾αi⩾0,i=1,2,⋯,N
- 获得
w∗,b∗(找到最优解
α∗中满足
0<αi∗<C的分量,设此项index为j)
w∗b∗=i=1∑Nαi∗yiϕ(xi)=yj−i=1∑Nαi∗yiϕ(xi)⋅ϕ(xj)=yj−i=1∑Nαi∗yiK(xi,xj)
- 分离超平面
f(x)=sign(w∗⋅ϕ(x)+b∗)=sign(i=1∑Nαi∗yiϕ(xi)⋅ϕ(x)+b∗)=sign(i=1∑Nαi∗yiK(xi,x)+b∗)
7.4线性可分向量机、线性支持向量机、非线性支持向量机的最优解总结
7.4.1线性可分向量机
- 获得
α∗
αmaxs.t.−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαii=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N
- 获得
w∗,b∗(找到最优解
α∗中大于0的分量,设此项index为j)
w∗b∗=i=1∑Nαi∗yixi=yj−i=1∑Nαi∗yixi⋅xj
7.4.2线性支持向量机
- 获得
α∗
αmaxs.t.−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαii=1∑Nαiyi=0C⩾αi⩾0,i=1,2,⋯,N
与线性可分向量机的区别在于
αi的取值范围。
- 获得
w∗,b∗(找到最优解
α∗中满足
0<αi∗<C的分量,设此项index为j)
w∗b∗=i=1∑Nαi∗yixi=yj−i=1∑Nαi∗yixi⋅xj
对于
w∗=∑i=1Nαi∗yixi及
b∗=yj−∑i=1Nαi∗yixi⋅cj值,只由
αi̸=0的样本决定,即支持向量决定。
7.4.3非线性支持向量机
αmaxs.t.−21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)+i=1∑Nαii=1∑Nαiyi=0C⩾αi⩾0,i=1,2,⋯,N
- 获得
w∗,b∗(找到最优解
α∗中满足
0<αi∗<C的分量,设此项index为j)
w∗b∗=i=1∑Nαi∗yiϕ(xi)=yj−i=1∑Nαi∗yiϕ(xi)⋅ϕ(xj)=yj−i=1∑Nαi∗yiK(xi,xj)
7.4.4区别
- 线性可分向量机利用硬间隔最大化,
αi⩾0
- 线性支持向量机利用软间隔最大化,
C⩾αi⩾0
- 非线性向量机利用核技巧,
C⩾αi⩾0,用
K(xi,xj)代替
xi⋅xj
7.5序列最小最优化算法(SMO,sequential minimal optimization)
主要针对求解
α的最优解
αmaxs.t.−21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)+i=1∑Nαii=1∑Nαiyi=0C⩾αi⩾0,i=1,2,⋯,N
每次选择两个
α变量去优化,使所有的
α变量一直满足
∑i=1Nαiyi=0的条件。