SVM原理
当训练数据线性可分时,通过硬间隔最大化,学习线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;
当训练数据近似线性可分时,通过软间隔最大化,学习线性分类器,即线性支持向量机,又称为软间隔支持向量机;
当训练数据线性不可分时,通过核技巧及软间隔最大化,学习非线性支持向量机。
函数间隔
定义训练数据集T,超平面(w,b),(w⋅xi+b)可以表示样本点xi距离超平面的距离,对于二分类问题,yi∈{+1,−1},此时yi(w⋅xi+b)的正负可以表示分类是否正确,那么使用
r^i=yi(w⋅xi+b)
便可表示分类的正确性以及确信程度,上式定义为函数间隔。
超平面
(w,b)关于训练数据
T的函数间隔为超平面
(w,b)关于
T中所有样本点的函数间隔的最小值定义为:
r^=min r^i
函数间隔中,当
w、
b成比例增加时,超平面没有改变但是函数间隔却成比例增加了,为了避免这种情况,对超平面的法向量加以限制,引入几何间隔。
几何间隔
对于给定的训练数据集
T和超平面
(w,b),定义超平面
(w,b)关于样本点
(xi,yi)的几何间隔为
ri=yi(w⋅xi∥w∥+b∥w∥)
定义超平面
(w,b)关于训练数据
T的函数间隔为超平面
(w,b)关于
T中所有样本点的函数间隔的最小值
r=min ri
线性可分支持向量机
线性可分支持向量机学习算法-最大间隔法
输入:线性可分训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)},其中,xi∈X=RN,yi∈Y={−1,+1},i=1,2,...,N;
输出:最大间隔分离超平面和分类决策函数
- 构建约束最优化问题
minw,b 12∥w∥2s.t. yi(w⋅xi+b)−1≥0,i=1,2,...,N(1)
- 求得最优解w∗,b∗.
- 由此得到分离超平面
w∗⋅x+b∗=0
- 分类决策函数为
f(x)=sign(w∗⋅x+b∗)
线性可分支持向量机的对偶算法
对于上式(1)中的不等式约束,引入拉格朗日乘子αi≥0,定义拉格朗日函数:
L(w,b,α)=12∥w∥2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi
这里,
α=(α1,α2,...,αN)T为拉格朗日乘子向量。根据拉格朗日对偶性,原始问题的对偶问题为极大极小问题
maxα minw,b L(w,b,α)
求
minw,b L(w,b,α)将
L(w,b,α)分别对
w,b求偏导数并令其等于0.
∇wL(w,b.α)=w−∑i=1Nαiyixi=0
∇bL(w,b.α)=∑i=1Nαiyi=0
得
w=∑i=1Nαiyixi
∑Ni=1αiyi=0$将上式代入式中得到
minw,bL(w,b,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
求minw,bL(w,b,α)对 α的极大,可转化为如下的极小问题
minα 12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t. ∑i=1Nαiyi=0αi=0,i=1,2,...,N(2)
解上述极小值问题可以得到
α的解为
α∗=(α∗1,α∗2,...,α∗N)T,从而求得
w∗=∑i=1Nα∗iyixib∗=yj−∑i=1Nα∗iyi(xi⋅xj)
即可以求得分离超平面和决策函数。
线性支持向量机
线性支持向量机学习算法-最大软间隔法
假设训练数据线性不可分,对于除去训练数据集中存在特异点后剩余的样本集合线性可分的情况,即某些样本点不能满足函数间隔大于等于1的约束条件,可以对每个样本点(xi,yi)引进一个松弛变量ξ≥0,使得函数间隔加上松弛变量大于等于1,同时,对每个松弛变量ξi支付一个代价ξi,此时的优化问题变为
minw,b,ξ 12∥w∥2+C∑i=1Nξis.t yi(w⋅xi+b)≥1−ξi , ξi≥0,i=1,2,...,N(3)
这里
C>0为惩罚参数,其值表示对误分类的惩罚程度。
线性支持向量机的对偶算法
式(3)中的最优化问题的拉格朗日函数是
L(w,b,ξ,α,μ)=12∥w∥2+C∑i=1Nξi−∑i=1Nαi(yi(w⋅xi+b)−1+ξi)−∑i=1Nμiξi
这里,
αi≥0, μi≥0
对偶问题是拉格朗日函数的极大极小问题,先求
L(w,b,ξ,α,μ)对
w,b,ξ的极小,由
∇wL(w,b,ξ,α,μ)=w−∑i=1Nαiyixi=0∇bL(w,b,ξ,α,μ)=−∑i=1Nαiyi=0∇ξiL(w,b,ξ,α,μ)=C−αi−μi=0
得
w=∑i=1Nαiyixi∑i=1Nαiyi=0C−αi−μi=0
将上述结果代入
minw,b,ξ L(w,b,ξ,α,μ)=−12∑Ni=1∑Nj=1αiαjyiyj(xi⋅xj)+∑Ni=1αi再对
minw,b,ξ L(w,b,ξ,α,μ)求
α的极大,转换为对
α求
minw,b,ξ −L(w,b,ξ,α,μ)的极小值,整理可得对偶问题
minα 12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t. ∑i=1Nαiyi=00≤αi≤C,i=1,2,...,N
至此可依次解得
α∗=(α∗1,α∗2,...,α∗N)Tw∗=∑i=1Nα∗iyixib∗=yj−∑i=1Nyiα∗i(xi⋅xj)
从而可以求得分类超平面和决策函数。
非线性支持向量机
非线性支持向量机学习算法
输入:训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)},其中xi∈X=RN,yi∈Y=−1,+1,i=1,2,...,N;
输出:分类决策函数。
- 选择适当的核函数K(x,z)和适当的参数C,构造并求解最优化问题
minα 12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαis.t. ∑i=1Nαiyi=00≤αi≤C,i=1,2,...,N
求得最优解α∗=(α∗1,α∗2,...,α∗N)T. - 选择α∗的一个正分量0<α∗j<C,计算
b∗=yj−∑i=1Nyiα∗i(xi⋅xj)
- 构造决策函数:
f(x)=sign(∑i=1Nα∗iyiK(x⋅xi)+b∗)
两层的SVM结构图

解决多分类的方法
求解方法(SMO)
回归预测
代码示例