机器学习笔记6-支持向量机(SVM)(1/3)
支持向量机(SVM)是一种二类分类模型,包括线性可分支持向量机、线性支持向量机及非线性支持向量机。当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机;当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性分类器,即线性支持向量机;当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
- 线性可分支持向量机
__
(1)函数间隔:对于给定的训练数据集
T和超平面
(w,b),定义超平面
(w,b)关于样本点
(xi,yi)的函数间隔为
γ^i=yi(wxi+b),定义超平面
(w,b)关于训练数据集
T的函数间隔为超平面
(w,b)关于
T中所有样本点
(xi,yi)的函数间隔之最小值,即
γ^=i=1,2...Nminγ^i。
__
(2)几何间隔:对于给定的训练数据集
T和超平面
(w,b),定义超平面
(w,b)关于样本点
(xi,yi)的几何间隔为
γi=yi(∥w∥wxi+∥w∥b),
∣∣w∣∣为
w的
L2范数。定义超平面
(w,b)关于训练数据集
T的几何间隔为超平面
(w,b)关于
T中所有样本点
(xi,yi)的几何间隔之最小值,即
γ=i=1,2...Nminγi。几何间隔的目的是为了对分离超平面的法向量规范化,防止
w和
b成比例改变时,超平面不变但函数间隔发生改变的现象的出现。
__
(3)间隔最大化:支持向量机的基本思想是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。这一点和感知机的不同在于感知机只求能够正确划分训练数据集,因此感知机的解有无数个。而支持向量机还要要求几何间隔最大,因此支持向量机的解只有一个。间隔最大化的直观解释是:以充分大的确信度对训练数据进行分类。不仅要正确分类,而且对最难分的实例点也有足够大的确信度将其分开。这个问题可以表述成如下约束最优化问题:
w,bmaxγ
yi(∥w∥wxi+∥w∥b)≥γ,i=1,2...N
以上可改写成函数间隔的形式:
w,bmax∥w∥γ^
yi(wxi+b)≥γ^,i=1,2...N
函数间隔
γ^的取值并不影响最优化问题的解,因为它是随
w和
b成比例的变化的。取
γ^=1,注意到
∥w∥1与
21∥w∥2是等价的,可得如下最优化问题
w,bmin21∥w∥2
yi(wxi+b)−1≥0,i=1,2...N
这是一个凸二次规划问题。(凸优化问题包含的内容很多,这里就不展开了,因为我了解的也不深。)
在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量。支持向量都满足
yi(wxi+b)−1=0。在决定分离超平面时只有支持向量起作用,其它实例点不起作用,所以才将这种分类模型称为支持向量机。支持向量的个数一般很少,所以支持向量机由很少的训练样本确定。
(4)学习的对偶算法:为了求解以上凸二次规划问题,将它作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解。这样做的优点,一是对偶问题往往更容易求解;而是可以引入核函数,进而推广到非线性分类问题。首先构建拉格朗日函数:
L(w,b,α)=21∥w∥2−i=1∑Nαiyi(wxi+b)+i=1∑Nαi
其中,
α=(α1,α2,...,αN)T为拉格朗日乘子向量。根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
αmaxw,bminL(w,b,α)
所以为了得到对偶问题的解,需要先求
L(w,b,α)对
w,b的极小,再求对
α的极大。
A. 求
w,bminL(w,b,α)。将拉格朗日函数
L(w,b,α)分别对
w,b求偏导数并令其等于零。可得
w=i=1∑Nαiyixi,
i=1∑Nαiyi=0,进而可得
w,bminL(w,b,α)=−21i=1∑Ni=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
B. 求
w,bminL(w,b,α)对
α的极大,即是对偶问题:
αmin21i=1∑Ni=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi
i=1∑Nαiyi=0,
αi≥0
可以证明对偶问题和原始问题的解是一致的。
若
α∗=(α1∗,α2∗,...,αN∗)T是对偶问题的解,则存在
αj∗>0,使得原始问题的解为:
w∗=i=1∑Nαi∗yixi,
b∗=yj−i=1∑Nαi∗yi(xi⋅xj)。分离超平面可以写成
i=1∑Nαi∗yi(x⋅xi)+b∗=0,其只依赖于输入
x和训练样本输入的内积。由于
(w∗,b∗)只依赖于训练数据中对应于
αj∗>0的样本点
(xi,yi),其它样本点对
(w∗,b∗)无影响。因此将训练数据中对应于
αj∗>0的样本点称为支持向量。
补充
- 拉格朗日对偶性
假设
f(x),
ci(x),
hj(x)是定义在
Rn上的连续可微函数。考虑约束最优化问题
x∈Rnminf(x)
ci(x)≤0,i=1,2...k
hj(x)≥0,j=1,2...l
此为原始问题。引进广义拉格朗日函数
L(x,α,β)=f(x)+i=1∑kαici(x)+j=1∑lβjhj(x)
这里
αi,
βj是拉格朗日乘子,
αi≥0,考虑
x的函数:
θP(x)=αβ:αi≥0maxL(x,α,β)
对于违反约束条件的
x,
θP(x)会变为无穷大;而对于满足约束条件的
x,则
θP(x)=f(x)。所以考虑极小化问题
xminθP(x)=xminαβ:αi≥0maxL(x,α,β)
与原始问题是等价的,即它们拥有相同的解。这个称为广义拉格朗日函数的极小极大问题。相应的,有广义拉格朗日函数的极大极小问题,即
αβ:αi≥0maxθD(α,β)=αβ:αi≥0maxxminL(x,α,β)
θD(α,β)=xminL(x,α,β)
将上式表示为约束最优化问题:
α,βmaxθD(α,β)=α,βmaxxminL(x,α,β)
αi≥0,i=1,2,...,k
称为原始问题的对偶问题。若原始问题与对偶问题都有最优值,则
d∗=α,β:αi≥0maxxminL(x,α,β)≤xminα,β:αi≥0maxL(x,α,β)=p∗
当
x∗,α∗,β∗满足KKT条件时,原始问题和对偶问题的解是一致的,都是
x∗,α∗,β∗。